いつもお世話になっております。
下記のVBAコードを使わせて頂き、自分で作成したエクセルにセルに合わせて自動で画像データを添付するようにしたいのですが。
(1)タテヨコの縮尺を保持⇒セルに合わせて縦横の変倍を行う
(2)又は、貼付部のセルのサイズは決まっているのでサイズを指定して貼り付ける
となるように修正したいのですが、なにぶんVBAは初心者なもので、全くわかりません。
どなたかご指導を宜しくお願い致します。
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Excel.Range, Cancel As Boolean)
Cancel = True
'===============画像選択
myF = Application.GetOpenFilename _
("jpg bmp tif png gif,*.jpg;*.bmp;*.tif;*.png;*.gif", , "画像の選択", , False)
If myF = False Then
MsgBox "画像を選択してください(終了)"
Exit Sub
End If
'===============画像の掃除
For Each mySP In ActiveSheet.Shapes
myAD1 = mySP.TopLeftCell.MergeArea.Address
myAD2 = Target.Address
If myAD1 = myAD2 Then mySP.Delete
Next
'===============画像の貼り付け
Set mySP = ActiveSheet.Pictures.Insert(myF)
'===============タテヨコの縮尺を保持
myHH = Target.Height / mySP.Height
myWW = Target.Width / mySP.Width
If myHH > myWW Then
mySP.Height = mySP.Height * myWW
mySP.Width = Target.Width
Else
mySP.Height = Target.Height
mySP.Width = mySP.Width * myHH
End If
'===============中央へ調整
myHH2 = (Target.Height / 2) - (mySP.Height / 2)
myWW2 = (Target.Width / 2) - (mySP.Width / 2)
mySP.Top = Target.Top + myHH2
mySP.Left = Target.Left + myWW2
Set mySP = Nothing
End Sub
No.1
- 回答日時:
No.2ベストアンサー
- 回答日時:
画像の縦・横はそれぞれ
mySP.Height、mySP.Width
セルの縦・横はそれぞれ
Target.Height、Target.Width
なのでそのまま設定すれば
セルの大きさと同じ画像となります。
mySP.Height = Target.Height
mySP.Width = Target.Width
同様に位置は
mySP.Top = Target.Top
mySP.Left = Target.Left
これでどうでしょう。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- Excel(エクセル) Excel2019 マクロを使用し画像を貼り付けした際のリンク切れについて 2 2022/11/15 16:14
- Visual Basic(VBA) 【VBA】写真の縦横比を変えずに貼り付ける 5 2023/06/13 11:42
- PowerPoint(パワーポイント) ExcelのVBAコードについて教えてください。 3 2022/05/25 14:32
- Excel(エクセル) エクセル VBA For Next 繰り返しの書き方を教えてください 6 2022/09/01 14:11
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 2 2022/05/26 17:19
- Visual Basic(VBA) 【追加】ファイルを閉じてダイアログで保存した時だけ処理の実行をする 3 2022/03/23 15:43
- Excel(エクセル) エクセルで同じ数字同士を自動で線で結ぶVBAを教えてください 6 2022/04/26 23:13
- Visual Basic(VBA) Excel vbaについての質問 3 2023/04/18 16:14
- Visual Basic(VBA) 【Excel VBA】自動メール送信の機能追加 5 2022/09/29 12:53
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセル 足して割る
-
貼り付けで複数セルに貼り付けたい
-
エクセルのセルの枠を超えて文...
-
【Excel】 セルの色での判断は...
-
対象セル内(複数)が埋まった...
-
セルをクリック⇒そのセルに入力...
-
excelのCOUNTIF関数で、『範囲=...
-
EXCEL 結合されたセルを関数で...
-
エクセルで指定したセルのどれ...
-
エクセルにリンクされるのをし...
-
【マクロ】ボタンを押すごとに...
-
【エクセル】IF関数 Aまたは...
-
エクセルの数式で教えてください。
-
エクセルで空白セル”” と未入...
-
excelのにおいてtabキーで右セ...
-
html テーブルのセルにリンクを...
-
枠に収まらない文字を非表示に...
-
【Excel】特定の文字から文字ま...
-
EXCELで一番安い金額と名前を抜...
-
Excelでのコメント表示位置
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで指定したセルのどれ...
-
【エクセル】IF関数 Aまたは...
-
対象セル内(複数)が埋まった...
-
エクセル 足して割る
-
Excelで数式内の文字色を一部だ...
-
貼り付けで複数セルに貼り付けたい
-
Excelでのコメント表示位置
-
セルをクリック⇒そのセルに入力...
-
EXCEL VBA セルに既に入...
-
excelのCOUNTIF関数で、『範囲=...
-
【Excel】 セルの色での判断は...
-
エクセル オートフィルタで絞...
-
エクセルのセルの枠を超えて文...
-
(Excel)数字記入セルの数値の後...
-
Excelで、「特定のセル」に入力...
-
エクセルの一つのセルに複数の...
-
複数のセルのいずれかに数字が...
-
excelの特定のセルの隣のセル指...
-
数式を残したまま、別のセルに...
-
ハイパーリンクの参照セルのズ...
おすすめ情報