• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ワードアートの一括変換)

一括変換でワードアートのフォントを簡単に変更する方法

このQ&Aのポイント
  • Office2003のEXCELでワードアートのフォントを一括変換したい場合、VBAのコードを実行することで簡単に変更することができます。
  • 具体的な手順は以下の通りです。まず、Microsoft Wordの「Visual Basic Editor」を起動し、「挿入」-「標準モジュール」を選択します。次に、提供されたコードを貼り付けて「実行」-「Sub/ユーザーフォームの実行」を選択します。
  • しかし、提供されたコードを実行するとエラーが出る場合があります。エラーが出る原因は構文の間違いです。コードの一部に不要な行が含まれているため、それらの行を削除することで問題が解決する場合があります。

質問者が選んだベストアンサー

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.3

#1、#2です。 Sub ChangeWordArtFont() ' ワードアートのフォントを変更(書式が「行内(インライン)」の場合) Dim inlineShape As Object For Each inlineShape In ActiveSheet.Shapes If inlineShape.Type = wdInlineShapePicture Then inlineShape.TextEffect.FontName = "HG創英角ポップ体" End If Next ' ワードアートのフォントを変更 Dim shape For Each shape In ActiveSheet.Shapes If shape.Type = msoTextEffect Then shape.Select Selection.ShapeRange.TextEffect.FontName = "HG創英角ポップ体" End If Next End Sub でやってみると動くようです。 ーーーー <注意> ポップ体のポッフは半角カナが正しいようで、上記のコードもOKWAVEで全角等に変換されるかも知れず注意のこと。半角カナ修正のこと。 これ以外も、フォントNameは注意が必要と思う。

lapis8033
質問者

お礼

ありがとうございました。 #1#2も合わせて拝見させて頂き、 無事正常に変換する事が出来ました。 教えてgoo(OKWave)では半角カナは全角に修正される様ですね。 フォントネームは半角で入力する様にしておりますが、 合わせて今後ミスが無い様にしていきたいと思います。 無知な質問に対して丁寧にご回答ありがとうございました。

その他の回答 (2)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

先ほどアドバイスを入れたものです。重要な点を指摘しませんでした ActiveDocument.InlineShapes は ワードの文書上のワードアートの例で、質問ではエクセルになってます。根本的に例の通りでは使えません。 取り急ぎ。

lapis8033
質問者

補足

ありがとうございます。 ワード  ActiveDocument.InlineShapes エクセル In ActiveSheet.Shapes となる訳ですね。 そりゃ動く筈無いですね。 以後同じ間違いをしない様に気をつけます。

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.1

まず質問コード上で If End If の呼応関係がおかしい。  End If   End If の部分。 お手本をその通り写したか再チェックして、補足をすること。 お手本の作者は相当熟達のかたらしいから誤りは無いと思うので。 ーー それとエラーが出た行ぐらい質問に書くものだよ。 ーー プログラムが動かないとき プログラムのミスばかりに目が行きがちだが、データ(シートの状態 など)でも動か無くなることがある(多い)ので、どういう状態でテストしたかも書くべき。 例えばワード・アートをいくつ貼り付けたかなど。 どこを書いたらよいか難しい点だが。

lapis8033
質問者

補足

まずは丁寧にご回答ありがとうございます。  End If   End If の呼応がおかしいのを記載しなかった為お手数をお掛けしました。 今更ですが記載しておきます。 F5(Sub/ユーザー フォームの実行])後に コンパイル エラー: End If に対応する If ブロック がありません。 と出たので、End If を取り除くと、 コンパイル エラー: For に対応する If Next がありません。 と出ました。 For Each shape In ActiveDocument.Shapes の構文がおかしいのかなと思いましたが、 どこが違うのか分からなかった為に質問をした次第です。 また、EXCELに貼り付けたワードアートの数は3つで、 他のモノがあるとエラーに繋がるかもと思い、 他の文章や図は全て省いておりました。 今後の質問の参考にさせて頂きます。

関連するQ&A