2012年12月15日
VBA・・・ダブルクリックで使い分け
エクセルでセルをダブルクリックするとシートが変わったり、日付が編集されたり
チェックマークがついたりと手早く処理ができたらいいなぁと思った事ありませんか。
今日は下図の様なシートで日付のセルをダブルクリックすると今日の日付を編集し、
名前のセルをダブルクリックすると印刷シートに移動する使い分けの方法を考えて
みたいと思います。
支払日のセルをダブルクリックすると今日の日付を編集する。
シート名:請求一覧

名前のセルをダブルクリックすると印刷画面へ移動する。
シート名:印刷画面

シート上でダブルクリックをすると自動的に動く命令があります。
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
End Sub
この命令を、VBAの対応するシートに記述します。

今回の場合は、
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
行 = Target.Row
列 = Target.Column
If 列 = 3 Then
Sheets("請求一覧").Range("c" & 行) = Date
Cancel = True
ElseIf 列 = 4 Then
Sheets("印刷画面").Range("c5") = Sheets("請求一覧").Range("d" & 行)
Sheets("印刷画面").Range("c31") = Sheets("請求一覧").Range("e" & 行)
Sheets("印刷画面").Range("c32") = Sheets("請求一覧").Range("f" & 行)
Sheets("印刷画面").Select
End If
End Sub
なプログラムで目的の動きはするはずです。
行 = Target.Row
列 = Target.Column
は、ダブルクリックされたセルの位置が取得できます。
支払日をダブルクリックするとC列ですので、3番目という事になります。
"列"という変数には3の数字が入ってきます。
なので、プログラムでは、
If 列 = 3 Then
Sheets("請求一覧").Range("c" & 行) = Date
・
・
・
という条件分岐となります。
名前のセルでも同様、D列ですので4番目という事になります。
ElseIf 列 = 4 Then
Sheets("印刷画面").Range("c5") = Sheets("請求一覧").Range("d" & 行)
・
・
・
という、条件文になると思います。
それ以外は、セルがアクティブになります。
ダブルクリックで使い分け。使い勝手のいい命令です。
チェックマークがついたりと手早く処理ができたらいいなぁと思った事ありませんか。
今日は下図の様なシートで日付のセルをダブルクリックすると今日の日付を編集し、
名前のセルをダブルクリックすると印刷シートに移動する使い分けの方法を考えて
みたいと思います。
支払日のセルをダブルクリックすると今日の日付を編集する。
シート名:請求一覧

名前のセルをダブルクリックすると印刷画面へ移動する。
シート名:印刷画面

シート上でダブルクリックをすると自動的に動く命令があります。
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
End Sub
この命令を、VBAの対応するシートに記述します。

今回の場合は、
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
行 = Target.Row
列 = Target.Column
If 列 = 3 Then
Sheets("請求一覧").Range("c" & 行) = Date
Cancel = True
ElseIf 列 = 4 Then
Sheets("印刷画面").Range("c5") = Sheets("請求一覧").Range("d" & 行)
Sheets("印刷画面").Range("c31") = Sheets("請求一覧").Range("e" & 行)
Sheets("印刷画面").Range("c32") = Sheets("請求一覧").Range("f" & 行)
Sheets("印刷画面").Select
End If
End Sub
なプログラムで目的の動きはするはずです。
行 = Target.Row
列 = Target.Column
は、ダブルクリックされたセルの位置が取得できます。
支払日をダブルクリックするとC列ですので、3番目という事になります。
"列"という変数には3の数字が入ってきます。
なので、プログラムでは、
If 列 = 3 Then
Sheets("請求一覧").Range("c" & 行) = Date
・
・
・
という条件分岐となります。
名前のセルでも同様、D列ですので4番目という事になります。
ElseIf 列 = 4 Then
Sheets("印刷画面").Range("c5") = Sheets("請求一覧").Range("d" & 行)
・
・
・
という、条件文になると思います。
それ以外は、セルがアクティブになります。
ダブルクリックで使い分け。使い勝手のいい命令です。
Posted by ミール at 13:15│Comments(0)
│VBA