質問: ExcelのVBAについて。 画像のようなコードを利用してセルに入力時の日付時間を自動的に付加させたいのですが、、 VBA初心者な為に上手くいきません。 コード自体はサイトのを切り貼りして使えるのですが、これ以上の応用例に行き着けません。目的としては、データベース的に、あと入力数値から特定文字を抜き出して変数を当て嵌め文字列の語呂を当てます。様式はまだ作成中ですが、ある種の図表化してプリントアウトまでしたいと思っています。 何が上手くいかないか、まず自動的に付加させる所は何となく出来ているので、これをシート1とした場合に、シート2に図表化した転記内容を構成し、、シート1入力、シート2表示、またシート1A3セルに戻るというコードにしたいです。 この記述は不味いとかこうこうああした方が良いというアドバイスや指摘をお願いします。 よろしくお願いします。
回答: > シート1の入力(数値になるか文字列になるかまだ決めていません。)を様式を決めて、文章の羅列を文書にする感じで一覧情報にします。 > シート1が数字のみならシート2は漢字とかの文字。 > わりとポピュラーな形式だと思いますが、 どの世界でポピュラーなのか知りません 広辞苑第五版 ポピュラー【popular】 一般向き。大衆的。また、普及しているさま。 広く親しまれる洋風の歌や音楽。「―‐ミュージック」「―‐ソング」 クラシック 結局何をやりたいのか分かりませんが Application.EnableEvents = False が先頭にないのに Application.EnableEvents = True があっても無意味だと思います。 Application.Goto ActiveSheet.Range("A3"), True Gotoはアクティブではないシートのセルを選択する場合に使うみたいですが、ActiveSheetに指定してるのはなぜでしょう。スクロール的なもの? ActiveSheet.Range("A3").Select との違いはスクロールだけのように思えます。 Range("H3").Select ActiveCell.FormulaR1C1 = "5" Formulaはセルに数式をセットする場合に使います。値ならValueで 以下のように一行ですませます。"5"のように文字で指定してもエクセルは数値として扱います。 Range("H3").Value = 5 Range("E3").Select Selection.ClearContents は Range("E3").ClearContents 一行で