一行野郎6

--------------------- [番外6] 一行野郎(文字列連結) --------------------------


はじまり、はじまり~。


<ただいま~>
おかえり~って、ここはアンタのマイホームかよ。

<あれ?お姉さまは?>
とっとと帰ったよ。(ウザイから早々にお引取り願った)

<あらそう。 で、宿題の一行スクリプト出来た?>
ココは学校か!

<どれどれ? う~ん、まあ80点ってトコネ。>
点数の基準は何なんだ?

<じゃあ今日は、コレ行きましょう♪>
あ、あの・・・

<ん? 簡単過ぎてもう出来たの?>
そうじゃなくて、人の話聞いてます? 

<ええ、もちろん。>
毎日一行スクリプトが宿題ですか?

<そうよ。 いわゆる日課ってやつ?>
「日課」っすか。

<毎日しないと調子が悪いでしょ?>
いや別に。

<遅れを取り戻す為にも「一日一行!」>
何の遅れだよ!

<と言う冗談は置いて置いて、出来た?>
冗談に聞こえないし、まだ「問題」も見ていないんですが。

<遅いわよ。とっとと見てみて。>
今回もかなりの無茶振りだな。まあ何かの意図があるのだろう。付き合ってやるか。
「Excelのセルの値がない場合の振り分け」・・・流石に一行じゃ無理っぽいね。

<じゃあどの辺なら一行でOKなの?>
判断して表示する所かな?

<ふ~ん。やっぱね~。判断して表示するを一行じゃ無理よね・・・えっ?>
<てっきりhogeさんの言うように>

if A <> "" then A = A + "<#CR>"
if B <> "" then B = B + "<#CR>"
if C <> "" then C = C + "<#CR>"
D= A + B + C

<とかだと思ってたわ、いったい一行でどう表現するのよ!>

MSGBOX(A + copy("<#cr>",1,(A <> "")*2) + B  + copy("<#cr>",1,(B <> "")*2) + C)

<うっ・・・単純なCopy文でこんな使い方があるなんて、目から鱗だわ!>
でもやっぱ分かりやすいのが一番だよ。

<作ったアンタが言うかね。>
質問者の意図がイマイチ不明だが最後の改行は必要ないと思うし、そもそも改行自体の必要性を感じない。

<どうして?>
多分そのセルをポイントしした時の見易さを考慮したものだろうから。

<それでいいじゃない。>
もしそうなら、単純にそのセルに隣の2つのセルを表示させれば良いだけだから、わざわざUWSCで組む必要も無いと思う。

<でもそのお陰で、こんなスクリプトが見れたワケだからOKよん>
自己中。

こんな一行考え方次第だよ。
<まさか、まだあると言うの?>

上記の場合限定だが

MSGBOX(TRIM(replace(A + "<#cr>" + B "<#cr>" + C, "<#cr><#cr>", "<#cr>")))

<なるほどね~。「Replace」かぁ>
<しっかしアタイと話しながらリアルタイムで打ち込みですか(しかもダブル)・・・なんてヤツ!>
まあ一行ですからね。

<じゃあコレからもよろしくね「一日一行」♪>
え"っ?



おしまい。



-----------------------------------------------------------------------------------------------

提供は: 一行野郎 = 「一日一行(日課)」= Liners でした。

-----------------------------------------------------------------------------------------------
Excelのセルの値がない場合の振り分けはどうすればいいですか? のの    
    こんにちは。ののといいます。

現在EXCELのデータを整えていまして、自分で考えるの限界なものが出てきてしまいまして、力を貸していただけないかと思いこちらにおじゃましました。

【したい事】
エクセルの3つのセルのデータを統合して、初めのセルに入れたい。
各セルのデータの最後に改行コードを付け加える。
ただしセルの値がない場合は改行コードは付け加えない。

たとえば、
2行目のA,B,C列のセルを使うとします。各セルの値をとりだして、連結しaて、一番初めのA2のセルに入れたいのですが、値がない場合に連結からはずしたいと思っているのですが、どのようにすればいいのでしょうか?

自分で考えたのは以下のコードなんですが、セルに値がない場合の箇所がわからないので抜けています。

ぜひお力添えお願いします。



START = INPUT("開始する行数は?",,)
END = INPUT("最後の行数は?",,)

//excelをアクティブにする
EXCEL = GETACTIVEOLEOBJ("EXCEL.Application")
EXCEL.visible = True

//スタートが最後の行+1より少なくなるまで繰り返し
WHILE START < END +1

A = EXCEL.RANGE("A"+START).value 
B = EXCEL.RANGE("B"+START).value 
C = EXCEL.RANGE("C"+START).value

//改行コードを付け足す
A = A + "<#CR>"
B = B + "<#CR>"
C = C + "<#CR>"

//ここに振り分けるコードがいるかと思います。

//Dに全部の文字列を連結させて代入する
D= A + B + C

EXCEL.RANGE("A"+START).value = D //A列にDを代入

//次の行に移るためにSTARTに1を加算
START = START + 1

WEND

MSGBOX("データがなくなったので終了します。")


DATE:2010/12/22(Wed) 18:47 No.3377    
   
    RE:Excelのセルの値がない場合の振り分けはどうすればいいですか? hoge    
   
    A = A + "<#CR>" を
if A <> "" then A = A + "<#CR>"
に変えれば済むんじゃないの。
DATE:2010/12/22(Wed) 22:28    
   
    RE:Excelのセルの値がない場合の振り分けはどうすればいいですか? のの    
   
    やってみます!ありがとうございます。