• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルのマクロについて)

エクセルのマクロでワードの文字を挿入する方法とセルのサイズに合わせる方法

このQ&Aのポイント
  • エクセルのマクロを使ってワードの文字を挿入する方法について解説します。また、選択されているセルのサイズに合わせる方法も説明します。
  • エクセルのマクロを使ってワードの文字を挿入する方法と、選択されているセルのサイズに合わせる方法について詳しく解説します。
  • マクロ初心者のためのエクセルでワードの文字を挿入する方法と、選択されているセルのサイズに合わせる方法について説明します。

質問者が選んだベストアンサー

  • ベストアンサー
  • ASIMOV
  • ベストアンサー率41% (982/2351)
回答No.3

>Selection.ShapeRange.ScaleHeight h, msoFalse, msoScaleFromTopLeft この場合の h はShapeの高さではなく もとの高さと貼り付ける高さの比率を入れる様です ですので 1.貼り付けたShapeの高さを取得する 2.貼り付けるセルの高さを取得する 3.高さの比率を計算して、H に入れ Selection.ShapeRange.ScaleHeight H, msoFalse, msoScaleFromTopLeft 等を実行する、という手順になると思います (幅についても同様)

miyasiro
質問者

お礼

ありがとうございました。 ちょと時間もなかった為、強引ですが下記のようにしてなんとか思い通りの操作になりました。 Sub () w = Selection.Width / 6.45 h = Selection.Height / 1.03 ActiveSheet.PasteSpecial Format:="Microsoft Office Word 文書 オブジェクト", Link:=False, DisplayAsIcon:=False Selection.ShapeRange.ScaleHeight  h /18,msoFalse,msoScaleFromTopLeft Selection.ShapeRange.ScaleWidth w / 9.95, msoFalse,msoScaleFromTopLeft

その他の回答 (2)

  • ASIMOV
  • ベストアンサー率41% (982/2351)
回答No.2

たぶん.. >H = Selection.Height >w = Selection.Width は H = Selection.ColumnHeight w = Selection.ColumnWidth 原因判りませんが、Columnを付けないとWが6.4倍くらいの値になります Hの方は付けても付けなくても同じ値になるのに? さらに >Selection.ShapeRange.ScaleHeight w, msoFalse, msoScaleFromTopLeft は、 Selection.ShapeRange.ScaleHeight H, msoFalse, msoScaleFromTopLeft じゃないですか? >Selection.ShapeRange.ScaleWidth H, msoFalse, msoScaleFromTopLeft も、同様に Selection.ShapeRange.ScaleWidth w, msoFalse, msoScaleFromTopLeft じゃないでしょうか?

miyasiro
質問者

お礼

たびたびありがとうございます。 色々試行錯誤してみて下記のコードにしてみましたがエラーは出ないもののサイズが (オブジェクトの高さ×セルの高さ=変更後のオブジェクトの高さ) のように設定されているようです。 Sub 形式選択貼付() w = Selection.ColumnWidth h = Selection.RowHeight ActiveSheet.PasteSpecial Format:="Microsoft Office Word 文書 オブジェクト", Link:=False, DisplayAsIcon:=False Selection.ShapeRange.ScaleHeight h, msoFalse, msoScaleFromTopLeft Selection.ShapeRange.ScaleWidth w, msoFalse, msoScaleFromTopLeft End Sub WとHは試しに入れ替えてみた時のなごりで元に戻し忘れてました。

  • ASIMOV
  • ベストアンサー率41% (982/2351)
回答No.1

Sub TEST()   w = Selection.ColumnWidth   h = Selection.RowHeight   MsgBox "W=" & w & " H=" & h End Sub で、どうでしょう

miyasiro
質問者

お礼

ありがとうございます。 何をしたいかが伝えきれてませんでした。 前述のマクロはエクセルで縦横変倍可能な文字を使用したい為に考えたもので、 1、wordの起動 2、wordのマクロを使用して文字をコピー後終了 3、エクセルに形式を選択して貼付(ここまでは成功) 4、貼り付けたworddocumentのサイズをセルに合わせる(前述のマクロはセルにサイズを合わせる動作をマクロで記録したもの) という工程で作りましたが最後のところを数値ではなく選択しているセルのサイズに合わせたいのです。 教えてもらったコードを参考にいろいろ試してみましたがやはりうまくいきません 3と4を合体させて下記のように直してみましたがサイズ変更は成功するものの選択したセルのサイズとはかけ離れた巨大なものが出来てしまします。 Sub 形式選択貼付() H = Selection.Height w = Selection.Width ActiveSheet.PasteSpecial Format:="Microsoft Office Word 文書 オブジェクト", Link:=False, DisplayAsIcon:=False Selection.ShapeRange.ScaleHeight w, msoFalse, msoScaleFromTopLeft Selection.ShapeRange.ScaleWidth H, msoFalse, msoScaleFromTopLeft End Sub 解決方法はありませんでしょうか?

関連するQ&A