こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

エクセルVBAでDateを指定したセルに書き込み

VBA 指定されたセルに入力された番号を参照して別シートのそのセル番号に今日の日付を入れる書き方をどなたか教えてください

投稿日時 - 2014-07-25 07:14:06

QNo.8691534

困ってます

質問者が選んだベストアンサー

>WorkBooks("無記入者").Sheets("カード").Range("H1")に 2 の番号
>この無記入者のUserForm登録コマンドボタンをクリックすると
>WorkBooks("顧客管理").Sheets("住所録")Range("C2")に今日の日付が入る


UserFormのCommandButton1_Clickイベントに以下のコードを記述してください。
(コマンドボタンのオブジェクト名を「CommandButton1」として説明しています)

対象のブックを指定する際に拡張子(コード内の.xlsx部分)まで記述する必要があるため
以下のコードのブック名を適切に修正願います。


■VBAコード

Private Sub CommandButton1_Click()
Dim myRow As Long
myRow = ThisWorkbook.Sheets("カード").Range("H1").Value
Workbooks("顧客管理.xlsx").Sheets("住所録").Range("C" & myRow).Value = Date
End Sub

投稿日時 - 2014-07-25 15:04:30

お礼

わかりやすく書いていただいて有難うございました。感謝です

投稿日時 - 2014-07-25 19:21:17

このQ&Aは役に立ちましたか?

23人が「このQ&Aが役に立った」と投票しています

回答(4)

ANo.4

変更前:
>指定のセルに数字で記入する事にします
>別シートのA列に日付を記入する事にします

補足のご説明内容:
>WorkBooks("無記入者").Sheets("カード").Range("H1")に 2 の番号が入っています
>WorkBooks("顧客管理").Sheets("住所録")Range("C2")に今日の日付が入る


その通りに当てはめると:
workbooks("顧客管理.拡張子不明").worksheets("住所録").cells(workbooks("無記入者.拡張子不明").worksheets("カード").range("H1"), "C") = date




#まだ説明不足
1)ブック名はかならず「ブック名.拡張子」となります。「"無記入者.xlsm"」などのように,あなたのお手元のエクセルの事実をしっかり確認して,適切に修正してください。
2)「無記入者のUserForm登録コマンドボタン」と,突然出てきました。上述マクロは最大安全に書いてありますので,良く見て適切に応用して下さい。

投稿日時 - 2014-07-25 16:56:32

お礼

ありがとうございました感謝しています。

投稿日時 - 2014-07-25 19:19:32

ANo.2

・アドレスの指定方法3パターン
・日付の表示方法2パターン
の組合せで日付を表示するサンプルになります。

Sheet1の指定セルA2:B4に入力した(3)パターンの方法で対象のセルを指定し、
指定した先(Sheet2)のセルへ日付を表示しています。

実行後のイミディエイトウィンドウには以下が表示され、結果は添付画像のようになります。
---------------------------
(1)参照1に「A1」を指定した場合
$A$1

(2)参照1に行番号「2」、参照2に列番号「1」を指定した場合
$A$2

(3)参照1に列記号「A」、参照2に行番号「3」を指定した場合
$A$3
---------------------------


■サンプルVBAコード

Sub test()

Dim 参照1 As Variant
Dim 参照2 As Variant
Dim tar As Range

'パターン(1)
Debug.Print vbCrLf & "(1)参照1に「A1」を指定した場合"
参照1 = Sheets("Sheet1").Range("A2")
参照2 = Sheets("Sheet1").Range("B2")
Debug.Print Sheets("Sheet2").Range(参照1).Address
Set tar = Sheets("Sheet2").Range(参照1)
GoSub 日付

'パターン(2)
Debug.Print vbCrLf & "(2)参照1に行番号「2」、参照2に列番号「1」を指定した場合"
参照1 = Sheets("Sheet1").Range("A3")
参照2 = Sheets("Sheet1").Range("B3")
Debug.Print Sheets("Sheet2").Cells(参照1, 参照2).Address
Set tar = Sheets("Sheet2").Cells(参照1, 参照2)
GoSub 日付

'パターン(3)
Debug.Print vbCrLf & "(3)参照1に列記号「A」、参照2に行番号「3」を指定した場合"
参照1 = Sheets("Sheet1").Range("A4")
参照2 = Sheets("Sheet1").Range("B4")
Debug.Print Sheets("Sheet2").Range(参照1 & 参照2).Address
Set tar = Sheets("Sheet2").Range(参照1 & 参照2)
GoSub 日付

Exit Sub


日付:
'VBAで日付を取得し入力
tar.Value = Date
'数式「=TODAY()」を入力(出力先を右隣のセルにオフセットしています)
tar.Offset(0, 1).Formula = "=TODAY()"
Return
End Sub

投稿日時 - 2014-07-25 10:02:31

補足

初心者なのでよく理解できません。すみません
もう一度書き直します。
WorkBooks("無記入者").Sheets("カード").Range("H1")に 2 の番号が入っています、
この無記入者のUserForm登録コマンドボタンをクリックすると
WorkBooks("顧客管理").Sheets("住所録")Range("C2")に今日の日付が入るようにしたいのです。
宜しくお願いします

投稿日時 - 2014-07-25 13:59:36

お礼

有難うございました

投稿日時 - 2017-10-11 13:57:35

ANo.1

>指定されたセルに入力された番号

指定のセルに数字で記入する事にします
別シートのA列に日付を記入する事にします

sub macro1()
worksheets("別シート").cells(worksheets("指定のシート").range("指定のセル番地"), "A") = date
end sub




シート名とかセル番地とかどこ列に記入したいとか、そもそも「指定のセルに何を記入したいのか」とか、具体的な内容が何一つご相談に書かれてませんね。

投稿日時 - 2014-07-25 09:13:13

補足

すみません
もう一度書き直します。
WorkBooks("無記入者").Sheets("カード").Range("H1")に 2 の番号が入っています、
この無記入者のUserForm登録コマンドボタンをクリックすると
WorkBooks("顧客管理").Sheets("住所録")Range("C2")に今日の日付が入るようにしたいのです。
宜しくお願いします

投稿日時 - 2014-07-25 14:05:52

お礼

keithin様私の理解不足のため一番に回答していただいたのにアンサーにせず申し訳ありませんでした。大切に保存してこれからのVBAに役立たせるようにします、有難うございました。

投稿日時 - 2014-07-26 07:05:38

あなたにオススメの質問