Excel (VBA)

Excel VBAに関するフォーラムです。
  • 掲示板への投稿には会員登録(無料)が必要です。会員登録がまだの方はこちら
  • 掲示板ご利用上のお願い」に反するご記入はご遠慮ください。
  • Q&A掲示板の使い方はこちらをご覧ください
トピックに返信
質問

 
(Windows 10 Pro : 指定なし)
Microsoft365 新しいブックに保存する際のフォント指定について
投稿日時: 21/07/21 17:07:17
投稿者: FANFAN

今までのPC 
 Windouws8.1 Office2010
NewPC
 Windous10Pro OfficeはMicrosoft365
 
NewPCに変わったとたん、困ったことが起きました。
 
デイリー業務で使用しているマクロで、処理の最後に現在のブックを新しいブックに
保存する処理があるのですが、Activeシートのフォントは「MS Pゴシック」で、新しい
ブックは勝手に「游ゴシック」になってしまい、困っています。
 
下記のロジックで新しいブックに保存し、その後新しいブックをOPENしフォントを変更
して上書き保存するように変更しました。
 
手間をかけずにフォントの変更ができないでしょうか。
ご教示ください。
 
(保存時のロジック)
    ActiveWorkbook.SaveAs Filename:=パス & "\" & ブック, FileFormat _
      :=xlNormal, PASSWORD:="", WriteResPassword:="", ReadOnlyRecommended:= _
      False, CreateBackup:=False
    ActiveWorkbook.Close
 
(追加したロジック)
 '保存したブックを開き、全てのシートのフォントを"MS Pゴシック"に変更する
    対象ブック = Dir(パス & "\" & ブック & ".xls")
    If 対象ブック <> "" Then
       Workbooks.Open Filename:=パス & "\" & ブック & ".xls", UpdateLinks:=0
       For Each 対象シート In Worksheets
          Workbooks(対象ブック).Worksheets(対象シート.Name).Activate
          Workbooks(対象ブック).Worksheets(対象シート.Name).Cells.Select
          With Selection.Font
             .Name = "MS Pゴシック"
          End With
       Next
       Workbooks(対象ブック).Close SaveChanges:=True '対象ブック上書き保存
    End If
   
 

回答
投稿日時: 21/07/21 20:50:01
投稿者: WinArrow
投稿者のウェブサイトに移動

こちらは、Excel2019の環境なので、
Microsoft365
と違うかもしれませんが、
 
「ファイル」タブのしたのほうに「オプション」があると思います。
 
これをクリックして
「新しいブックの作成時」
「次を規定フォントとして使用」ボックスを確認してみてください。

投稿日時: 21/07/26 08:34:46
投稿者: FANFAN

WinArrow さんの引用:
こちらは、Excel2019の環境なので、
Microsoft365
と違うかもしれませんが、
 
「ファイル」タブのしたのほうに「オプション」があると思います。
 
これをクリックして
「新しいブックの作成時」
「次を規定フォントとして使用」ボックスを確認してみてください。

 
WinAllow様
コメントありがとうございます。
 
「次を規定フォントとして使用」ボックスの件はすでに知っており、「MS Pゴシック」に
設定済ですが、新しいブックに保存すると、無視されて「游ゴシック」になってしまいます。

回答
投稿日時: 21/07/26 10:51:22
投稿者: よろずや

>Activeシートのフォントは「MS Pゴシック」
>ブックは「游ゴシック」
 
シートのフォントとブックのフォントは別物です。
 
ActiveWorkbook.Styles("標準").Font.Name
を見れば、「游ゴシック」になっているはずです。
これを「MS Pゴシック」にすればよろしいかと。

投稿日時: 21/07/26 12:00:42
投稿者: FANFAN

よろずや さんの引用:
>Activeシートのフォントは「MS Pゴシック」
>ブックは「游ゴシック」
 
シートのフォントとブックのフォントは別物です。
 
ActiveWorkbook.Styles("標準").Font.Name
を見れば、「游ゴシック」になっているはずです。
これを「MS Pゴシック」にすればよろしいかと。

 
よろずや様
 
コメントありがとうございます。
 
ActiveWorkbook.SaveAs Filename・・・の直後に
ActiveWorkbook.Styles("標準").Font.Name = "MS Pゴシック" を追加して
ActiveWorkbook.Close (True)
 
その後
保存されたブックを
MsgBox ActiveWorkbook.Styles("標準").Font.Name で確認すると確かに "MS Pゴシック"
に変わっていましたが、シートのフォントは「游ゴシック」のままでした。
 
やはり面倒でも全てのシートに対してもフォント指定しないと駄目なようです。
 
 

回答
投稿日時: 21/07/26 16:58:46
投稿者: ハヤシライス

横から失礼します。
 
「次を規定フォントとして使用」ですが、これって設定後、Excelを再起動しないと反映できなかった気がします。
また、上記設定は「Application.StandardFont」かと思いますがいかがでしょうか?

回答
投稿日時: 21/07/26 17:01:15
投稿者: Suzu

引用:
現在のブックを新しいブックに
保存する処理があるのですが、Activeシートのフォントは「MS Pゴシック」で、新しい
ブックは勝手に「游ゴシック」になってしまい、困っています。

 
 
Activeシート に フォントプロパティー は無いですよね。
この、フォント は 何のフォントを指していますか?
 
どのように確認しているのでしょうか?
 
また、全体の流れとして、この 「現在のブック」は、
既存ブック に対し、改めて 名前を付けて保存 を行っているだけなのではありませんか?
 
その場合、その当該ファイルを開き、「ホーム」-「フォント」が、MS Pゴシック としても
 
・MS Pゴシック
・MS Pゴシック 本文
 
の2種類を採りえます。
 
この場合、「本文」がついていると、テーマによりフォントが左右される事になります。
「ページレイアウト」-「テーマ」 の フォント
  「Office」だと、游ゴシック ですが、
 「Office2007 - 2010」だと、MS Pゴシック になります。
確認してみてください。
 
 
【Excel VBA】テーマのフォントを設定する…ThemeFontプロパティ
https://officek.net/excelvba/v-range/vr-format/vrf-themefont/
 
テーマを変えるか、
 
Fontオブジェクトに対し
  Name に 変更後のフォントを渡すだけでなく、
  ThemeFontプロパティ に、 xlThemeFontNone を渡してみてください。

トピックに返信