wordのマクロについて教えて下さい。
クリップボードからワードに画像を貼り付けたいと思っております。
海外のサイトにあった下記マクロを参考にしてみました。
そのマクロでは「メタファイル」として貼り付けしてありますが、
「ビットマップ」で貼り付けしたいので、「wdPasteBitmap」に変えて
作成しましたが、上手く動きませんでした。。
他にどこを変更すれば良いか教えてください。
よろしくお願いいたします。
Sub pasteEnchasaMeta()
Dim PasteObect As Shape
'changed to shape
Dim Count As Integer
Selection.PasteSpecial Link:=False, DataType:=wdPasteEnhancedMetafile, _
Placement:=wdFloatOverText, DisplayAsIcon:=False
'Changed Placement for pasting as shape
Count = ActiveDocument.Shapes.Count
Set PasteObect = ActiveDocument.Shapes(Count)
With PasteObect
.LockAspectRatio = msoFalse
'This is required otherwise shape's height will be changed
.Width = CentimetersToPoints(9)
.ConvertToInlineShape
'Converted to inline shape
End With
End Sub
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
> ドローソフト(イラストレーター)で描いた図
これだと、インポートされたオブジェクトなのでWordとの相性が悪く、
コピー&貼り付けをするのはお勧めできません。
私は作業経験や検証などをしたことがないのですが、過去の回答などで
閲覧しているとトラブルも多いように思います。
コピーするのではなく、[Office用に保存]をしたものをWordに挿入して、
サイズを変更してはいかが。
https://ameblo.jp/sumitak1329/entry-11475232394. …
挿入後に選択されている画像を縮小するなら、
Sub 画像サイズを指定()
With Selection.ShapeRange
.LockAspectRatio = msoFalse
.Width = CentimetersToPoints(9)
.ConvertToInlineShape
End With
End Sub
に質問のマクロを書き換えるだけで済みます。
No.2
- 回答日時:
> Set PasteObect = ActiveDocument.Shapes(Count)
> ”指定したコレクションに対するインデックスが境界を越えています”
このエラーは何で出るのだろうか?
Count = ActiveDocument.Shapes.Count
Set PasteObect = ActiveDocument.Shapes(Count)
この指定で、貼り付けした浮動配置のビットマップが、ファイル内での
最後に挿入したもの(浮動配置の図をすべてカウントしたときの数)で、
最後の順番として認識されることで貼り付けしたものだけを対象にする
設定です。
これがエラーになるということは、カウントした数が実際の図形よりも
多くあると認識されて、処理する対象がないエラーです。
新規文書で画像が一つだけのファイルを用意し、マクロを実行した場合
した場合にもエラーになりますか?(たぶん大丈夫だと思う)
エラーになる文書において、私が認識できないようなものが、図として
カウントされているようなので、それが何かを検証しないと対応方法を
提示できないと思います。
(原因となっている図が、場合によっては対応方法を知らないことも)
ご回答ありがとうございます。
ドローソフト(イラストレーター)で描いた図をコピーしてワードにペーストしております。
その際に、サイズも縮小したいので、このマクロを作成してみました。
メタファイルとビットマップでは型が違うのかもしれませんね。
No.1
- 回答日時:
マクロを実行する前に、通常の[形式を選択して貼り付け]をしたとき、
ビットマップが貼り付け形式としてありますか?
例えばコピーしたものがExcelのグラフだった場合、貼り付け形式には
画像の種類が表示されます。
これが、エクスプローラーで画像ファイルを選択してコピーしただけの
場合は、画像の種類は表示されません。この場合はマクロを実行しても
貼り付けられないエラーになるだけです。
ご回答ありがとうございます。
貼り付けはできるのですが、
Set PasteObect = ActiveDocument.Shapes(Count)
のところで、”指定したコレクションに対するインデックスが境界を越えています” というエラーが返されてしまいます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 【マクロ】スクショ印刷がうまく動かない件 5 2022/12/06 17:37
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- Visual Basic(VBA) 【VBA】写真の縦横比を変えずに貼り付ける 5 2023/06/13 11:42
- Visual Basic(VBA) EXCEL VBAにて動的にCheckBOXを複数作成し、同BOXにイベントを追加したい 1 2023/03/16 07:05
- Visual Basic(VBA) QRコード作成マクロについて 3 2022/11/26 16:55
- Visual Basic(VBA) excel vbaでvlooupの変数がわかりません。 7 2022/05/30 09:35
- Visual Basic(VBA) Sheet3から2つの条件でオートフィルターで抽出した個数をSheet2へ入力するマクロで、一つ目の 4 2023/01/12 23:40
- Visual Basic(VBA) A列B列C列 3 2023/04/26 18:11
- Visual Basic(VBA) Excel VBAの解読について質問があります。 概要は、マクロでチェックボックスにチェックすると日 1 2023/02/10 07:50
- Visual Basic(VBA) エクセル マクロ(A1:A10)までの中で一番多く出た数字をB10に表示 6 2023/04/25 17:01
このQ&Aを見た人はこんなQ&Aも見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
【ワード】マクロで画像を選択する
Word(ワード)
-
ワードマクロで画像を選択する方法
Word(ワード)
-
ワードに貼り付けた画像サイズの変更
Word(ワード)
-
-
4
エクセルのVBAでクリップボードにコピーした画像をpng(or jpg or bmp)保存したい
Visual Basic(VBA)
-
5
wordでの指定オブジェクトの削除
Word(ワード)
-
6
エクセルVBAで画像を貼り付ける座標設定方法は?
PowerPoint(パワーポイント)
-
7
エクセルでの画像貼り付け時のサイズ変換
Excel(エクセル)
-
8
ワード上Shapeの位置情報を統一基準で取得したい
Visual Basic(VBA)
-
9
Word VBA 表内の図を一括中央揃えにするマク
Word(ワード)
-
10
特定の文字を含むシートだけマクロ処理をしたい
Visual Basic(VBA)
-
11
ExcelのVBAでWordを読み取り専用で開いて、見たいページに自動で移動する方法を教えて頂きたい
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
複数のデータ系列の線の太さを...
-
エクセルでツールバーに「縮小...
-
ファイル名を今日の日付、時刻...
-
VBAを使ってエクセルシート...
-
ピボットグラフの書式の固定に...
-
Powerpointでランダムな数字の...
-
別ブックからユーザーフォーム...
-
VBA[Private Sub]のコードをシ...
-
エクセル2007 テキストボ...
-
VBAでこのような図形の移動はで...
-
Word VBAでWindows media playe...
-
ユーザーフォームを「Esc」キー...
-
Pictures.Insertメソッド⇒Shape...
-
エクセルシートをまとめて印刷...
-
Excelのマクロで最下行を選択し...
-
エクセルで「ODBC Microsoft Ac...
-
EXCEL マクロ クリップボードク...
-
エクセルファイルを自身のファ...
-
エクセル終了時の保存確認メッ...
-
EXCELで日付を自動でファイル名...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
複数のデータ系列の線の太さを...
-
エクセルでツールバーに「縮小...
-
cellsで特定の離れた範囲を選択...
-
ファイル名を今日の日付、時刻...
-
Powerpointでランダムな数字の...
-
VBA[Private Sub]のコードをシ...
-
エクセルシートをまとめて印刷...
-
エクセル2007 テキストボ...
-
別ブックからユーザーフォーム...
-
ピボットグラフの書式の固定に...
-
VBAを使ってエクセルシート...
-
エクセルのマクロでSelection.S...
-
最初の1回のみにボタンクリッ...
-
VBAに詳しい方教えてください。
-
VBAをVBに変換する方法
-
エクセルワークシート上に印刷...
-
Pictures.Insertメソッド⇒Shape...
-
【ExcelVBA】クエリの更新とピ...
-
エクセルVBAで、画像の倍率を知...
-
エクセル vba クリック~離し...
おすすめ情報