エクセル写真貼り付けマクロ!セルぴったり中央配置コード
エクセル写真貼り付けマクロ!セルぴったり中央配置コードに関する深掘り記事を分かりやすく解説します。最新情報を求める方は必見です。
Q1:挿入した写真のアスペクト比(縦横比)が崩れて縦長・横長になってしまいます。原因は何ですか?
A1:コード内で pic.Width = targetCell.Width と pic.Height = targetCell.Height の両方を無条件に代入していることが原因です。元画像の縦横比を計算し、Application.Min を用いて幅または高さの小さい方の縮小倍率に合わせる処理(上記コード参照)を実装してください。
Q2:結合セルに写真を貼り付けると、左上の1セル分のサイズに縮小されてしまいます。
A2:Selection.Width ではなく Selection.MergeArea.Width を取得してください。MergeArea プロパティを使用することで、結合された全体のセル幅および高さを正確に参照できます。
Q3:エクセルの行の高さや列幅を変更したときに、写真がズレたり飛び出したりしないようにできますか?
A3:挿入した画像オブジェクト(Shape)の .Placement プロパティに xlMoveAndSize(セルに合わせて移動やサイズ変更をする)を設定してください。手動で行う場合は、図の書式設定から「プロパティ」>「セルに合わせて移動やサイズ変更をする」にチェックを入れます。
Q4:マクロを使わずに、標準機能だけで写真をセル枠ぴったりに収める方法はありますか?
A4:キーボードの Alt キーを押しながら画像の四隅ハンドルをマウスでドラッグすると、セルの枠線(グリッド)に吸着するようにスナップリサイズが可能です。ただし1枚ずつ手動で行う必要があるため、枚数が多い場合はマクロの導入が圧倒的に効率的です。