Excel (VBA)

Excel VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 10 Pro : Excel 2013)
アクティブセルに数式の入力について
投稿日時: 22/06/10 17:28:18
投稿者: ひろまさ

ご教示をお願いしたい事があります。
セルをダブルクリックするとアクティブセルから左に-1セル、上に-2セル、
右に3セル移動、上に-5セル移動した計算式を表示させたいのです。
例えば、C8セルでダブルクリックを行うと、そこのセルに対して、
「=B8+C6-F3」の数式を表示
 
ネットで検索をしていろいろと試みましたが、うまくいかないのです。
 
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
   a = ActiveCell.Offset(-1, 0).Value
   b = ActiveCell.Offset(0, -2).Value
   c = ActiveCell.Offset(3, -5).Value
   ActiveCell.Formula = "=a + b + c"
End Sub
 
お手数ですがアドバイスをお願いできないでしょうか。
よろしくお願い致します。

回答
投稿日時: 22/06/10 17:56:04
投稿者: taitani

引用:
「=B8+C6-F3」の数式を表示

ということであれば、、、
 
以下2つが参考になるとおもいます。
 
■セルに数式を入力/取得する(Formula/FormulaR1C1プロパティ)
https://www.moug.net/tech/exvba/0050094.html
 
■セルのアドレスを取得する(Addressプロパティ)
https://www.moug.net/tech/exvba/0050094.html
 

回答
投稿日時: 22/06/10 17:59:02
投稿者: WinArrow
投稿者のウェブサイトに移動

掲示のコードは、
.Value
「値」を代入することになります。
 
ところで
Offset関数の使い方をキチンと理解したほうがよいですよ
Offset(行,列)です。
掲示のコードが行と列が間違っています。
 
ActiveCellとTargetは同じなので
Targetを使いましょう。
 
↓を参考にしてください。
 

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim shiki As String
    With Target
        shiki = .Offset(0, -1).Address(0, 0)
        shiki = shiki & "+" & .Offset(-2, 0).Address(0, 0)
        shiki = shiki & "+" & .Offset(-5, 3).Address(0, 0)
        .Formula = "=" & shiki
    End With
    Cancel = True
End Sub

 

投稿日時: 22/06/10 18:18:23
投稿者: ひろまさ

taitaniさん、 WinArrowさん早々にご回答ありがとうございました。
Offset関数について再度、勉強をやり直します。
また、参考のコードを記述して頂きありがとうございます。
記述して頂いたコードをきちんと理解して、思い通りの結果が
表示できるようにします。