こんにちは。
excel初心者、VBA初心者です。
セルをダブルクリックで、画像を選択し貼りつけるのに、
下記のコードを使っています。
これはネットで見つけてコピペしたものです。
今回困っている事は、このコードが全のセルに対応してしまうことです。
B列のみに対応させて使いたいのですが、コードの変更の仕方が分かりません。
教えていただきたいです。宜しくお願いします。
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ベストアンサー
- 回答日時:
こんにちは
>B列のみに対応させて使いたいのですが
Targetにダブルクリックされたセルが渡されますので、その列をチェックしてB列以外は何もしないようにすれば良いでしょう。
具体的には、Cancel = True の次に
' B列以外の場合は終了
If Target.Column <> 2 Then Exit Sub
などを入れておけばよろしいかと。
ご回答ありがとうございます!
さっそく試させていただきました。
他のセルに文字を入力する時に、何度も画像貼りつけのページが出てしまい
とても手間だったので助かりました。
ベストアンサーにさせていただきます。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- Excel(エクセル) Excel2019 マクロを使用し画像を貼り付けした際のリンク切れについて 2 2022/11/15 16:14
- Excel(エクセル) エクセル VBA For Next 繰り返しの書き方を教えてください 6 2022/09/01 14:11
- PowerPoint(パワーポイント) ExcelのVBAコードについて教えてください。 3 2022/05/25 14:32
- Visual Basic(VBA) 【VBA】写真の縦横比を変えずに貼り付ける 5 2023/06/13 11:42
- Visual Basic(VBA) 【追加】ファイルを閉じてダイアログで保存した時だけ処理の実行をする 3 2022/03/23 15:43
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 2 2022/05/26 17:19
- Visual Basic(VBA) Excel vbaについての質問 3 2023/04/18 16:14
- Excel(エクセル) エクセルで同じ数字同士を自動で線で結ぶVBAを教えてください 6 2022/04/26 23:13
- Visual Basic(VBA) 【Excel VBA】自動メール送信の機能追加 5 2022/09/29 12:53
このQ&Aを見た人はこんなQ&Aも見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
【EXCEL VBA】ダブルクリックでセルのサイズに合わせて画像を挿入に機能を追加したいです。
Visual Basic(VBA)
-
エクセルで簡単に写真を挿入したい
Excel(エクセル)
-
Excel 画像貼り付けのVBAについて
Excel(エクセル)
-
-
4
ダブルクリックで貼り付けた画像からリンクのみ削除し、画像を残したい
Visual Basic(VBA)
-
5
Excel2019 マクロを使用し画像を貼り付けした際のリンク切れについて
Excel(エクセル)
-
6
エクセルマクロでダブルクリックして画像貼り付けでサイズ設定したいです。
Excel(エクセル)
-
7
VBAエクセルに貼り付けた画像をセルにあった大きさにしたい(等倍)
Excel(エクセル)
-
8
【VBA】写真の貼り付けコードがうまく機能しません。
Visual Basic(VBA)
-
9
複数の画像ファイルを挿入したい
Excel(エクセル)
-
10
EXCEL あるセルに数字が入力されれば既存マクロ実行させたい
Excel(エクセル)
-
11
リストと一致する値のセルを塗りつぶしたい。
その他(Microsoft Office)
-
12
マクロで画像挿入→エラー「リンクされたイメージを表
Excel(エクセル)
-
13
Excelのセル内に写真を手軽に挿入したい
Excel(エクセル)
-
14
エクセルのVBAを使用し、工事写真台帳を作成しています。
Excel(エクセル)
-
15
エクセル ダブルクリック入力の範囲が複数の場合
Excel(エクセル)
-
16
エクセルVBAで縦向きの画像の挿入・回転
Excel(エクセル)
-
17
エクセルで同じ大きさ、同じ倍率、同じ余白なのにプレビューが違います。なぜ?
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelの入力規則で2列表示したい
-
複数の文字列のいずれかが含ま...
-
Excel上でのデータ数字が連番で...
-
別のセルに値が入力されたら、...
-
HYPERLINKとADDRESSとMATCHの組...
-
数式が入ったセルを含めて、数...
-
列の数字に100をかけたい
-
入退社日より各月末の在籍者数...
-
【EXCEL】指定したセルの値を他...
-
エクセル:横長の表を改行して...
-
SUMに含まれる範囲から特定のセ...
-
エクセルで住所の番地順に並べ...
-
「Exel」で、指定した列が...
-
アルファベットを含む数をエク...
-
スペースとスペースの間の文字...
-
エクセルで、毎日の走行距離(...
-
エクセルで2行まとめて並び替...
-
エクセル セル内の文字数を超え...
-
エクセルのsumifでかけ算してか...
-
エクセルで公平にチーム分けす...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
複数の文字列のいずれかが含ま...
-
Excelの入力規則で2列表示したい
-
SUMに含まれる範囲から特定のセ...
-
数式が入ったセルを含めて、数...
-
Excel上でのデータ数字が連番で...
-
列の数字に100をかけたい
-
スペースとスペースの間の文字...
-
別のセルに値が入力されたら、...
-
エクセルで表示されている数字...
-
エクセルでセルの値分の個数の...
-
エクセル:横長の表を改行して...
-
[関数について]わかる方教えて...
-
エクセル関数に詳しい方教えて...
-
エクセルで、毎日の走行距離(...
-
エクセルのsumifでかけ算してか...
-
HYPERLINKとADDRESSとMATCHの組...
-
エクセルで曜日に応じた文字を...
-
入退社日より各月末の在籍者数...
-
エクセルで1列全部10倍したい
-
エクセルで小数を含む数値の抽出
おすすめ情報