Page 611 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 通常モードに戻る ┃ INDEX ┃ ≪前へ │ 次へ≫ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ▼繰り返しを簡単に パート2 まつもと 03/1/25(土) 10:26 ┗Re:繰り返しを簡単に パート2 としみつ 03/1/25(土) 13:29 ┗Re:繰り返しを簡単に パート2:訂正 としみつ 03/1/25(土) 13:33 ┗お礼 繰り返しを簡単に パート2:訂正 まつもと 03/1/26(日) 15:30 ─────────────────────────────────────── ■題名 : 繰り返しを簡単に パート2 ■名前 : まつもと <himawari@ztv.ne.jp> ■日付 : 03/1/25(土) 10:26 -------------------------------------------------------------------------
以下のように,モジュール名の一部を変えながら繰り返しをしたいのですが。 If e(1) = 1 Then Application.Run "もじゅーる赤" Range("j5").Select Else If e(2) = 1 Then Application.Run "もじゅーる青" End If If e(3) = 1 Then Application.Run "もじゅーる黒" End If End If If e(4) = 1 Then Application.Run "もじゅーる白" Range("j5").Select Else If e(5) = 1 Then Application.Run "もじゅーるピンク" End If If e(6) = 1 Then Application.Run "もじゅーる茶" End If End If If e(7) = 1 Then Application.Run "もじゅーる橙" Range("j5").Select Else If e(8) = 1 Then Application.Run "もじゅーる藍色" End If If e(9) = 1 Then Application.Run "もじゅーる朱色" End If End If 自分で考えたのですが, ○m+1の様な式をどうするのか ○モジュール名の名の一部をどう変えていくの かが分かりません。 For m = 1 To 3 If e(m) = 1 Then Application.Run "もじゅーる????" Range("j5").Select Else If e(m+1) = 1 Then Application.Run "もじゅーる????" End If If e(m+2) = 1 Then Application.Run "もじゅーる????" End If End If Next |
こんにちわ。VBAに最近はまってるとしみつです。 とりあえずループの中でselect caseを使うのはダメなのかな? --------------------------------- for cnt = 1 to 3 select case(e(cnt)) case 1 Application.Run "もじゅーる神山" case 2 Application.Run "もじゅーる林田" ・・・・・・・(中略)・・・・・・・・・・・・ case 9 Application.Run "もじゅーるメカ沢" case else msgbox("該当モジュールがありません!") end select next cnt --------------------------------- みたいな感じで。 あと、配列化しとくのもアリなのかなぁ。 --------------------------------- dim MyArray MyArray = Array("伊藤","江藤","加藤","木藤","後藤","佐藤","須藤","武藤","与野党") for cnt=1 to 3 Application.Run "もじゅーる" & MyArray(e(m)) next cnt --------------------------------- こんな感じで。 あ、あと、上記の例で > ○モジュール名の名の一部をどう変えていくの の回答として、文字列の連結と同等で考えてもOKだという例にしてあります。 ワタシも未熟モノなので、詳しい人、突っ込みあったらよろしくです。(´∀`)ノ |
えらそうに回答しといて、自分で間違い発見(^^;ゞ >--------------------------------- > >dim MyArray >MyArray = Array("伊藤","江藤","加藤","木藤","後藤","佐藤","須藤","武藤","与野党") > >for cnt=1 to 3 > Application.Run "もじゅーる" & MyArray(e(m)) >next cnt > >--------------------------------- の、配列数指定はcntにしなきゃダメですね。 --------------------------------- dim MyArray MyArray = Array("伊藤","江藤","加藤","木藤","後藤","佐藤","須藤","武藤","与野党") for cnt=1 to 3 Application.Run "もじゅーる" & MyArray(e(cnt)) next cnt --------------------------------- が、正しいですネ。 あー、はずかし・・・。^^; |
としみつ 様 参考になりました。 自分なりに応用できて良かったです。 また,よろしくお願いします。 |