Excel VBA質問箱 IV

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

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


17 / 12990 ツリー ←次へ | 前へ→

【79047】VBAを用いて日付を自動判別して、その横に貼り付けたい せいじ 17/4/20(木) 14:12 質問[未読]

【79068】Re:VBAを用いて日付を自動判別して、その横... せいじ 17/4/25(火) 9:04 発言[未読]
【79070】Re:VBAを用いて日付を自動判別して、その横... マナ 17/4/25(火) 19:42 発言[未読]
【79071】Re:VBAを用いて日付を自動判別して、その横... せいじ 17/4/25(火) 20:43 発言[未読]
【79072】Re:VBAを用いて日付を自動判別して、その横... マナ 17/4/25(火) 20:52 発言[未読]

【79068】Re:VBAを用いて日付を自動判別して、その...
発言  せいじ E-MAIL  - 17/4/25(火) 9:04 -

引用なし
パスワード
   おはようございます。

rangeの使い方理解しました。
例えばA3セルを選択したい場合は、
range("A3")やrange("A" & "3")でも使えるということですね。

変数についてはなかなか難しいですね。
何を変数とするかは今後多くのVBAを作り慣れていかないとダメだなと思いました。
ただヒントとしてはコードの中で多く出てくるものは変数に
置き換えて簡略化できるということはわかりました。

【79070】Re:VBAを用いて日付を自動判別して、その...
発言  マナ  - 17/4/25(火) 19:42 -

引用なし
パスワード
   ▼せいじ さん:

では、次です。

test6 だと、転記できるは、1人分(B2の行)のみです。
これを、3人分(B2、B3、B4の行)のデータを転記できるようにします。

For each〜Nextという繰り返し処理の構文を使います。
ht tp://kabu-macro.com/word/a-z/for_each_next.html

Sub test7()
  Dim ws入力 As Worksheet
  Dim ws転記 As Worksheet
  Dim c As Range
  Dim 転記行 As Long
 
  Set ws入力 = Worksheets("入力フォーム")
  
  For Each c In ws入力.Range("B2:B4")

    Set ws転記 = Worksheets(c.Value)
  
    転記行 = Day(c.Offset(, 1).Value) + 1
    ws転記.Range("B" & 転記行).Resize(, 3).Value = c.Offset(, 2).Resize(, 3).Value
  
  Next

End Sub

test6 と見較べてください。

> For Each c In ws入力.Range("B2:B4")

ws入力.Range("B2:B4")のセル範囲から順番に、B2、B3、B4をとりだし、
c という変数に代入することで
繰り返し処理ができるのです。

ここまで、よいですか。
大事なところなので、わからなければ、言ってください。

【79071】Re:VBAを用いて日付を自動判別して、その...
発言  せいじ E-MAIL  - 17/4/25(火) 20:43 -

引用なし
パスワード
   通常変数に値やオブジェクトを代入する時は
"="やset *** ="を使いますが、For each〜Next構文はその代入も兼ねていると
いうことでしょうか?

【79072】Re:VBAを用いて日付を自動判別して、その...
発言  マナ  - 17/4/25(火) 20:52 -

引用なし
パスワード
   ▼せいじ さん:

はい、そうです。

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