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

Excell VBA にて、
ユーザーフォーム(userForm1)に、スプレッドシートを
1)その他のコントロール
2)Microsoft Spreadsheetを追加
によって追加して、
そのspreadSheet1上のsheet1の任意のセル(D:*)をクリックしたとき、その行のD1:D5k一連の値を変数に代入したいのですが、
まず手始めとして、そのセルを選択したときにイベントを発生させたい。
 該当のセルを選択してプロシージャを追加すると
Private Sub Spreadsheet1_BeforeContextMenu( _
ByVal x As Long, _
ByVal y As Long, _
ByVal Menu As OWC11.ByRef, _
ByVal Cancel As OWC11.ByRef _
)
となります。

比較のため
Private Sub Spreadsheet1_SelectionChange(ByVal Target As Range)
  If Target.Address() = "$A$1" Then
    MsgBox "このセルはA1です。"
  End If
End Sub

だと、

Error・・・「コンパイル エラー:
プロシージャの宣言が、イベントまたはプロシージャの定義と一致していません。」

・・・どうすればよいのでしょう。
最終的には、「その行のいくつかの値を変数に代入したい」のですが

A 回答 (2件)

こんにちは。



Private Sub Spreadsheet1_SelectionChanging(ByVal Range As OWC11.Range)
 With Spreadsheet1
 'クリックしたセルの1行目の値
  MsgBox .Cells(1, Range.Column).Value
 End With
End Sub
    • good
    • 0

以下のようにしてみてはどうでしょうか?



Private Sub Spreadsheet1_SelectionChanging(ByVal Range As OWC11.Range)
If Range.Address = "$A$1" Then
MsgBox "このセルはA1です。"
End If
End Sub

この回答への補足

うまく行きました。

Private Sub Spreadsheet1_SelectionChanging(ByVal Range As OWC11.Range)
MsgBox Cells(Range.Column, Range.Row).Value & "だけど"
MsgBox "このセルは" & Range.Address(False, False) & "です"
MsgBox "このセルは" & Range.Address(True, True) & "です"
MsgBox "行番号は" & Range.Row & "です。"
MsgBox "列は" & Range.Column & "です"
End Sub

しかし、では R1Cの値[R1C1]・・同じ行の最初のセルの値を取得しようとしても、うまく行きません。
 どうしたらよいのでしょう。


End Sub

補足日時:2009/10/21 23:55
    • good
    • 0

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