
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で質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
ワードの図形をコピー&ペイストのマクロ
Word(ワード)
-
ワードマクロで画像を選択する方法
Word(ワード)
-
ワードに貼り付けた画像サイズの変更
Word(ワード)
-
-
4
VBA Shapes コピーと名前
Excel(エクセル)
-
5
Wordのマクロでクリップボードの内容を取得する方法
Visual Basic(VBA)
-
6
エクセルマクロでワードの一ページ目をコピーして新たに二ページを追加して、一ページ目の内容を貼り付ける
Visual Basic(VBA)
-
7
WordVBAで規定のところに文字列を挿入したい
Access(アクセス)
-
8
Word VBA。各マクロの間に待ち時間を指定するには?
Word(ワード)
-
9
VBAで既に開いている別アプリケーションのオブジェクトを得る
Visual Basic(VBA)
-
10
【ワード】マクロで画像を選択する
Word(ワード)
-
11
【Word2007】Shapeの中のInlineShapeの情報を取得したい
Word(ワード)
-
12
エクセルマクロでシート内にある画像のみを選択する
Excel(エクセル)
-
13
エクセルVBAで形式を選択して貼付した画像を変数に
Excel(エクセル)
-
14
オブジェクト型の変数にフォームを入れたい
Visual Basic(VBA)
-
15
ExcelVBAで既に開いてるwordを閉じる
Excel(エクセル)
-
16
【VBA】エクセルの指定セルの値を、Wordの指定場所に貼る方法
Excel(エクセル)
-
17
エクセルマクロでボタン一つでWordにテキスト貼りつけしたいです
Excel(エクセル)
-
18
wordでの指定オブジェクトの削除
Word(ワード)
-
19
【VBA】Excelの特定範囲のセルを画像で保存したい
Visual Basic(VBA)
-
20
【マクロ】PasteSpecialメソッドにて、コードが動かない理由が分かりません
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
複数のデータ系列の線の太さを...
-
エクセルでツールバーに「縮小...
-
ファイル名を今日の日付、時刻...
-
Powerpointでランダムな数字の...
-
Pictures.Insertメソッド⇒Shape...
-
VBA[Private Sub]のコードをシ...
-
【ExcelVBA】クエリの更新とピ...
-
エクセルVBAで、画像の倍率を知...
-
別ブックからユーザーフォーム...
-
VBAで実行時エラー '1004'の解...
-
アクセス マクロでキー送信:%...
-
EXCEL マクロ実行後にボタン(...
-
ピボットグラフの書式の固定に...
-
Wordのマクロから書式(O)⇒箇条...
-
VisualStudioのアウトライン機...
-
ワードのVBAについて
-
エクセル2007 テキストボ...
-
VBAをVBに変換する方法
-
cellsで特定の離れた範囲を選択...
-
EXCELにクリップボードにある画...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
複数のデータ系列の線の太さを...
-
エクセルでツールバーに「縮小...
-
ファイル名を今日の日付、時刻...
-
VBA[Private Sub]のコードをシ...
-
Powerpointでランダムな数字の...
-
最初の1回のみにボタンクリッ...
-
cellsで特定の離れた範囲を選択...
-
どのドキュメントは暗号化され...
-
エクセルのマクロでSelection.S...
-
エクセルのマクロのパスワード保護
-
ピボットグラフの書式の固定に...
-
VBAを使ってエクセルシート...
-
別ブックからユーザーフォーム...
-
エクセルVBAで、画像の倍率を知...
-
【ExcelVBA】クエリの更新とピ...
-
Pictures.Insertメソッド⇒Shape...
-
エクセル2007 テキストボ...
-
Visual Basicでのグラフ作成
-
エクセルで「ODBC Microsoft Ac...
-
エクセルシートをまとめて印刷...
おすすめ情報