[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『マクロでBody1,2,3…を配列やループにするには』(勉強中)
表題の件教えてください。
マクロでメールを自動作成しようとしています。
Option Explicitを先頭に付けると、下記で「変数が定義されていません」と出てしまいます。
Body1 = 設定wb.Worksheets("設定").Cells(6, 3) Body2 = 設定wb.Worksheets("設定").Cells(7, 3) Body3 = 設定wb.Worksheets("設定").Cells(8, 3) 〜省略〜 Body8 = 設定wb.Worksheets("設定").Cells(13, 3)
変数を定義する際に、Body1, Body2, Body3, … Body8と全て(8回分) を Dim Body1 As String…と定数定義しないで、
配列なりループなりで1つで宣言できないかと考えていますが表現方法が分かりません。ご教授いただければ幸いです。
< 使用 Excel:Microsoft365、使用 OS:Windows10 >
そもそも Body1, Body2, Body3 〜 Body8 ではなく、 Body(1), Body(2), Body(3) 〜 Body(8) と配列にすればいいのでは。
(通りすがり) 2023/09/20(水) 13:58:16
Dim Body(8) As String
Bodyも()で囲ってみましたが、ここは一つずつ書く事になりますか?
Body(1) = 設定ws.Cells(6, 3) Body(2) = 設定ws.Cells(7, 3) Body(3) = 設定ws.Cells(8, 3) Body(4) = 設定ws.Cells(9, 3) Body(5) = 設定ws.Cells(10, 3) Body(6) = 設定ws.Cells(11, 3) Body(7) = 設定ws.Cells(12, 3) Body(8) = 設定ws.Cells(13, 3)
下記のように、本文1行ずつ、改行したり、途中で図を貼ったり…等色々操作したいので、
Body(1)からBody(8)までをループでは出来ないのでは? 等、息詰まっております。
.TypeText Body(1) .TypeText Chr(13)
.TypeText Body(2) .TypeText Chr(13) .TypeText Chr(13)
図を貼る
.TypeText Body(3) 以下省略
(勉強中) 2023/09/20(水) 15:11:06
よく分かってませんが、例えば、
For i = 1 To 8 Body(i) = 設定ws.Cells(i + 5, 3) Next i
ではダメなのですか?
(通りすがり) 2023/09/20(水) 15:32:53
Dim body body = Range("C6:C13")
bodyは2次元配列になっています。
読み出しのサンプルです。BookとかSheetは必要に応じて指定してください。
Sub a()
Dim body body = Range("C6:C13")
Dim i As Long
For i = LBound(body) To UBound(body) Debug.Print body(i, 1) Next
End Sub
(ゆたか) 2023/09/20(水) 15:47:23
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.