プログラミング超初心者です。
下のは、pptxのスライド1枚目に表示されているすべての文字・色・大きさを1文字ずつ取ってくるマクロです。
これを改造して、
(1)pptxファイル内のすべてのスライドに対して
(2)"文字 色 大きさ"の形式で
(3)結果をテキストファイルに書き出す(スライド1枚につきテキストファイル1つでも、全部まとめてテキストファイル1に書き出すでもOK)(さらにシェイプ毎に分かれてくれたら尚嬉しい)
にはどうすればいいのでしょうか?
改造後のソースを書いてくれると助かります。注文の多い我儘な質問ではありますが、よろしくお願いします。
------------------------------------------------------------
Sub Sample1()
'1文字ずつ文字情報取得
Dim myShape As Shape
Dim myCharacter As Object
'スライド1のシェイプを処理
For Each myShape In ActivePresentation.Slides(1).Shapes
With myShape
'テキストがあるシェイプを処理
If .TextFrame.HasText Then
For Each myCharacter In .TextFrame.TextRange.Characters
MsgBox "テキスト:" & myCharacter.Text & vbCrLf & _
"フォントカラー:" & myCharacter.Font.Color & vbCrLf & _
"フォントサイズ:" & myCharacter.Font.Size
Next
End If
End With
Next
End Sub
--------------------------------------------------------------
No.1ベストアンサー
- 回答日時:
たいしたテストもしてません。
現在のファイル全体で 1つのテキストファイルにしてます。
ファイルに書き出す技術は FileSystemObject を使っています。
お勉強なさると便利です。
http://www.google.com/search?hl=ja&lr=lang_ja&ie …
-------------------------------
Option Explicit
Dim fso As Object
Dim ts As Object
Sub AnalyzeSlide() ' これを実行
Dim mySlide As Slide
Dim myShape As Shape
Dim myCharacter As Object
Set fso = CreateObject("Scripting.FileSystemObject")
Set ts = fso.OpenTextFile("d:\log.txt", 2, True)
' ↑↑↑↑ 適当なパスに変更
AppendText "ファイル名:" & ActivePresentation.Name
For Each mySlide In ActivePresentation.Slides
AppendText "----------------"
AppendText "スライド名: " & mySlide.Name
For Each myShape In mySlide.Shapes
AppendText "シェイプ名: " & myShape.Name
If myShape.TextFrame.HasText Then
For Each myCharacter In myShape.TextFrame.TextRange.Characters
AppendText vbTab & "テキスト: " & myCharacter.Text
AppendText vbTab & "フォント カラー: " & myCharacter.Font.Color
AppendText vbTab & "フォント サイズ: " & myCharacter.Font.Size
Next
End If
AppendText
Next
Next
ts.Close
Set ts = Nothing
Set fso = Nothing
End Sub
Private Sub AppendText(Optional aLineText As String = "")
ts.WriteLine aLineText
End Sub
この回答への補足
図形の中に文字があったらダメなようです。今頃気づきましたごめんなさい。
どうやったら図形の中の文字を取得できるのでしょうか?引き続きお願いします。
おぉ!こんなにも早く回答していただいてありがとうございます!!!
いざパス名を変更して、今、試しているのですが、24行目の
For Each myCharacter In myShape.TextFrame.TextRange.Characters
のところで、
実行時エラー'-2147024809(80070057)'
このメンバにアクセスできるのは、単一の図形の場合だけです。
となにかエラーっぽいものが出てしまいます。どうやったらうまくこのエラーを消せるのでしょうか?お願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
- Visual Basic(VBA) VBAの繰り返し処理について教えてください。 3 2022/08/02 13:21
- Visual Basic(VBA) 【VBAエラー】Nextに対するForがありません 対策について 5 2022/11/21 21:26
- Visual Basic(VBA) Excel-VBAでのファイルの開き方 4 2023/02/14 11:01
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/15 15:48
- Visual Basic(VBA) VBA初心者です。 VBAで行単位で条件付き書式の色をカウントしたいです。 大量のデータがあるExc 3 2022/06/08 10:00
- Visual Basic(VBA) VBA初心者です。 VBAで行単位で条件付き書式の色をカウントしたいです。 大量のデータがあるExc 3 2022/06/08 10:02
- Visual Basic(VBA) Excel VBAの解読について質問があります。 概要は、マクロでチェックボックスにチェックすると日 1 2023/02/10 07:50
- Excel(エクセル) B列に文字がはいったらA列に数字が入るマクロードを完成させたい 4 2023/04/21 01:58
このQ&Aを見た人はこんなQ&Aも見ています
-
餃子を食べるとき、何をつけますか?
みんな大好き餃子。 ふと素朴な疑問ですが、餃子には何をつけて食べますか? 王道は醤油とお酢でしょうか。
-
あなたにとってのゴールデンタイムはいつですか?
一週間の中でもっともテンションが上がる「ゴールデンタイム」はいつですか? その逆で、一週間でもっとも落ち込むタイミングでも構いません。 よかったら教えて下さい!
-
「これはヤバかったな」という遅刻エピソード
寝坊だったり、不測の事態だったり、いずれにしても遅刻の思い出はいつ思い出しても冷や汗をかいてしまいますよね。
-
牛、豚、鶏、どれか一つ食べられなくなるとしたら?
牛肉、豚肉、鶏肉のうち、どれか一種類をこの先一生食べられなくなるとしたらどれを我慢しますか?
-
とっておきの「まかない飯」を教えて下さい!
飲食店で働く方だけが食べられる、とっておきの「まかない飯」。 働いてらっしゃる方がSNSなどにアップしているのを見ると、表のメニューには出てこない秘密感もあって、「食べたい!!」と毎回思ってしまいます。
-
エクセルVBAで複数の図に名前をつけたい
Excel(エクセル)
-
Access VBAで行ラベルが定義されていないというエラーが出ます
Access(アクセス)
-
Excelで、図形内の文字をセルに抽出したいです
Excel(エクセル)
-
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/22】このサンタクロースは偽物だと気付いた理由とは?
- ・お風呂の温度、何℃にしてますか?
- ・とっておきの「まかない飯」を教えて下さい!
- ・2024年のうちにやっておきたいこと、ここで宣言しませんか?
- ・いけず言葉しりとり
- ・土曜の昼、学校帰りの昼メシの思い出
- ・忘れられない激○○料理
- ・あなたにとってのゴールデンタイムはいつですか?
- ・とっておきの「夜食」教えて下さい
- ・これまでで一番「情けなかったとき」はいつですか?
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
数式中の文字をCambria Math以...
-
TCPDFの多言語について
-
VBA超初心者です。
-
VB2008 LabelやButtonのTextを...
-
word
-
名古屋の栄と錦は治安悪い?
-
illustratorとExcelは連携出来...
-
ユーザーがクリックするまでフ...
-
Illustratorテキストエリアへ塗...
-
バイナリファイルの編集
-
PowerPoint SmartArtの箇条書...
-
画像からテキストデータを正確...
-
【aviutl】 画像にテキストを張...
-
PDF文書で斜めテキスト
-
VB.NETのテキストボック...
-
『μg』の読み方と意味。
-
NumericUpDownの数値を選択済み...
-
WinMergeでのファイル比較
-
exe bat
-
PDFの余白、黄ばみ除去等の加工...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
数式中の文字をCambria Math以...
-
DOSテキスト形式とは?
-
DataGridViewでセル内の特定の...
-
VBA超初心者です。
-
VB2008 LabelやButtonのTextを...
-
VBAでpng画像に文字列を描画す...
-
プレビューできません
-
LibreOfficeのフォントワークの...
-
TCPDFの多言語について
-
vbaで、オートシェイプ文字列、...
-
テキスト情報が生きたPDF作成を...
-
【Excel2003】テキストBOXを認...
-
Safariの文字化け
-
AS3の拡大と縮小について
-
MAC用の書き込める履歴書テンプ...
-
テキストファイルからの読み込...
-
ダイナミックテキストの文字化...
-
xmlからMCを作成して回転させた...
-
Flashでのスムーズなムービーの...
-
【AS3】テキストに角度を指定し...
おすすめ情報