Office2003のEXCEL使用しています。
ワードアートのフォントを別のモノに
一括変換したくて調べたら、
VBA のコードを実行すればOKと書いてありました。
以下文章。
1. Microsoft Word の「Visual Basic Editor」を起動。
2. [挿入] - [標準モジュール] を選択。
3. 下記のコードを貼り付け。
4. [実行] - [Sub/ユーザー フォームの実行] を選択。
これで、ワードアートのフォントが一括で置換出来る。
Sub ChangeWordArtFont()
' ワードアートのフォントを変更(書式が「行内(インライン)」の場合)
Dim inlineShape
For Each inlineShape In ActiveDocument.InlineShapes
If inlineShape.Type = wdInlineShapePicture Then
inlineShape.TextEffect.FontName = "HG創英角ポップ体"
End If
End If
' ワードアートのフォントを変更
Dim shape
For Each shape In ActiveDocument.Shapes
If shape.Type = msoTextEffect Then
shape.TextEffect.FontName = "HG創英角ポップ体"
End If
Next
End Sub
この通りにやったのですが、エラーが出て完了できません。
構文が間違っているのでしょうか?
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は注意が必要と思う。
ありがとうございました。
#1#2も合わせて拝見させて頂き、
無事正常に変換する事が出来ました。
教えてgoo(OKWave)では半角カナは全角に修正される様ですね。
フォントネームは半角で入力する様にしておりますが、
合わせて今後ミスが無い様にしていきたいと思います。
無知な質問に対して丁寧にご回答ありがとうございました。
No.2
- 回答日時:
先ほどアドバイスを入れたものです。
重要な点を指摘しませんでしたActiveDocument.InlineShapes
は
ワードの文書上のワードアートの例で、質問ではエクセルになってます。根本的に例の通りでは使えません。
取り急ぎ。
この回答への補足
ありがとうございます。
ワード ActiveDocument.InlineShapes
エクセル In ActiveSheet.Shapes
となる訳ですね。
そりゃ動く筈無いですね。
以後同じ間違いをしない様に気をつけます。
No.1
- 回答日時:
まず質問コード上で
If
End If
の呼応関係がおかしい。
End If
End If
の部分。
お手本をその通り写したか再チェックして、補足をすること。
お手本の作者は相当熟達のかたらしいから誤りは無いと思うので。
ーー
それとエラーが出た行ぐらい質問に書くものだよ。
ーー
プログラムが動かないとき
プログラムのミスばかりに目が行きがちだが、データ(シートの状態
など)でも動か無くなることがある(多い)ので、どういう状態でテストしたかも書くべき。
例えばワード・アートをいくつ貼り付けたかなど。
どこを書いたらよいか難しい点だが。
この回答への補足
まずは丁寧にご回答ありがとうございます。
End If
End If
の呼応がおかしいのを記載しなかった為お手数をお掛けしました。
今更ですが記載しておきます。
F5(Sub/ユーザー フォームの実行])後に
コンパイル エラー:
End If に対応する If ブロック がありません。
と出たので、End If を取り除くと、
コンパイル エラー:
For に対応する If Next がありません。
と出ました。
For Each shape In ActiveDocument.Shapes
の構文がおかしいのかなと思いましたが、
どこが違うのか分からなかった為に質問をした次第です。
また、EXCELに貼り付けたワードアートの数は3つで、
他のモノがあるとエラーに繋がるかもと思い、
他の文章や図は全て省いておりました。
今後の質問の参考にさせて頂きます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルシート中の全角英数字を半角に変換したい 4 2022/07/07 13:14
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- Visual Basic(VBA) 複数のcsvファイルをExcelに一括変換したい 2 2023/03/03 12:44
- Visual Basic(VBA) VBAの繰り返し処理について教えてください。 3 2022/08/02 13:21
- Visual Basic(VBA) Excel VBAの解読について質問があります。 概要は、マクロでチェックボックスにチェックすると日 1 2023/02/10 07:50
- Visual Basic(VBA) VBA This Workbookモジュールを別ファイルにコピーする方法 1 2022/09/14 01:51
- Visual Basic(VBA) コード名シートA列と集計シートA列のコードが一致したら、コード名シートA5からk12の範囲をコピーし 1 2022/08/29 23:46
- Excel(エクセル) フォルダ内のワードファイルをPDFに一括変換するVBA 3 2023/06/09 16:51
- Visual Basic(VBA) 【VBAエラー】Nextに対するForがありません 対策について 5 2022/11/21 21:26
- Excel(エクセル) B列に文字がはいったらA列に数字が入るマクロードを完成させたい 4 2023/04/21 01:58
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで薄く透ける文字を入...
-
wordで太字で筆字のように。
-
エクセルで縦倍、横倍角で文字...
-
windows11のWordが開かず、起動...
-
ACCESSのクエリで抽出したデー...
-
ワードアートの一括変換
-
ワード文書をCD-Rに書き込...
-
ワードアート縦書きが正しく印...
-
accessでフリーワード検索が入...
-
コピー&ペーストで貼り付けた...
-
PowerPointで文字を透過させた...
-
ワードアートで普通の文字を。。
-
【ワード】コピーをすると数字...
-
Office2013のPowerPointのルビ
-
ワードアートの文字の大きさを...
-
ワードアートの文字数制限
-
ワードのオートシェイプで円の...
-
ワードの文章入力開始位置について
-
看板文字の作り方を教えてくだ...
-
縦書きの文書作成で、ルビを打...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで薄く透ける文字を入...
-
エクセルで縦倍、横倍角で文字...
-
ワードの文章入力開始位置について
-
【ワード】コピーをすると数字...
-
wordで太字で筆字のように。
-
ワードアート縦書きが正しく印...
-
縦書きの文書作成で、ルビを打...
-
ワードでカーソルが点滅せず、...
-
Office2013のPowerPointのルビ
-
野球ユニフォームのゼッケンの...
-
ワードアートで行間を詰めたい...
-
PCでプリントを作る方法
-
ACCESSのクエリで抽出したデー...
-
ワードアートの文字の大きさを...
-
ワードアートの色が変更できません
-
コピー&ペーストで貼り付けた...
-
accessでフリーワード検索が入...
-
ワードアートで普通の文字を。。
-
テクスチャでの文字の塗りつぶ...
-
Word の吹き出しの文字を斜めに...
おすすめ情報