- ベストアンサー
VBAの初歩的な質問
VBAの基本的な事なのですが(すいません、あまりに初歩的な事なのでこちらに質問させていただきました。) よく、プログラミングを書く時に、プログラム途中で、行が1つ2つ続けて空いている時ありますよね。あれは、何か意味があるのですか。 改行した所で、一つの処理が終わってますよね?(1行、2行・・空いて無くても処理は変わらないですよね?) それと、プログラム途中で、書き出しの頭がそろえる時とづらす時もありますよね。 あれも、何か意味があるのですか?(ここからここまでの処理と見やすくするため?) 例 づらしてない時 Sub test01() With Sheets("Sheet1").Range("A1") .Value = Time .NumberFormatLocal = "h:mm:ss" End With Application.OnTime Now + TimeValue("0:00:01"), "test01" End Sub づらしている時 Sub test01() With Sheets("Sheet1").Range("A1") .Value = Time .NumberFormatLocal = "h:mm:ss" End With Application.OnTime Now + TimeValue("0:00:01"), "test01" End Sub それと、もう一つすいません VBAの→標準モジュールの→モジュール1内にプログラムが一つ入っています。 そのプログラムはシート1でDDEで取り込んだデータ(シート1の特定のセルに入っている)を計算、蓄積、記録など処理するようにプログラムが入っています。 そのシート1と同じ処理をシート2、3、4、(セル位置は一緒)にも同じくさせたいのですが、(それぞれのシートでDDEのデータが変わってくるのですが) そのような場合は、基本的な考え(作り方)として 標準モジュールのプログラム内で書き換えるだけで対処出来るのでしょうか? それとも、エクセルオブジェクト内→シート1やシート2などに、個別にプログラムを(多少書き換えて)入れていく感じになるのでしょうか? どなたか、ご存じの方おられましたら、よろしくお願いします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
その他の回答 (3)
- Wendy02
- ベストアンサー率57% (3570/6232)
- okormazd
- ベストアンサー率50% (1224/2412)
- hana-hana3
- ベストアンサー率31% (4940/15541)
関連するQ&A
- エクセルVBA
VBAの素人です。 以下のようなVBAを実行しようと、何とか形にしました。 単独のBOOKではうまくいくのですが、同時に他のBOOKを開くと 「インデックスが有効範囲にありません」とエラーになります。 エラー箇所は、With Sheets("Sheet1").Range("B1")部分です。 修正をご教示頂ける方、何卒よろしくお願い致します。 全くVBA無知なのにすみません。 Private Sub Workbook_Open() test01 test02 Application.OnTime Now + TimeValue("00:10:00"), "終了" End Sub Sub 終了() Application.OnTime Now + TimeValue("0:00:02"), "test01", , False ThisWorkbook.Close Savechanges:=False Application.Quit End Sub Sub test01() With Sheets("Sheet1").Range("B1") .Value = Time .NumberFormatLocal = "mm:ss" End With Application.OnTime Now + TimeValue("0:00:02"), "test01" End Sub Sub test02() With Sheets("Sheet1").Range("B2") .Value = Time .NumberFormatLocal = "mm:ss" End With End Sub
- 締切済み
- オフィス系ソフト
- エクセルVBA 10分後にエクセル自動終了&カウン
どなたかご教授お願い致します。 ・エクセルの当該ブックを、起動10分後に自動終了(保存しない)させる ・開いている間は、10分のカウントダウンを「分:秒」でA1セルに表示する 以上を実行したいのですが、VBAは全く素人ですので、うまくいきません。 見よう見まねで、以下のようなことをしましたが、結局ダメでした。 何卒、よろしくお願い致します。 ThisWorkbook Workbook Open Private Sub Workbook_Open() test01 Application.OnTime Now + TimeValue("00:10:00"), "終了" End Sub 標準モジュール Module1 Sub 終了() ThisWorkbook.Close Savechanges:=False Application.Quit End Sub Sub test01() With Sheets("バックアップ").Range("A1") .Value = Time .NumberFormatLocal = "mm:ss" End With Application.OnTime Now + TimeValue("0:00:01"), "test01" End Sub
- 締切済み
- オフィス系ソフト
- エクセルシートの順繰り表示マクロについて
エクセルにて随時更新されるデータを全画面表示し、3枚のシートを5秒置きに順繰り表示させるようマクロを組みました。始めは順調なのですが、数時間たつとフリーズしてしまいます。そもそもエンドレスのマクロプログラム実行に無理があるのでしょうか。 または下記のプログラムに問題があるのでしょうか。ご教授お願いします。 Sub Macro1() Sheets("Sheet2").Select Application.OnTime Now + TimeValue("00:00:05"), "Macro2" End Sub Sub Macro2() Sheets("Sheet3").Select Application.OnTime Now + TimeValue("00:00:05"), "Macro3" End Sub Sub Macro3() Sheets("Sheet1").Select Application.OnTime Now + TimeValue("00:00:05"), "Macro1" End Sub
- ベストアンサー
- その他MS Office製品
- 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(エクセル)
- エクセル2007です。VBA不具合について教えてください。
不具合ついてですが、任意のセルに何か入力中の時にA1の表示が停止してしまうことです。 入力中でもこれを回避する方法がありましたら是非お知恵を拝借したいと思います。よろしくお願いします。 現在の環境は以下のとおりです。 セルA1は=now()で秒まで表示。 横軸に日付(B2=2010/1/18~I2=2010/1/25)の8日、縦軸に時間(A3=0~A27=24)の24時間割があるシートです。 日付と時間(HOUR)がマッチしたリアルタイムセルのみを緑色(条件付き書式にて)に塗りつぶすスケジュール表を作成中です。 標準モジュールは次のとおりです。 Sub Auto_Open() Application.OnTime Now + TimeValue("00:00:01"), "timer" End Sub Sub timer() With Worksheets("Sheet1") If .Cells(1, 2) <> "" Then Exit Sub .Cells(1, 1).Calculate End With Application.OnTime Now + TimeValue("00:00:01"), "timer" End Sub
- 締切済み
- その他MS Office製品
- Application.OnTime が動作するタイミング(vba)
まず10秒たってからtest2222と表示させて、次にtestと表示させるプログラムを以下のように作成したのですが、なぜか先にtestが表示されて、次にtest2222が表示されます。 なぜなのでしょうか? 分かる方がいれば教えてください。 よろしくお願いします。 Sub aa() Application.OnTime Now + TimeValue("00:00:10"), "kara" MsgBox "test" End Sub Sub kara() MsgBox "test22222" End Sub
- ベストアンサー
- オフィス系ソフト
- EXCELのApplication.OnTimeは予約のことですか?
こんにちは、VBAの初心者です。 Application.OnTimeとは目覚し時計をセットするみたいに 時間になったら実行させたいタスクの「予約をする」ことですか。 ---------------- 例えばThisWorkbookに Sub ThisWorkbook_Open() Application.OnTime TimeValue("09:00:00"), "A" Application.OnTime TimeValue("10:00:00"), "B" Application.OnTime TimeValue("11:00:00"), "C" End Sub 標準モジュールに Sub A() Beep End Sub Sub B() Beep End Sub Sub C() Beep End Sub --------------- と書けば、Workbookを開いた時に「3つのタスクが予約された」と考えて良いのでしょうか。 その場合、11時前にEXCELを終了させたら 最後のタスクは自然消滅するのでしょうか、それともエラー扱いになるのでしょうか。
- ベストアンサー
- オフィス系ソフト
- EXCELのVBAで質問です。
Sub Sheet_COPY() Sheets("電圧降下計算書").Visible = True Sheets("電圧降下計算書").Copy Before:=Sheets("電圧降下計算書") Sheets("電圧降下計算書").Visible = False End Sub 上記のプログラムを1行づつ説明していただけませんでしょうか?
- ベストアンサー
- オフィス系ソフト
- エクセルVBEについて
VBE初心者です。以下のプログラムを実行すると「testが見つかりません」とエラーが出てしまいます。application.ontimeの使い方がよく分かりません。どこが違うんでしょうか?よろしくお願いします。 Sub test() Range("D10").Value = Second(Time) If Range("D10").Value >= 55 Then Exit Sub End If Application.OnTime Now + TimeValue("00:00:01"), "test" End Sub
- ベストアンサー
- オフィス系ソフト
- ExcelのVBAで質問です
ワークシート上にコントロールのテキストボックスを置いています。 このテキストボックスの値(TextBox.Value)を別で作った標準モジュール内のサブプロシージャの中で 使うにはどのようにすればよいのでしょうか? 例として以下のようなプログラムです。 '■■■ Sheet1 ■■■ Dim ThisDate As String ThisDate = TextBox1.Value & "日" Private Sub CommandButton1_Click() Call test End Sub '■■■ 標準モジュール ■■■ Sub test() MsgBox ThisDate End Sub おわかりの方宜しくお願いします。
- ベストアンサー
- オフィス系ソフト
お礼
夜分遅くすいません。ありがとうございます。 このような、サイトもあるのですね。 いろいろ他の事もやってみたいと思います。 ありがとう、御座いました。