
こんばんわ。
データをエクセル上にリアルタイムにロギングしていくソフトを使用しているのですがデータが上段から下段へ移行していきます。
上段から下段へ移動するのは問題ないのですが
データが入力されるにつれモニター画面を通り越してしまうので最新データを常に見ていることができません。
最新データを常に見れるように最下段に入ったデータを常にモニター画面に表示できるようにできないでしょうか?
因みに私が扱ってるデータは一秒間に5回くらい入力されます。
エクセル2000を使用していますが5万行くらいのデータ量になります。
どうぞご教授のほどよろしくお願いします。
No.4ベストアンサー
- 回答日時:
なるほど。
それではANo.2で回答したマクロを
Private Sub Worksheet_Change(ByVal Target As Range)
on error resume next
Target.Offset(1).Select
End Sub
とします。
このマクロは,ロギングが走っているシートごとにシート名タブを右クリックして,コードの表示を選んで現れたシートに貼り付けます。
こんにちは
再レスありがとうございます。
改めていただいた式で試してみたところ
完璧でした!
私の思ったとおりの動作で不具合もありませんでした。
エクセルの操作で解決できるものだと思っていたのすが
VBAは私には敷居の高いもので
恥ずかしながら教えていただいたものを内容を理解することもできずそのままコピペしただけです。
しかしこの機会にVBAを真剣に勉強してみようとおもいます。
まずは頂いた内容の意味を手探りですが解いてみようと思います。
この度はkeithin様他諸先輩方の教えを頂きまして解決できました。
本当にありがとうございました。
No.5
- 回答日時:
標準モジュールの出し方。
Sheet見出し上で右クリック → コードの表示 → VBE画面が出ますので
その画面で、挿入をクリック → 標準モジュールを選択
出てきた画面に貼り付けしてください。
マクロの実行方法
キーボードの[Alt]と[F8]を押します。
実行したいものを選択します。
コメントを書き加えましたので、読んでください
'ここから
Option Explicit
Private Declare Function GetAsyncKeyState Lib "user32" ( _
ByVal vKey As Long) As Integer
Private 呼び出し回数 As Long
Sub スクロールサブ()
Dim i As Long
Const myName = "Sheet1" 'スクロールしたいシートの名前に変更する
If ActiveSheet.Name = myName Then
i = Range("A" & Rows.Count).End(xlUp).Row 'A列の最終行をセット。列が違ったら"A"を"B"などに書き換える
ActiveWindow.ScrollRow = i
If GetAsyncKeyState(vbKeyEscape) <> 0 Then 'Escを2秒以上押すと実行停止
呼び出し回数 = 0
Application.StatusBar = False
Exit Sub
End If
If 呼び出し回数 < 0 Then
呼び出し回数 = 0
Exit Sub
End If
End If
'2秒毎に自分自身を呼び出し、スクロールする
Application.OnTime Now + TimeValue("00:00:02"), "スクロールサブ"
呼び出し回数 = 呼び出し回数 + 1
Application.StatusBar = _
"呼び出し回数... " & 呼び出し回数
End Sub
Sub 繰り返し停止サブ()
呼び出し回数 = -1000
Application.StatusBar = False
End Sub
こんにちは
再レスありがとうございます。
コメントをいただいたおかげで私にも使用することができました。
動作も完璧に不具合もなく動作しました!
2秒ごとにロギング画面が更新されるものでした。
ナルホド納得の動作でこれも正解ですね!
いろいろと設定も変えられるので他用途でも使用できそうです。
今回はki-aaa様の教えを頂き解決に至れました。
本当にありがとうございました。
私ごときが諸先輩方の回答に甲乙をつけるなど憚られるのですが
システムの関係上ご容赦ください。
No.3
- 回答日時:
こんな方法はどうでしょうか
標準モジュール
Option Explicit
Private Declare Function GetAsyncKeyState Lib "user32" ( _
ByVal vKey As Long) As Integer
Private 呼び出し回数 As Long
Sub スクロールサブ()
Dim i As Long
i = ActiveSheet.UsedRange.Rows.Count
ActiveWindow.ScrollRow = i
If GetAsyncKeyState(vbKeyEscape) <> 0 Then 'Escapeが現在押されている状態だったら実行停止
呼び出し回数 = 0
Application.StatusBar = False
Exit Sub
End If
If 呼び出し回数 < 0 Then
呼び出し回数 = 0
Exit Sub
End If
Application.OnTime Now + TimeValue("00:00:02"), "スクロールサブ"
呼び出し回数 = 呼び出し回数 + 1
Application.StatusBar = _
"呼び出し回数... " & 呼び出し回数
End Sub
Sub 繰り返し停止サブ()
呼び出し回数 = -1000
Application.StatusBar = False
End Sub
こんばんわ。
返信ありがとうございます!
早速試させていただきました。
が・・・
どうやら私の狭小な脳では内容の理解どころか
どうやってこの式を使用するのかさえ分かりませんでした;;
Option ExplicitのところからNo1のtom04様に教えていただいた
のと同じ方法でコピペしたのですが上手く動作していないように見えました。
どのような内容なのかわかりませんが
動作したらとても素敵な動きをするようで楽しみで仕方ありません。
もしよろしければ今一度ご教授いただけたらと思っております。
どうぞよろしくお願いいたします。
No.2
- 回答日時:
シート名タブを右クリックしてコードの表示を選び
Private Sub Worksheet_Change(ByVal Target As Range)
Target.Offset(1).Select
End Sub
とかでいいです。
こんばんわ
返信ありがとうございます!
早速試させていただきました
結果は・・・
思ったとおりの動きをしてくれました!
最新データがモニターからはみ出すことなく常に表示されました。
が・・・
『実行エラー'1004'RangeクラスのSelectメソッドが失敗しました』
というエラーがでてしまいます。
デバックを見ると
Target.Offset(1).Select
の部分が黄色く表示されています。
式の内容は全くわからないので現象を追及してみたところ
ロギングをしているシートを見ている状態では問題なく動作しているようですが、
別シートに移動するとエラーがでます。
シートを複数使用していること自体説明してなかった部分ですので
「そんなの聞いてないよ!」って言われたらそれまでです。
申し訳ありません;;
もしもまだお時間があり改善策など思いつくようなことがありましたら
どうぞご教授のほどよろしくお願いいたします。
No.1
- 回答日時:
こんばんは!
一例です。
画面左下にある操作したいSheet見出し上で右クリック → コードの表示 → VBE画面が出ますので、
↓のコードをコピー&ペーストしてみてください。
Private Sub Worksheet_Change(ByVal Target As Range) 'この行から
Dim i As Long
i = ActiveSheet.UsedRange.Rows.Count
ActiveWindow.ScrollRow = i
End Sub 'この行まで
尚、最終行が画面の1行目に表示されてしまいますので、仮に最終行を画面の10行目に表示したい場合は
ActiveWindow.ScrollRow = i の部分を
ActiveWindow.ScrollRow = i-9
のように調整してみてください。
参考になれば良いのですが・・・m(__)m
早速のご返事ありがとうございます!
今日試してみたのですが・・・
この式では刻々と入力される最新のロギングデータを表示するのではなく
そのシートの最下行を表示してしまうようです。
5万行をシートに設定していたら5万行目を表示します。
私の説明が悪いがために勘違いなされたものと推測いたします。
このような書き込みをするのも初めてなもので
上手く伝わらないだろうと思いつつの質問でしたので申し訳ありません。
もしもまだお付き合いくださるようでしたら
今一度教えを乞いたいと思っておりますのでどうぞよろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(Microsoft Office) エクセルでの作成データをモニター画面内に収めたい。 1 2022/04/23 11:52
- Excel(エクセル) VBA : スクレイピングできない 4 2023/05/12 22:26
- USBメモリー・SDカード・フラッシュメモリー 任天堂3DSについて ソフトとデータのお引越しをしました。新しい3DSにSDカード等のデータが移行出 1 2022/09/03 04:22
- Android(アンドロイド) Androidスマホのデータ移行が終わらない 1 2023/08/04 17:25
- Excel(エクセル) エクセルで沢山のレコードの最後に追記するには? 7 2023/04/10 13:27
- Excel(エクセル) エクセルの散布図で新たに入力した値のデータラベルが空欄になる現象 1 2022/04/26 09:31
- Visual Basic(VBA) 【VBA】データを入力後に,同一シート内に履歴として転記するVBAコードを教えていただきたいです。 3 2022/11/16 01:37
- HTML・CSS WEBサイトの構築。表示データとWEBデザインを分離する考え方を専門用語・業界用語では何と言うか? 8 2022/09/27 09:16
- ドライブ・ストレージ 古い外付けHDDから新品外付けHDDへのデータ移行方法 (Mac) 2 2022/12/11 02:01
- Excel(エクセル) セルの上書き禁止について 5 2022/04/02 10:09
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
google chromeの閲覧履歴が下ま...
-
勝手に一番上まで戻らないで欲しい
-
Excel の画面を縦または横に自...
-
【至急】スマホの画面を1ページ...
-
図形を描画している時の画面の...
-
ExcelのVBAで画面右下のバーを...
-
【VBA】スピンボタンでアクティ...
-
フレームが設定されている画面...
-
Vba 作業中にuserformにテロッ...
-
JISデータベースが閲覧できない
-
オープニング作成に関しての質...
-
Firefox IMEの自動オフしない問...
-
ブラウザの縦スクロールが戻っ...
-
Notesについて
-
Firefoxでのスペースキーでのス...
-
スクロールさせた文字列がチカ...
-
スクロール部分の印刷
-
ブラウザが勝手に前のページに...
-
スペースキーを押すとページダ...
-
iPadのGoogle Chromeで画像のWi...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
google chromeの閲覧履歴が下ま...
-
勝手に一番上まで戻らないで欲しい
-
iPadのGoogle Chromeで画像のWi...
-
【至急】スマホの画面を1ページ...
-
図形を描画している時の画面の...
-
Excel の画面を縦または横に自...
-
ブラウザの縦スクロールが戻っ...
-
ブラウザが勝手に前のページに...
-
Audacityのスクロール操作をマ...
-
複数の画像を縦スクロール閲覧...
-
【VBA】スピンボタンでアクティ...
-
WinShotでのキャプチャ
-
フレームが設定されている画面...
-
Macの画面が勝手にスクロールし...
-
Twitterタイムラインを一番下(...
-
画面が勝手にスクロールしちゃ...
-
エクセルの表にスクロールバー
-
【Google Crome】一気に一番下...
-
Adobe readerにスクロバーが表...
-
スクロール出来ない
おすすめ情報