Word VBA質問箱 IV

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

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


1 / 297 ツリー 前へ→

【866】フォルダ内文書の一括処理 nishi 19/2/19(火) 9:32 質問[未読]
【867】Re:フォルダ内文書の一括処理 亀マスター 19/2/20(水) 18:51 発言[未読]
【868】Re:フォルダ内文書の一括処理 nishi 19/2/22(金) 9:10 お礼[未読]

【866】フォルダ内文書の一括処理
質問  nishi  - 19/2/19(火) 9:32 -

引用なし
パスワード
   初めての質問です。
wordにマクロの記録で書式を設定しました。
デスクトップ上のフォルダ内にある複数のword文書を一括処理をさせたいのですが(文書名の決まりはありません。数は20〜30文書)
マクロは下記に記します。Windows7 、office standard 2010です。
ご教示よろしくお願いいたします。

Sub 書式マクロ3()
'
' 書式マクロ3 Macro
'
'
  Selection.HomeKey Unit:=wdStory
  Selection.EndKey Unit:=wdLine, Extend:=wdExtend
  Selection.Font.Name = "MS P明朝"
  Selection.Font.Size = 16
  Selection.Font.Bold = wdToggle
  Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter
  Selection.EndKey Unit:=wdLine
  Selection.TypeParagraph
  Selection.Font.Size = 11
  Selection.TypeParagraph
  Selection.MoveRight Unit:=wdCharacter, Count:=1
  Selection.EndKey Unit:=wdLine, Extend:=wdExtend
  Selection.Font.Name = "MS P明朝"
  Selection.Font.Size = 12
  Selection.ParagraphFormat.Alignment = wdAlignParagraphRight
  Selection.EndKey Unit:=wdLine
  Selection.TypeParagraph
  Selection.Font.Size = 11
  Selection.MoveRight Unit:=wdCharacter, Count:=1
  Selection.MoveDown Unit:=wdParagraph, Count:=1, Extend:=wdExtend
  Selection.EndKey Unit:=wdStory, Extend:=wdExtend
  Selection.Font.Name = "MS P明朝"
  Selection.Font.Size = 11
  Selection.ParagraphFormat.Alignment = wdAlignParagraphLeft
  With Selection.PageSetup
    .LineNumbering.Active = False
    .Orientation = wdOrientPortrait
    .TopMargin = MillimetersToPoints(35)
    .BottomMargin = MillimetersToPoints(30)
    .LeftMargin = MillimetersToPoints(30)
    .RightMargin = MillimetersToPoints(30)
    .Gutter = MillimetersToPoints(0)
    .HeaderDistance = MillimetersToPoints(15)
    .FooterDistance = MillimetersToPoints(17.5)
    .PageWidth = MillimetersToPoints(210)
    .PageHeight = MillimetersToPoints(297)
    .FirstPageTray = wdPrinterDefaultBin
    .OtherPagesTray = wdPrinterDefaultBin
    .SectionStart = wdSectionNewPage
    .OddAndEvenPagesHeaderFooter = False
    .DifferentFirstPageHeaderFooter = False
    .VerticalAlignment = wdAlignVerticalTop
    .SuppressEndnotes = False
    .MirrorMargins = False
    .TwoPagesOnOne = False
    .BookFoldPrinting = False
    .BookFoldRevPrinting = False
    .BookFoldPrintingSheets = 1
    .GutterPos = wdGutterPosLeft
    .LinesPage = 42
    .LayoutMode = wdLayoutModeLineGrid
  End With
End Sub

【867】Re:フォルダ内文書の一括処理
発言  亀マスター  - 19/2/20(水) 18:51 -

引用なし
パスワード
   1.指定したフォルダ内にあるWord文書を開く
2.書式設定を施す
3.保存して閉じる
4.Word文書がなくなるまで1〜3を繰り返す

という手順が必要になりますが、VBAにおける繰り返し処理についての基本は理解されているでしょうか。
「For Each ○○ in △△」という記述を見て何のことかわからないというのであれば、VBAの基本をある程度勉強してからの方がいいのではないのかなと思います。

「それくらいわかってる」ということでしたら、以下のサイトが参考になると思われます。
ht tps://tonari-it.com/word-vba-document-open-close/

このサイトの説明ではフォントの設定だけをしていますが、その代わりに今回記録したマクロを当てはめれば、全ての文書に同じ処理をできます。
(マクロ記録をそのまま使うと無駄が多いのですが、動くことは動くと思いますので、どこがどう無駄なのかはそのうち勉強してみてください)

【868】Re:フォルダ内文書の一括処理
お礼  nishi E-MAIL  - 19/2/22(金) 9:10 -

引用なし
パスワード
   亀マスターさま

早々のご回答をいただきありがとうございます。
返信が遅れて申し訳ございません。
ご察しのとおり、for Each〜 がよくわかっていないし
教えていただいたサイトも既に訪れていますが
なかなか、上手くいかずこの質問箱様の
お力を頂ければとたどり着いた次第です。
教えていただいたサイトをもう一度やり直して勉強してみたいと思います。

ありがとうございました。

1 / 297 ツリー 前へ→
ページ:  ┃  記事番号:
201131
(SS)C-BOARD v3.8 is Free