- ベストアンサー
Word VBA 写真 挿入
Excel で写真の挿入VBAは 皆さんのご回答を元になんとか出来ました。 回答者さま 有難う御座いました。 挿入したファイル(写真)のサイズ変更(見た目のサイズ)も出来ます。 ところが、 Wordへの写真挿入 サイズの変更 になりますと、(VBAで記述したいのに) 「図の書式設定」自体効きません。 ↑ 「マクロの記録」をしても、出来ません。 (ボタンは False 状態) 「マクロの記録」で出来ないという事は つまり、Wordでは無理って考えれば良いのでしょうか。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。KenKen_SP です。 > つまり、Wordでは無理って考えれば良いのでしょうか。 何をやりたいのか具体的に書かれてないので、コメントし難いのですが、 とりあえず、画像を挿入したいなら、 Application.Dialogs(wdDialogInsertPicture).Show で画像挿入のダイアログを表示できます。また、ファイル名を指定して画像を 挿入し、各種操作するには、 Sub Sample() Dim PIC As Shape Dim strFilename As String strFilename = "C:\Sample.jpg" Set PIC = ActiveDocument.Shapes.AddPicture(strFilename) With PIC .LockAspectRatio = msoTrue ' 縦横比を保つ ' ミリメートル指定でサイズを変更する場合(例:50mm) .Width = MillimetersToPoints(50) ' 水平方向の位置を決めるときの基準点を余白に設定 .RelativeHorizontalPosition = wdRelativeHorizontalPositionMargin ' 垂直方向の位置を決めるときの基準点を余白に設定 .RelativeVerticalPosition = wdRelativeVerticalPositionMargin ' ミリメートル指定で余白位置からの場所を指定(例:上10mm、左10mm) .Top = MillimetersToPoints(10) .Left = MillimetersToPoints(10) ' さらに動かしてみる(例:20ポイントずらす) ' ミリメートル指定なら .IncrementTop MillimetersToPoints(10) で 10mm .IncrementTop 20 .IncrementLeft 20 ' さらに回転(例:90度) .IncrementRotation 90# End With Set PIC = Nothing End Sub こんな感じで。微妙に Excel とは違いますが、基本は一緒です。
その他の回答 (1)
- KenKen_SP
- ベストアンサー率62% (785/1258)
> 「マクロの記録」で出来ないという事は > つまり、Wordでは無理って考えれば良いのでしょうか。 VBA は「マクロの記録」では記録されないことも操作可能な場合がありますので、 「マクロの記録」で出来ない = Word では無理という結論にはなりません。 可能・不可能は基本的にヘルプの検索(機能的には貧弱ですが)を使って調べ ます。今回なら、Width がキーワードになりますね。Width プロパティーのペー ジで「対象」というリンクをクリックすると、「Shape」とありますので、Shape オブジェクトに Width プロパティーがあることが分かります。 ヘルプの検索で情報をうまくひろえない場合は、VBE 画面で [F2]キーを押すと 「オブジェクトブラウザ」 が開きますので、そこでキーワードを検索します。今回なら、Picture とか Width 辺りです。検索結果で該当しそうな項目を選択し、「?」ボタンをクリックする とヘルプの検索機能ではヒットしなかったキーワードでも調べることができます。 > ...その質問方法についても... > Wordへの写真挿入 > サイズの変更 になりますと、(VBAで記述したいのに) ご質問のタイトルと本文の内容が異なる、または微妙にずれていると回答の ピントもぼやけてしまいがちです。タイトルはご質問趣旨を簡潔に盛り込み、 本文は具体例を示し、タイトルと一致した焦点に絞った内容を書いた方が、 的確かつ素早い回答が得られると思います。 今回のご質問では、写真の挿入がわからないのか、サイズの変更がわからない のか不明瞭でした。ご質問のタイトルでは「写真の挿入」とあるのですが、 本文では WORD VBA での画像取扱い方法がわからない...との印象も受けるため、 全般をカバーする回答を書いておきました。 ご質問文タイトルで、「WORD VBA」、「写真」といったキーワードが入って いるのはとても良いですね。さらに、今回のご質問の一番のポイント、 「Word VBA 写真のサイズ変更(書式設定)について」 のようなタイトルだと回答される方や、同様の問題解決法を探している方に とっても、さらに良いものになると思います。最近よく見かけますが、 「Excel について」 このようなタイトルだと、本文を読むまで内容が分かりません。結果、本文を 読んでもらえる確率は低くなり、さらに、タイトルと本文が一致していない と、回答意欲が削がれてしまいそうです。
お礼
KenKen_SP さん 再度のご回答ありがとうございます。 >可能・不可能は基本的にヘルプの検索(機能的には貧弱ですが)を使って調べます。 そうなのです。まず、ヘルプを検索するべきなのですが、 提出期限に追われて、VBAを勉強する時間が限られています。 ・・かと言って手作業でしていては、 starsip「絶対間に合わないです。。いいですか?」 社長「よくない。。間に合わせろ。手伝いの人をやるから間に合わせろ」 でも、手伝いの人に手作業でやってもらっても絶対間に合いません。 VBAで作り易くしてあげないと・・ ある意味、「VBAを組んでいる時間があるなら、自分で全ての資料を作ればよいのでは」 と、考える日もあります。 でも、やはり自分一人で一日でやれる事は限りがあります。 ここまで書いて、starsip の愚痴みたいですので、やめます。 >ご質問のタイトルと本文の内容が異なる、または微妙にずれていると回答の >ピントもぼやけてしまいがちです。タイトルはご質問趣旨を簡潔に盛り込み、 >本文は具体例を示し、タイトルと一致した焦点に絞った内容を書いた方が、 >的確かつ素早い回答が得られると思います。 解りやすい、ご回答ありがとうございます。気を付けます。 なるほどと思いました。 >全般をカバーする回答を書いておきました。 のめしですが、一番ありがたいです。 全て把握出来ますし、、解らないでいた事まで、「そうなんだ」と 質問内容と違う事で納得してみたり・・。 まとまりのつかない、お礼になってしまいましたが ご指摘頂いた事、よく考えてみます。 KenKen_SP さん 有難う御座いました。
お礼
> With PIC > .LockAspectRatio = msoTrue ' 縦横比を保つ > ' ミリメートル指定でサイズを変更する場合(例:50mm) > .Width = MillimetersToPoints(50) ''----この行でやりたい事ができました。 > ・・・・ > ・・・・ KenKen_SP さん 有難う御座います。 私はVBAに関して始めたばかりの者です。・・のでご迷惑も掛けます。 皆さんのご回答には感謝 々 です。 質問方法についても未熟かもしれませんが、その質問方法についても ご教示下されば、幸いです。 有難う御座いました。
補足
KenKen_SP さん ご回答有難う御座います。 何がしたいかと言うと Word で「説明書」を作成したいのです。 少し具体的に言うと「保守指導案内書」を作成します。 「素人でも解るように作成して下さい」との客先依頼ですので、 写真入りで「保守指導案内書」をWord で作っています。 説明書(「保守指導案内書」)を作成するには Excel より Word の方が作り易いし、見易いので、 Word を選びました。 ところが、Excel では写真のサイズをVBAで自由に 出来ましたが、Word で躓いた次第です。 (元のサイズ(デジカメ写真)は超デカイですので・・) とりあえず、KenKen_SP さん への返答をしたかったので 補足で失礼します。 これから、KenKen_SP さん のご回答を検討してみます。もし、補足・お礼の順番が反対でしたら、ごめんなさいです。