エクセルにあるマクロからワードを立ち上げ、セルにあるデータをワードの段落に入力する為以下のコードを作成しました。
エラーが起こることなく、最後まで通過するのですが、フォントサイズの指定が上手く行きません。
※問題なく通るのですが、段落一つに対してのフォントサイズ設定が出来ません。
段落の範囲を指定した場合は問題なくフォントサイズの設定が出来るのですが、段落一つの指定でフォントサイズを変更した場合、作動せず通過してしまいます。
問題コード「 .ActiveDocument.Goto(What:=wdGoToLine, Count:=1).Font.Size」は下記のURLを参考に作成しました。
https://teratail.com/questions/152497
段落一つに対してのフォントサイズ指定はどの様にすればよろしいでしょうか。
うまく行かない理由など、ご教授いただければ嬉しく思います。
Sub 新ワード立ち上げ() Dim i As Long Dim wdApp As Word.Application Dim wdDoc As Word.Document Dim cla As String Dim name As String Dim pro As String Dim ADR As String i = 7 ''ここは渡される変数 cla = Cells(i, 8) name = Cells(i, 3) ADR = Cells(i, 2) & Cells(i, 4) Set wdApp = CreateObject("Word.Application") Set wdDoc = wdApp.Documents.Add wdDoc.Activate wdApp.Visible = True With ActiveDocument.PageSetup .PageWidth = MillimetersToPoints(148) .PageHeight = MillimetersToPoints(210) .TopMargin = MillimetersToPoints(20) .BottomMargin = MillimetersToPoints(20) .LeftMargin = MillimetersToPoints(15) .RightMargin = MillimetersToPoints(15) End With With wdApp .Selection.Font.name = "HGP行書体" 'フォント Call .Selection.Goto(What:=wdGoToPage, Which:=wdGoToFirst, Count:=pageNo) 'カーソルを置く .Selection.Font.Size = 11 For g = 1 To 13 .Selection.TypeParagraph '改行 Next .ActiveDocument.Goto(What:=wdGoToLine, Count:=1).Font.Size = 28 'ここです!! .ActiveDocument.Goto(What:=wdGoToLine, Count:=4).Font.Size = 48 .ActiveDocument.Goto(What:=wdGoToLine, Count:=5).Font.Size = 26 .ActiveDocument.Goto(What:=wdGoToLine, Count:=6).Font.Size = 38 .ActiveDocument.Range(Start:=.ActiveDocument.Paragraphs(7).Range.Start, End:=.ActiveDocument.Paragraphs(9).Range.End).Font.Size = 20 'ここは動きます。 .ActiveDocument.Goto(What:=wdGoToLine, Count:=1).Text = cla .ActiveDocument.Goto(What:=wdGoToLine, Count:=4).Text = name .ActiveDocument.Goto(What:=wdGoToLine, Count:=13).Text = ADR .ActiveDocument.Range(Start:=.ActiveDocument.Paragraphs(1).Range.Start, End:=.ActiveDocument.Paragraphs(10).Range.End).ParagraphFormat.Alignment = wdAlignParagraphCenter End With End Sub
問題のコードに「ここです!!」
作動するコード(範囲指定)に「ここは動きます」とコメントを入れさせていただきました!
よろしくお願いします。
.ActiveDocument.Goto(What:=wdGoToLine, Count:=1).Font.Size = 28 'ここです!!
.ActiveDocument.Goto(What:=wdGoToLine, Count:=4).Font.Size = 48
.ActiveDocument.Goto(What:=wdGoToLine, Count:=5).Font.Size = 26
.ActiveDocument.Goto(What:=wdGoToLine, Count:=6).Font.Size = 38
.ActiveDocument.Range(Start:=.ActiveDocument.Paragraphs(7).Range.Start, End:=.ActiveDocument.Paragraphs(9).Range.End).Font.Size = 20 'ここは動きます。
.ActiveDocument.Goto(What:=wdGoToLine, Count:=1).Text = cla
.ActiveDocument.Paragraphs(1).Range.Font.Size = 28 '←これ入れるとどうなりますか?
.ActiveDocument.Goto(What:=wdGoToLine, Count:=4).Text = name
.ActiveDocument.Paragraphs(4).Range.Font.Size = 48 '←これ入れるとどうなりますか?
.ActiveDocument.Goto(What:=wdGoToLine, Count:=13).Text = ADR
もしかして、.Gotoだと、カーソル移動だけで、範囲が選択されていないとか?
動く行
.ActiveDocument.Range(Start:=.ActiveDocument.Paragraphs(7).Range.Start, End:=.ActiveDocument.Paragraphs(9).Range.End).Font.Size = 20 'ここは動きます。
↑は、
Range Start:= と End:= で、
範囲を選択しているので、その範囲のFontが設定可能で、
単純に .Gotoの時は、カーソルが何も指定しない位置のフォントをセットしているので、変わらないとか?
動かしていないので、捕捉欄で失礼します※外していたらすみません。
.Expand.Selectしてからだと設定可能な気がします。
ベストアンサー選択遅くなり申し訳ありません。
ご回答ありがとうございました!
回答1件
あなたの回答
tips
プレビュー