• ベストアンサー

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

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

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

  • ベストアンサー
  • eden3616
  • ベストアンサー率65% (267/405)
回答No.3

>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

nebikitorikai
質問者

お礼

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

その他の回答 (3)

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.4

変更前: >指定のセルに数字で記入する事にします >別シートのA列に日付を記入する事にします 補足のご説明内容: >WorkBooks("無記入者").Sheets("カード").Range("H1")に 2 の番号が入っています >WorkBooks("顧客管理").Sheets("住所録")Range("C2")に今日の日付が入る その通りに当てはめると: workbooks("顧客管理.拡張子不明").worksheets("住所録").cells(workbooks("無記入者.拡張子不明").worksheets("カード").range("H1"), "C") = date #まだ説明不足 1)ブック名はかならず「ブック名.拡張子」となります。「"無記入者.xlsm"」などのように,あなたのお手元のエクセルの事実をしっかり確認して,適切に修正してください。 2)「無記入者のUserForm登録コマンドボタン」と,突然出てきました。上述マクロは最大安全に書いてありますので,良く見て適切に応用して下さい。

nebikitorikai
質問者

お礼

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

  • eden3616
  • ベストアンサー率65% (267/405)
回答No.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

nebikitorikai
質問者

お礼

有難うございました

nebikitorikai
質問者

補足

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

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.1

>指定されたセルに入力された番号 指定のセルに数字で記入する事にします 別シートのA列に日付を記入する事にします sub macro1() worksheets("別シート").cells(worksheets("指定のシート").range("指定のセル番地"), "A") = date end sub シート名とかセル番地とかどこ列に記入したいとか、そもそも「指定のセルに何を記入したいのか」とか、具体的な内容が何一つご相談に書かれてませんね。

nebikitorikai
質問者

お礼

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

nebikitorikai
質問者

補足

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

関連するQ&A