アプリ版:「スタンプのみでお礼する」機能のリリースについて

こんにちは。
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

A 回答 (1件)

こんにちは



>B列のみに対応させて使いたいのですが
Targetにダブルクリックされたセルが渡されますので、その列をチェックしてB列以外は何もしないようにすれば良いでしょう。

具体的には、Cancel = True の次に

 ' B列以外の場合は終了
 If Target.Column <> 2 Then Exit Sub

などを入れておけばよろしいかと。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます!
さっそく試させていただきました。
他のセルに文字を入力する時に、何度も画像貼りつけのページが出てしまい
とても手間だったので助かりました。
ベストアンサーにさせていただきます。
ありがとうございました。

お礼日時:2017/03/03 11:38

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A