過去ログ

                                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
 ───────────────────────────────────────  ■題名 : Re:繰り返しを簡単に パート2  ■名前 : としみつ  ■日付 : 03/1/25(土) 13:29  -------------------------------------------------------------------------
   こんにちわ。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だという例にしてあります。


ワタシも未熟モノなので、詳しい人、突っ込みあったらよろしくです。(´∀`)ノ
 ───────────────────────────────────────  ■題名 : Re:繰り返しを簡単に パート2:訂正  ■名前 : としみつ  ■日付 : 03/1/25(土) 13:33  -------------------------------------------------------------------------
   えらそうに回答しといて、自分で間違い発見(^^;ゞ

>---------------------------------
>
>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

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

が、正しいですネ。

あー、はずかし・・・。^^;
 ───────────────────────────────────────  ■題名 : お礼 繰り返しを簡単に パート2:訂正  ■名前 : まつもと <himawari@ztv.ne.jp>  ■日付 : 03/1/26(日) 15:30  -------------------------------------------------------------------------
   としみつ 様

 参考になりました。
自分なりに応用できて良かったです。

また,よろしくお願いします。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━    通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━                                 Page 611