ワードマクロについて
ワードマクロについて
MS WORD 2003ファイル中の「図の書式
設定」の「高さ」および「幅」を、インプットボックス
で入力した数値(%)で拡大・縮小するために、
下記マクロを作成しました。
下記マクロは、ケミドローで作成した化学式を
WORD文書にコピー・ペーストした図に対して
は正常に機能します。
しかし、特許・実用新案公報DB
(http://www.ipdl.inpit.go.jp/Tokujitu/tjsogodb.ipdl?N0000=101)
で検索した特許文献を、WORD文書にコピー・ペースト
した場合、その図に対してマクロを実行すると、「高さ」
および「幅」が入力値とは異なるというバグがあります。
例えば、上記サイトで検索した「特開2010-1」を
WORDファイルにコピー・ペーストした後、【図1】
に対して、このマクロで「30」(%)を入力すると、
「高さ」および「幅」に、それぞれ「10%」および
「22%」が入力されます。
このバグの原因および解決策をご教示下さい
ますようお願いします。
Sub Size_Each_Image()
' 選択イメージのサイズ変更。
'
' 現在のIMEの状態を格納する場所を宣言
Dim sinIME As Single
' インプットボックスで入力された%の格納場所を宣言
Dim varX As Variant
'
' 選択箇所が行内図でない場合、終了。
If Selection.Type <> wdSelectionInlineShape Then End
'
' 現在のIMEの状態を格納し、日本語入力をOFFにする
With ActiveWindow
sinIME = .IMEMode
.IMEMode = wdIMEModeOff
End With
'
' インプットボックスでサイズ入力。
varX = InputBox("選択イメージのサイズ(%)は?", "選択イメージのサイズ")
' キャンセルされた場合、日本語入力を元に戻して終了。
If varX = "" Then
ActiveWindow.IMEMode = sinIME
End
End If
'
' サイズ入力
With Selection.InlineShapes(1)
.ScaleHeight = varX
.ScaleWidth = varX
End With
'
' IMEを元に戻す
ActiveWindow.IMEMode = sinIME
'
End Sub