- ベストアンサー
時間値の表示が期待とおりにならない
excelのVBAです。 下記のコード1ではセルA1に実行結果のように表示されますが、 コード2では期待した表示になりません。 これは何故でしょうか。期待した表示は 163001 です。 コード1 Sub TimerProc() Range("A1") = Time() End Sub 実行結果 4:30:01 PM コード2 Sub TimerProc() Range("A1") = Format(Time(), "hhmmss") End Sub 実行結果 12:00:00 AM セルの式は 2346/1/3 0:00:00
- みんなの回答 (7)
- 専門家の回答
質問者が選んだベストアンサー
関連するQ&A
- 時間をvbaでセルに1:00と入力する場合
セルにvbaで時間として、1:00と入れたいのですが、 Range("A2") = #1:00# とすると、自動で Range("A2") = #1:00:00 AM# になってしまい、実際にセルにも「1:00:00 AM」と入力されてしまいます。 そもそもvba上で時間をコードとして打つ場合は、#で囲うでいいんですよね? 時間をvbaでセルに1:00と入力する場合は、どうすればいいですか?
- ベストアンサー
- Excel(エクセル)
- 【VBA】ハイパーリンクでセルに文字を正しく表示できない。
【VBA】ハイパーリンクでセルに文字を正しく表示できない。 ハイパーリンクを設定しセルに数値を表示させる場合、 セルにもともと文字が入力されていれば、数値に置き換わります(a)が、 もともと入力されているのが数値の場合、別の数値に置き換わりません(b)。 例) (a)A1セルに「十」という漢字が入力されていたとします。 その時、下記コードを実行すればA1セルの値は「1」に変わります。 Sub test() ActiveSheet.Hyperlinks.Add _ Anchor:=Range("A1"), _ Address:="http://www.yahoo.co.jp/", _ TextToDisplay:="1" End Sub (b)一方、A1セルに「10」という数値が入力されていたとします。 その時、上記コードを実行してもA1のセルの値は「10」のままです。 なぜなのでしょうか? お分かりの方、教えてください。 尚、当方Excel2003を使用しております。 よろしくお願いします。
- ベストアンサー
- その他MS Office製品
- もっとA1にtestといれるVBAコードがあるはず
教えて下さい。VBAです。 Sub test1() Range("a1").Value = "test" End Sub Sub test2() Cells(1, 1) = "test" End Sub 以外にも「セルA1にtestを入れる」というコードの書き方がいくつかあったと思うのですが 思い出せません。 教えていただけないでしょうか。 よろしくお願い致します。
- ベストアンサー
- Visual Basic
- IF文の作り方
エクセル VBA 超入門のものなんですけど、質問させてください。 A1のセルに 1を入力したら、セルD1に正解を表示させ、 それ以外なら不正解を表示させたいのですが、 以下の文でつくると 実行した最初しか起動してないような気がするのですが、教えてください。どうすればセルA1を入力するたびに、 正解、不正解をD1に表示させれるでしょうか? Sub テスト() If Range("A1") = "1" Then Range("D1").Value = "正解" Else Range("D1").Value = "不正解" End If End Sub
- ベストアンサー
- Visual Basic
- VBAコードでイミディエイトウィンドウを表示する方
VBAコードでイミディエイトウィンドウを表示する方法はありますか? 例えば、 Sub test() Debug.Print Now End Sub を実行したときに イミディエイトウィンドウが表示されていなければ結果がわかりませんよね。 Ctrl+Gでイミディエイトウィンドウを表示出来る事は知っていますが サブプロシージャーと実行とともに、 イミディエイトウィンドウをVBAで表示する方法を教えてください。 Sub test() Debug.Print Now イミディエイトウィンドウを表示 End Sub のようにしたいです。 ご回答よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- VBAでセル記入禁止
たとえば、"A1"に1を記入した場合、B1を記入不可にできるような、VBAのコードがあれば教えて欲しいです。 sub 記入不可() if range("A1").value = "A1" then B1のセルが記入できないコード end if end sub です。 よろしくお願い致します。
- ベストアンサー
- オフィス系ソフト
- VBAのGotoについて
VBA実行後A1セルにカーソルを移動するため Application.Goto Range("A1") End Sub という方法と Application.Goto Reference:=Range("A1") End Sub という方法があると思うのですがどのような違いがあるのですか? 機能的には全く同じだと思うので処理的な違いですか? またその他にも同様の動作をさせるコマンドはありますか? よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- excelvbaで表示の時刻について
今下記のコードを教えていただき、時計(デジタル)表示ができて時刻を刻んでいます。 sub test01() with sheets("sheet1").range("g5") .value=time .numberformatlocal="h:mm:ss" end with application.ontime now + timevalue("0:00:01"),"test01" end sub このコードに、次のような動作が追加できますか。 同じシートのセルA1:A5に、例えばA1に10:05:00、A2に12:10:30というように指定しておき その時刻になったら、メッセージを「時間が来ました」等表示し、ビープ音を2回鳴らす、30秒間表示 を継続した後、また時刻を刻む表示に戻る。 というような動作はできませんか。 どなたか教えていただけませんか。かなりの基礎知識がないとできないでしょうか。
- ベストアンサー
- Excel(エクセル)
- Excel VBA時計がずれる理由
Excel Office 2021 Windows11 Excelの特定セルに1秒ごとに時計をきざむVBAコードをインターネット上で探して標準モジュールに組み込みましたが、time.is/jaのサイトの表示時刻と60秒以上ずれて表示されました そこでBing AIに"D1"セルに時刻表示をするコードを書かせ(下記)、ボタンにVBAをセットし押してスタートしましたが、時刻表示はされるもののやはり75秒ほどずれて(遅れて)表示されます。 Sub DisplayCurrentTime() Range("D1").Value = Time Application.OnTime Now + TimeValue("00:00:01"), "DisplayCurrentTime" End Sub この理由は何なのでしょうか? なにかExcel VBAの仕様が変わったとかありますでしょうか?
- ベストアンサー
- Visual Basic
- ActiveX コントロールでのセル選択
Excel VBA独学中の初心者です。 目的:ActiveX コマンドボタンをクリックして他のSheetのセルを選択する 環境例:シートが2個(Sheet1、Sheet2) Sheet2にActiveXコントロールのコマンドボタンを置く 【プログラム1】:コマンドボタンには次のようなVBAコードを記述 ---------------- Private Sub 別シートセル選択_Click() Worksheets(1).Activate Range("A5").Select End Sub ---------------- 結果:この時次のようなエラーが出ました。 '実行時エラー'1004 'アプリケーション定義またはオブジェクト定義のエラーです。 -------------------------------- -------------------------------- 【プログラム2】:コマンドボタンには次のようなVBAコードを記述 ---------------- Private Sub 別シートセル選択_Click() Worksheets(1).Activate Worksheets(1).Range("A5").Select End Sub ---------------- 結果:OK ---------------- ---------------- ところが次の【比較1】【比較2】の場合、「Range("A5").Select」だけでOKでした。 ---------------- 【比較1】 コントロールの存在するSheetのセルを選択する場合は「Range("A5").Select」だけでOKでした。 ---------------- 【比較2】 Subマクロで記述する場合も「Range("A5").Select」だけでOKでした。 プログラムは以下 -------- Sub セル選択() Worksheets(1).Activate Range("A5").Select End Sub ---------------- 【質問】 ActiveX コントロールを置いているSheetとは別のSheetのセルを選択する時は、選択しようとするセルの「Sheet名」から記述しなければならないのでしょうか。 「Range("A5").Select」だけでOKだった【比較1】【比較2】との違いを教えていただきたくお分かりの方宜しくお願いします。 (用語の使い方に誤りがありましたらすみません。)
- ベストアンサー
- Excel(エクセル)
お礼
わかりました(本当か?) やはりセルの書式の問題なのですね。 時間はシリアル値であることは一応承知していましたが、時間データの扱いはいろんなケースがあって正確に理解処理するのは難しいです。結局対症療法的なってしまいます。