Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


37982 / 76738 ←次へ | 前へ→

【43902】Re:変数の値を循環させて使用するには
回答  Hirofumi  - 06/10/28(土) 22:14 -

引用なし
パスワード
   コードをまだ見て居ないのですが?
多分こんな事かと思いますが?

普通は変数の入替えをするのでは無く、
配列にデータを入れて、読み出しを工夫すると思うのですが?
例えば、読み出し順に規則性が無い場合は媒介変数を使って読み出します
また、規則性が有る様なら、「\」、「MOD」演算子を組み合わせて読み出し順を工夫します

Option Explicit

Sub 変数入れ替え2()

'  読み出しに規則性が無い場合
'  媒介変数を使用

  Dim i As Long
  Dim vntData As Variant
  Dim vntPos As Variant
  Dim vntResult As Variant
  
  vntData = Array("A1", "A2", "A3", "B1", "B2", "B3", "C1", "C2", "C3")
  
  Select Case Range("a1").Value
    Case "い"
      vntPos = Array(3, 4, 5, 6, 7, 8, 0, 1, 2)
    Case "う"
      vntPos = Array(6, 7, 8, 0, 1, 2, 3, 4, 5)
  End Select
  
  For i = 0 To UBound(vntPos)
    vntResult = vntResult & vntData(vntPos(i))
  Next i
  
  Range("b1").Value = vntResult

End Sub

Sub 変数入れ替え3()

'  読み出しに規則性が有る場合
'  「\」、「MOD」演算子を使用

  Dim i As Long
  Dim vntData As Variant
  Dim lngMax As Long
  Dim lngPos As Long
  Dim vntResult As Variant
  
  vntData = Array("A1", "A2", "A3", "B1", "B2", "B3", "C1", "C2", "C3")
  lngMax = UBound(vntData)
  
  Select Case Range("a1").Value
    Case "い"
      For i = 0 To lngMax
        lngPos = (i + 3) Mod (lngMax + 1)
        vntResult = vntResult & vntData(lngPos)
      Next i
    Case "う"
      For i = 0 To lngMax
        lngPos = (i + 6) Mod (lngMax + 1)
        vntResult = vntResult & vntData(lngPos)
      Next i
  End Select
  
  Range("b1").Value = vntResult

End Sub

0 hits

【43896】変数の値を循環させて使用するには yata 06/10/28(土) 20:30 質問
【43897】Re:変数の値を循環させて使用するには かみちゃん 06/10/28(土) 20:54 発言
【43898】Re:変数の値を循環させて使用するには yata 06/10/28(土) 21:03 発言
【43899】Re:変数の値を循環させて使用するには かみちゃん 06/10/28(土) 21:16 発言
【43901】Re:変数の値を循環させて使用するには yata 06/10/28(土) 22:08 質問
【43902】Re:変数の値を循環させて使用するには Hirofumi 06/10/28(土) 22:14 回答
【43903】Re:変数の値を循環させて使用するには yata 06/10/28(土) 23:27 質問
【43904】Re:変数の値を循環させて使用するには Hirofumi 06/10/29(日) 1:09 回答
【43907】Re:変数の値を循環させて使用するには Hirofumi 06/10/29(日) 6:39 回答
【43908】Re:変数の値を循環させて使用するには yata 06/10/29(日) 8:26 お礼
【43913】Re:結果報告 yata 06/10/29(日) 16:55 お礼

37982 / 76738 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free