
こんばんわ。
教えていただけないでしょうか。。。
ワークシート上にコマンドボタンがあり、それを押すと集計を始めます。
その際にユーザーフォームで「集計中」と書いたものを表示させ、バックで集
計したいと思っておりますが、うまくいっておりません。
流れとしては、
ワークシート上に、コマンドボタンをクリックさせユーザーフォームを表示さ
せる「***.show」を記述し、集計するためのコードが書いてある標準モジュー
ル「module2」へ移動させる書き方をしたら、
***.show
の部分で止まってしまいました。
***.showから集計のコードへ移すには何かコツがいるのでしょうか???
恐れ入りますが、ご教示のほど宜しくお願いします。
No.4ベストアンサー
- 回答日時:
ANo2の方のを少し改良すると
'シートモジュール----------------------------------------------
Private Sub CommandButton1_Click()
Call Test
End Sub
'標準モジュール----------------------------------------------
Sub Test()
Dim i As Long
UserForm1.Show vbModeless
DoEvents
For i = 1 To 2000
ActiveSheet.Range("A" & i) = i
'ここを改良
If i mod 10 = 0 then
UserForm1.Caption = "ただいま処理中・・・・" & i
DoEvents
End if
Next i
Unload UserForm1
End Sub
ウィンドウズの処理(メッセージキュー?)の中では、画像処理の優先度が低いのです。
なので、表示を更新したい場合はDoEventsを入れて、表示をリフレッシュさせるのです。
ありがとうございます。
>
ウィンドウズの処理(メッセージキュー?)の中では、画像処理の優先度が低いのです。
なので、表示を更新したい場合はDoEventsを入れて、表示をリフレッシュさせるのです。
>
なるほど。。。
お蔭様で完成させることができました。
ありがとうございます。
今後とも何卒宜しくお願いいたします。
No.3
- 回答日時:
とりあえず切り分けします。
Private Sub Frm集計中_Activate()
msgbox "テスト"
食費DB化
End Sub
MsgBoxをユーザーフォームのコードに追加して、メッセージボックスが出てくるか確認してください。
No.2
- 回答日時:
Show を モードレスで実行すれば良いかと思います、、、たぶん。
下記はアクティブシートのA列に書込みに行くので、試すなら新規ブックで。
'シートモジュール----------------------------------------------
Private Sub CommandButton1_Click()
Call Test
End Sub
'標準モジュール----------------------------------------------
Sub Test()
Dim i As Long
UserForm1.Show vbModeless
DoEvents
For i = 1 To 2000
ActiveSheet.Range("A" & i) = i
UserForm1.Caption = "ただいま処理中・・・・" & i
Next i
Unload UserForm1
End Sub
ありがとうございます。
うまくいきました。
しかしユーザーフォームに書いた内容(「集計中...」)という文字が表示されておらずの状態です。
処理時間は10秒くらいですが、vbmodelessだと文字は表示されないものなのでしょうか?
恐れ入りますが、お時間ある時に教えていただければと思います。
宜しくお願い致します。
No.1
- 回答日時:
一例ですが・・
シート1にこんなマクロを書いて
Private Sub CommandButton1_Click()
UserForm1.Show
End Sub
ユーザーフォームには
Private Sub UserForm_Activate()
test '名前です
End Sub
標準モジュールには
Sub test()
'実行させたいコード
unload userform1
End Sub
これで動くはずですよ。
ありがとうございます。
それでもユーザーフォームで止まってしまっているような気がしますして、以下に実際に書いたコードを記しますので添削をお願いできませんか?
(ワークシート上のコマンドボタン)
Private Sub 食費DB_Click()
Frm集計中.Show
End Sub
(ユーザーフォームのコードです)
Private Sub Frm集計中_Activate()
食費DB化
End Sub
(標準モジュールに書いたコードです)
Sub 食費DB化()
Unload Frm食費DB化
End Sub
---
お願い致します。。。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 【VBA】元のシート内の文字列を別シートと比較し、一致したら元のシートの別のセルへ転記する方法。 3 2023/03/23 17:30
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- Visual Basic(VBA) ユーザーフォームが立ち上がらない 2 2022/06/10 18:57
- JavaScript フォームが空欄の時にフォームの外をクリックすると、エラーが出るコードを調べています。 1 2023/06/25 11:51
- Excel(エクセル) vba 同じブック内での転記について 4 2023/01/15 14:42
- Visual Basic(VBA) 以前シートを集めて1シートへ繋げる下記コードをご教授いただき作成しました。 今回すでに集めてある「ま 1 2022/08/29 20:38
- JavaScript 空白で入力フォームのボタンをクリックしたら、ブラウザの上部からjavascriptで 表示されるアラ 1 2022/05/20 11:16
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/08/08 15:45
- Visual Basic(VBA) 集計シートA列のコードと一致する右に並んだシート名(コード)の3行目から10行目をコピーして貼り付け 4 2022/08/18 15:24
- JavaScript ソースコードは下の共有コードサイト「張り紙」にあります。 入力フォームの javascript で 1 2022/05/11 11:01
このQ&Aを見た人はこんなQ&Aも見ています
-
vba userFormのSubを標準モジュールから呼び出す方法を教えてください
Visual Basic(VBA)
-
Excel VBAで、ユーザーフォームの値を、モジュールで使用したい。
Visual Basic(VBA)
-
モジュールからフォームのボタンをクリックするには?
Access(アクセス)
-
-
4
EXCEL VBAで全選択範囲の解除
Excel(エクセル)
-
5
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
6
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
7
VBAでブックを非表示で開いて処理して閉じる方法
Excel(エクセル)
-
8
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
9
テキストボックスの番号を使ったFor~Next文について
Visual Basic(VBA)
-
10
標準モジュールからフォームをコントロールしたい
Visual Basic(VBA)
-
11
Excel VBA:フォーム←→セルのアクティブ切り替え
Excel(エクセル)
-
12
エクセル・VBA CheckBoxのオブジェクト名に変数を使うことは可能でしょうか?
Excel(エクセル)
-
13
VBA(エクセル)のコンパイルエラー
Excel(エクセル)
-
14
EXECEL VBA コマンドボタンからのモジュール呼び出し
Visual Basic(VBA)
-
15
エクセルVBAでUserFormを起動した時
Excel(エクセル)
-
16
UserForm1.Showでエラーになります。
工学
-
17
VBAでマルチページのページ指定方法
Visual Basic(VBA)
-
18
別のユーザーフォームのコマンドボタンを押す
Visual Basic(VBA)
-
19
private subモジュールを他のモジュールから呼び出して使う方法を教えてください(-.-)
Visual Basic(VBA)
-
20
Excel・ユーザーフォームの情報を受け渡したい
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAでシート名を選んで転記する...
-
エクセルVBA Ifでシート名が合...
-
エクセルのシート名変更で重複...
-
VBA ThisWorkbookはSheet*で記...
-
エクセルvba ハイパーリンクに...
-
エクセルのマクロでアクティブ...
-
excelで新規作成されるシート名...
-
VBA 検索して一致したセル...
-
シートの枚数について
-
Codeがわかりません(自作の...
-
原本シート複写してリストの氏...
-
条件によってシート別に振り分...
-
excelのマクロで該当処理できな...
-
エクセルVBA ListBoxの並び...
-
月ごとに作成している日報ファ...
-
VBA WorksheetFunction.SumIfs...
-
excel vba
-
セルを指定してテキストファイル化
-
VBAで、シート間の転記するコー...
-
VBA初心者 シート名などについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
特定の文字を含むシートだけマ...
-
Excelマクロのエラーを解決した...
-
excelのマクロで該当処理できな...
-
ユーザーフォームに入力したデ...
-
実行時エラー'1004': WorkSheet...
-
XL:BeforeDoubleClickが動かない
-
エクセルVBA Ifでシート名が合...
-
実行時エラー1004「Select メソ...
-
エクセルのシート名変更で重複...
-
【ExcelVBA】全シートのセルの...
-
VBA 存在しないシートを選...
-
ブック名、シート名を他のモジ...
-
Excel チェックボックスにチェ...
-
VBA 検索して一致したセル...
-
エクセルで通し番号を入れてチ...
-
シートが保護されている状態で...
-
【VBA】特定の文字で改行(次の...
-
ExcelのVBAのマクロで他のシー...
-
Worksheet_Changeの内容を標準...
-
EXCELVBAを使ってシートを一定...
おすすめ情報