こんにちは。
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
エクセルマクロでダブルクリックして画像貼り付けでサイズ設定したいです。
Excel(エクセル)
-
6
Excel2019 マクロを使用し画像を貼り付けした際のリンク切れについて
Excel(エクセル)
-
7
【VBA】写真の縦横比を変えずに貼り付ける
Visual Basic(VBA)
-
8
エクセルの2ページ目の作り方
Excel(エクセル)
-
9
マクロで画像挿入→エラー「リンクされたイメージを表
Excel(エクセル)
-
10
リストと一致する値のセルを塗りつぶしたい。
その他(Microsoft Office)
-
11
VBAエクセルに貼り付けた画像をセルにあった大きさにしたい(等倍)
Excel(エクセル)
-
12
Excelのセル内に写真を手軽に挿入したい
Excel(エクセル)
-
13
エクセルVBAで縦向きの画像の挿入・回転
Excel(エクセル)
-
14
【VBA】写真の貼り付けコードがうまく機能しません。
Visual Basic(VBA)
-
15
エクセル ダブルクリック入力の範囲が複数の場合
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
複数の文字列のいずれかが含ま...
-
Excelの入力規則で2列表示したい
-
エクセルでセルの値分の個数の...
-
B列に、A列の数字が偶数の場合...
-
エクセルで正解率を出す関数は?
-
【Excel】での計算式教え...
-
文字(数字)色別に計算するには?
-
列の数字に100をかけたい
-
エクセルで小数を含む数値の抽出
-
電気代 最後の12か月分の平均
-
SUMに含まれる範囲から特定のセ...
-
SUBTOTAL SUMIF??
-
エクセルで1列全部10倍したい
-
Excelの関数について
-
C列にF列の担当者(A〜)を順番...
-
セルの幅を1行目の文字に合うよ...
-
EXCELのハイホン区切りの数字並...
-
【再質問】時間表示について
-
エクセルで合計欄を結合し、左...
-
○印が付いてる箇所だけの集計を...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
複数の文字列のいずれかが含ま...
-
Excelの入力規則で2列表示したい
-
数式が入ったセルを含めて、数...
-
SUMに含まれる範囲から特定のセ...
-
列の数字に100をかけたい
-
Excel上でのデータ数字が連番で...
-
別のセルに値が入力されたら、...
-
エクセルで表示されている数字...
-
エクセルでセルの値分の個数の...
-
エクセル:横長の表を改行して...
-
スペースとスペースの間の文字...
-
HYPERLINKとADDRESSとMATCHの組...
-
Excelのセル内文字の並び替えに...
-
時間を「昼間」と「夜間」に分...
-
エクセルで曜日に応じた文字を...
-
エクセルで、毎日の走行距離(...
-
入退社日より各月末の在籍者数...
-
エクセルのsumifでかけ算してか...
-
Excelで五十音順に並べ替えたい
-
エクセルで1列全部10倍したい
おすすめ情報