• ベストアンサー

エクセル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/7940)
回答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/7940)
回答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

  • EXCEL 2003 数式中の参照セルについて

    数式であるシート(シート1とします)中の値として、 別シート(シート2とします)のセルを参照するとします。 (例a) シート1中の値 =シート2!J36 ※ J36は例 ここまではよいのですが、 上記の行番号「36」の部分を 更に別の参照値から引っ張ってくることは可能でしょうか? やりたいことのイメージ例として以下に記載します。 (例b) =シート2!J(=A1) ※ここの「A1」はシート2中の参照するセル番号を指定するための シート1中に設けたセルとします。 ※上記の数式は実際にはエラーになり入りません。 最初の例aでは、シート2中の参照するセル番号を数式編集して 指定しないといけないため、参照箇所が多いと大変ですが、 もし、例bのような指定ができればシート2中の参照するセル番号の 入力は一箇所ですみ楽になりありがたいと考えています。 わかりにくい文章ですみません。よろしくお願いします。

  • セルを指定したVBA

    お願いします。 以前、このカテゴリーの質問で、特定のセルをダブルクリックすると”○”が入力されるコードがあり、重宝させてもらっています。 ただ、シート全体で適用となっているため、どのセルをWクリックしても”○”が入力されます。 特定のセルのみ適応されるような範囲指定のVBAはどのように記述したらいいのでしょうか? よろしくお願いします。

  • VBA セルに入力されている数値でセルを指定する

    Excel VBA初心者です。 Sheet1のA1セルに10、A2セルに3を入力しています。 この入力したセルの数値を参照して、 Sheet2の「Cells(10,3)」(C10セル)を青(Interior.ColorIndex = 5)に 書式変更したいのですが、「Cells(”Sheet1.A1の値”,”Sheet1.A2の値”)」の 書き方がわかりません。 Excel2010を使用しています。 よろしくお願いします。

  • エクセルのVBA初心者です。教えてください。

    エクセルVBAの勉強を始めたばかりのものです。無知を自覚しながら質問させていただきます。 宜しくお願い致します。 下のようにエクセルの表があります。 B列の中から例えば5月13日が今日だとして本日の日付のものを探し、見つけたらその隣の列の A列の通番を参照しピックアップしたら、別のシートに作ってある番号ばかりのシート表の中のその通番のセルを塗りつぶすという一連の作業のVBAを作りたいのですがどうしたらいいのでしょうか? 問題の説明不足で意味が通じるかが心配なのですが、本日の日付をB列から見つけてその通番 をピックアップするVBAを教えて頂けたらとおもい、質問しました。 ちなみに日付は5/13の形式で入力しています。 A B 1 5月13日 2 3 4 5 5月13日 6 6

  • EXCEL VBA n番目のシートの内容を参照した

    EXCEL VBAについて教えてください。 別のブックのシートのセルを直接参照したいのですが、 シート名が、決まっておらず、必ず4番目のシートを参照したいです。 以下のようなVBAの シート名をSheets(1)のような、決まったインデックス番号で指定にしたいのですが、どのように指定すればよいでしょうか? Range("A1") = "='e:\Temp\working\[book1.xls]シート名'!A1"

  • VBAでのセル範囲指定について

    お世話になります。 私が分からないのは、VBAでのセル範囲指定なのですが、 例えば、シートにデータが有、そのデータの1行目は見出しなので 2行目からデータが入っているセルまでの範囲を指定、コピーして 隣のシートに貼付したいのですが、そのデータの入力される範囲が 毎回違います。「CurrentRegion.Select」としてしまうと、1行目 の見出しまでも範囲指定されてしますので、どうやったら良いのか どなたかお教え頂きたく宜しくお願い申し上げます。

  • Excel VBA セルの指定方法について

    Excell2013です。 次のような表(一部)があります。   日   項目      額       分類   12 ノート 250 3 この、250を、別表の分類3の列(H列)の12日の行(15行)のセルに、そこにすでに値があれば250との合計値として入力したいのです。 データによって日付も分類も違いますので、マクロで自動的に入力したいのですが、どうもよくわかりません。 このような場合のVBAでの入力先セルの指定のしかたをどうすればよいのかどなたかご教示ください。

  • VBAで指定したシートの指定したセルに

    VBAで指定したシートの指定したセルに 何かを書き込む場合どうすればいいのでしょうか? 例 Sheet1に配置されてあるボタンをクリックしたとき Sheet3のC1に"AAA"を書き込みたい。

  • エクセル)VBAで他のブックのセル参照

    はじめまして。 エクセルのVBAについて教えてください。 VBAで、 book1のsheet1のセルA1にあるデータを開いていない(アクティブでない)別のbook2のsheet2のセルB1にコピーしたいのですがこんなことってできるのでしょうか? ・・やはり開いていないとダメなんでしょうか? あと、これって"ブック参照"っていうことなんでしょうか?自分がやりたいことが何なのか判らないので上手く調べる事が出来ず難儀しています。 よろしくお願いします。

  • VBAの条件付き書式の書き方

    VBA初心者です。 同じような質問が出ていますが、ドンピシャなのがなく助けて下さい。 エクセルで会社のスケジュールを作成中です。     A          B     ・・・ 1 =(sheet2!a1)   =$a$1 2    〃       =$b$1 3 4 という内容でa1から下のセルには日付が1,2,3と入っていて、 1ヵ月の予定で土日祝日と会議デーに色を付けたいのです。 予め、条件付き書式で、土日祝日は青、会議1が緑、会議2がオレンジまでは 指定したのですが、もう1回会議があり、セルの条件付き書式だと3つまでしか指定できなく、VBAで指定するしかなさそうで困ってます。 なお、会議は別シート(Sheet3)に、計算式で、例えば4月の第2週の金曜日を返すように設定したセルがあり、a1:a31の範囲で、そこを参照して指定した色を返すという方法にしたいのです。 別シートに入力されている会議3には"会議3"と名前を付けてあります。 文字列を参照して返す方法はたくさん質問で出ていたのですが、VBA初心者のため、どこをどういじったらいいのか、全く分かりません。 知恵をお貸し下さい!!