Excel VBA質問箱 IV

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

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


4614 / 13646 ツリー ←次へ | 前へ→

【55600】forで文字部分を続ける つむじ 08/5/13(火) 15:54 質問[未読]
【55602】Re:forで文字部分を続ける キョム 08/5/13(火) 16:00 回答[未読]
【55606】Re:forで文字部分を続ける ひげくま 08/5/13(火) 16:24 回答[未読]
【55607】Re:forで文字部分を続ける kanabun 08/5/13(火) 16:29 発言[未読]
【55622】Re:forで文字部分を続ける つむじ 08/5/14(水) 10:27 お礼[未読]

【55600】forで文字部分を続ける
質問  つむじ  - 08/5/13(火) 15:54 -

引用なし
パスワード
   題名が適切で無く、申し訳ありません

  Dim moji As String
  Dim kazu As Integer
  Dim copy
    moji = "A"
    kazu = 1
      For copy = 1 To 5
        Range("" & moji & "" & kazu & "") = Int((6 * Rnd) + 1)
          moji = moji + 1
          kazu = kazu + 1
      Next

複数のセルに適当な数字を入れるのに、forを使ってワンクリックで
行いたいのですが、mojiの部分で型が違うと言われます。
どの様にして"A" "B" "C"と続けるのでしょうか?
教えの方よろしくお願いします。

【55602】Re:forで文字部分を続ける
回答  キョム  - 08/5/13(火) 16:00 -

引用なし
パスワード
   Cellsを使用すればできると思いますよ。
もしくは、Offsetですかね。

【55606】Re:forで文字部分を続ける
回答  ひげくま  - 08/5/13(火) 16:24 -

引用なし
パスワード
   >          moji = moji + 1
>
>mojiの部分で型が違うと言われます。

"A"に対して1を足そうとしているので、型が違う、と言われるのは理解できますよね?

>どの様にして"A" "B" "C"と続けるのでしょうか?

文字コードという観点で攻めるしかないと思いますが、それをするよりも、キョムさんがおっしゃるように、RangeではなくCellsを使うと、行も列も数字を使えますよ。

【55607】Re:forで文字部分を続ける
発言  kanabun  - 08/5/13(火) 16:29 -

引用なし
パスワード
   おじゃまします。

Range("A1").Value = Int((6 * Rnd) + 1)
Range("B2").Value = Int((6 * Rnd) + 1)
Range("C3").Value = Int((6 * Rnd) + 1)
Range("D4").Value = Int((6 * Rnd) + 1)
Range("E5").Value = Int((6 * Rnd) + 1)

ということをFor文で やりたいのでしょうか?
だとしたら、
----------------------------
Dim i As Long
Dim moji As String

と宣言して、
 For i = 1 To 5
  moji = Chr$(&H40 + i)
  Range(moji & i).Value = Int((6 * Rnd) + 1)
 Next
とかでどうでしょ?
ま、
CellsのItemプロパティで指定していったほうがずっと簡単ですね (^^

copyという変数は Copyメソッドとかち合うので、
使わないほうがベターでしょう。

【55622】Re:forで文字部分を続ける
お礼  つむじ  - 08/5/14(水) 10:27 -

引用なし
パスワード
   キョムさん
ひげくまさん
kanabunさん

ありがとうございます。
教えて下さった事を色々調べて、
勉強させて頂きます。

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