![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?a65a0e2)
No.1ベストアンサー
- 回答日時:
1、テキストボックス編。
テキストボックスのテキストに四角(黒ベタ)を予めセット。
Private Sub CommandButton1_Click()
Dim I As Integer
Dim L As Integer
Dim T As String
T = Me.TextBox1.Text
L = Len(T)
Me.TextBox1.Visible = True
For I = 1 To L
Me.TextBox1.Text = Left(T, I)
Pause 1
DoEvents
Next I
Me.TextBox1.Visible = False
End Sub
これで、1秒毎に、四角が1個増えていきます。
見ようでは、プログレスバーです。
2、プログレスバー編。
プログレスバーそのものを配置。
プログレスバーは、[コントロールの選択]をクリックして行います。
Private Sub CommandButton2_Click()
Dim I As Integer
Me.ProgressBar.Max = 20
Me.ProgressBar.Left = 200
Me.ProgressBar.Top = 200
Me.ProgressBar.Visible = True
For I = 1 To 20
Me.ProgressBar.Value = I
Pause 1
DoEvents
Next I
Me.ProgressBar.Visible = False
End Sub
これでも、1秒毎に、バーが伸びていきます。
上記のコードをテストするには、下記のPause関数を標準モジュールに登録する必要があります。
Public Sub Pause(ByVal PauseTime As Single)
Dim Finish As Single
Finish = Timer + PauseTime
Do
DoEvents
Loop Until Timer > Finish
End Sub
有難うございます。
プログレスバーそのものを配置。
プログレスバーは、[コントロールの選択]をクリックして行います。
ってなんですか?
何も分からず済みません。教えてください。
![](http://oshiete.xgoo.jp/images/v2/common/profile/M/noimageicon_setting_01.png?a65a0e2)
No.8
- 回答日時:
質問者さまへ …とわざわざ書くのもヘンですが。
「エクセルVBA実行時に進捗バーを表示する方法」の一つとして、
●#1さんの、「プログレスバー編」があります。
しかし、ライセンスの観点から、
「使えるけど、使って良いかどうか、あるいは使い方」に関しては議論が存在するようです。
その他の方法として、
●#1さんの、「テキストボックス編」
●#2さんの、「VBA ではラベルコントロールを使って表現するか、ステータスバーなどで簡易的に表現する」
●#6さんの、「簡単にラベルを文字の「■」などを入れる手法」
があるということのようです。
議論の是非について私はコメントする立場にありませんが、
少なくとも質問者さんのご質問やお礼自体に関して問題があったわけではありませんからご心配なく。
※コレは「まとめ回答」というやつなので、間違えてもポイントつけてはいけません。
No.7
- 回答日時:
こんにちは。
ちょっと情報が不足していたようです。ご心配かけて、すみませんです。
>元の記事・・・・私が何かしましたか?心配です。
そんなことはありませんです。以下に、そのサイトの著者が、
http://www.h3.dion.ne.jp/~sakatsu/ProgressBarTop …
》※ Office のインストール又はSPアップデートにより、プログレスバーコントロールが入っている mscomctl.ocx ファイルが正規にインストールされる事が判りました(2006/7/27)。
とあります。そのいきさつを、他の掲示板で読んだのですが、それについて、詳しく語る必要はないと思い、割愛しました。
Excel2000のSPのいくつからか、インストールされるということになると、すくなくとも、Visual Basic(開発言語)を持っている人しか出来ない話ではないわけですね。かつては、私の記憶でも、そうだったのですが、以前からOffice VBAをされている方は、標準的に、MS-Office にはないという認識にあったように思います。
しかし、だいたいは、Office VBAを以前からされてきた方は、VB5/6のランタイムを入れてしまっているので、Office SPアップデートで入るということは、知らないような気がします。私自身、知りませんでした。
ある意味で、「ProgressBar Control」というのは、VBには、それは標準的にありましたが、VBAでは、仮に、それ向きに開発しても、個人的に使うだけの存在だと思いました。なかなか、VBAでは、VBランタイムを入れてくださいともいえませんしね。
だからこそ、このスレッドの最初に書いたサイトの著者(角田氏?)や、『かんたんプログラミング』(技術評論社)の大村あつしさんも、それに代わる代用法を編み出したのだと思います。(あくまでも、私の想像です。)
私の書いた
「現在のMS-Office 自体に標準的に備わっているとしたら、配布自体は関係なくなりますね。」
配布することがいけないといっても、それ自体を取りざたする必要がないのではないかなって思いました。お互いが持っているとしたら、それは、再配布することへの必要性はなくなります。私の書いたのは、そういう意味だったのですが、もちろん、その部分だけの文章を取れば、ライセンスフリーとも取られかねません。しかし、再配布権自体は認められてないと書いていますから、そこだけを捕らえて違った解釈する方はいないと信じます。
私としては、Excel上では、他のコントロールと同じように、個人としては自由に使ってかまわないよって書いたつもりなのですが、それ以外の、そのOCX などの再配布の問題は、この質問とは、また違ったステージの問題だと思いますが、ご質問者さんは気にする必要はないと思います。いろいろ試してみるのが良いかと思います。
No.6
- 回答日時:
こんにちは。
ProgressBar Control って、
今は、標準で、Office についているように思えますね。
Office2000 SP3以降?
http://support.microsoft.com/kb/325671/ja
Office XP Service Pack 2 (SP2) の概要
MSCOMCTL.OCX は、コモンコントロールの名前は出てきますね。
VB6 ランタイム再配布バージョンでも、入っていますね。
私のところでは、ProgressBar は出せますが、こちらの環境では良く分かりません。私は、VB6は、もう入れていないだけで、あれこれ入っていますので、確信が持てません。
Developer バージョンでなければ、再頒布権はないので、ProgressBar のデザインを備えた形では配布することは出来ないという話だと思いますが、現在のMS-Office 自体に標準的に備わっているとしたら、配布自体は関係なくなりますね。もちろん、個人でお使いになる分には、まったく問題はない話ですが。
ありがとうございます。
私にはまだ、この手のVBAはむりです。分かりません。
勉強しなおします。また、何か問題でもありましたか?
元の記事・・・・私が何かしましたか?心配です。
No.4
- 回答日時:
Private Sub CommandButton1_Click()
Dim I As Integer
Dim L As Integer
Dim N As String
L = Me.Label1.Width
N = Me.Label1.Width \ 10
Me.Label1.Width = 0
Me.TextBox1.Visible = True
Me.Label1.Visible = True
For I = 1 To 10
Me.Label1.Width = N * I
Pause 1
DoEvents
Next I
Me.Label1.Visible = False
Me.TextBox1.Visible = False
End Sub
一応、これで1秒間隔で進行ゲージが伸びていきます。
No.3
- 回答日時:
断っておきますが、エクセルは一度も操作したことのない門外漢です。
ですから、あくまでも、VBAの一般論で回答しています。
エクセル固有の実現方法があれば、的を外しています。
さて、プログレスバーの配置手順ですが、
1、メニュー-表示(V)-ツールバー(T)-コントロールツールボックスにレ点。
2、最下位のアイコンをポイントすると、[コントロールの選択]という説明文。
3、[コントロールの選択]をクリックすると、選択画面が表示されます。
4、Microsoft ProgressBar Control version 6.0 があればクリック。
これで、画面に配置できます。
なお、一番上に[デザインモードの開始・終了]ボタンがあります。
ところで、Microsoft ProgressBar Control の有無は環境によるかも知れません。
仮に無い場合は、テキストボックスを使われたらいいです。
なーに、ラベルコントロールを背景色付きでテキストボックスの上に配置すればプログレスバーが出来上がります。
No.2
- 回答日時:
> プログレスバーは、[コントロールの選択]をクリックして行います。
これは 製品版 VB(VBA とは別物)などに付属する OCX コントロール
のことですね。VB がインストールされていない環境で OCX をデザイン
使用すると、ライセンス違反になりますのでご注意を。
# VB 未インストール環境では OCX のプログレスバーを使用しては
# いけません.....ということです。
VBA ではラベルコントロールを使って表現するか、ステータスバー
などで簡易的に表現するのが良く知られた方法です。
参考URL:
http://www.h3.dion.ne.jp/~sakatsu/ProgressBarTop …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルでcsvファイルを開いてVBAを使いたい 7 2022/04/28 11:12
- Excel(エクセル) エクセルのセル値に対応してマクロを実行する方法を教えてください セルA1が「1」の時にマクロ名「マク 2 2022/06/19 18:45
- Excel(エクセル) エクセル VBA実行中のApplication.ScreenUpdatingについて 3 2023/07/13 21:06
- その他(教育・科学・学問) 進捗率の計算方法を教えてください。 90日の売上目標500万 20日経過時点で100万。 予定の進捗 1 2022/08/22 12:10
- Excel(エクセル) エクセルでのVBA 2 2022/08/03 06:48
- Excel(エクセル) エクセルにサムネイル画像組み込み 2 2022/09/02 17:13
- Access(アクセス) Accessのクエリの結果を、既存のエクセルに追加したい 2 2022/07/31 22:44
- Visual Basic(VBA) VBAコードを張り付け後のエクセルの進め方 2 2023/02/07 18:24
- Excel(エクセル) CSVファイルでVBAを動かす方法 3 2023/04/04 10:22
- Visual Basic(VBA) 起動中のアプリ、ソフトの取得 3 2022/12/28 11:13
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・「これはヤバかったな」という遅刻エピソード
- ・初めて自分の家と他人の家が違う、と意識した時
- ・いちばん失敗した人決定戦
- ・思い出すきっかけは 音楽?におい?景色?
- ・あなたなりのストレス発散方法を教えてください!
- ・もし10億円当たったら何に使いますか?
- ・何回やってもうまくいかないことは?
- ・今年はじめたいことは?
- ・あなたの人生で一番ピンチに陥った瞬間は?
- ・初めて見た映画を教えてください!
- ・今の日本に期待することはなんですか?
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・【お題】大変な警告
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・最強の防寒、あったか術を教えてください!
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
カメラスクロールするのを動画...
-
エクセル・VBA CheckBoxのオブ...
-
vb.netで画面のコントロールId...
-
チェックボックスをオンにした...
-
エクセルVBAでオプションボタン...
-
コントロールを移動できない
-
ユーザーフォームで動的(Me.Con...
-
エクセル コントロールツール...
-
C# タブのコントロール取得
-
ExcelVBAのコントロールの種類...
-
Labelコントロールの(左右)余...
-
'ckbl' コントロールは作成され...
-
C#で角が丸いテキストボックス
-
VBA ユーザーフォームの Keypre...
-
コンボボックスの文字によるif...
-
全てのオブジェクトのプロパテ...
-
Excel VBA で Richtextboxを使...
-
フォーム上の現在アクティブな...
-
BEGIN_EVENTSINK_MAPをお教えく...
-
トグルボタン一部を一度にON OF...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
カメラスクロールするのを動画...
-
エクセル・VBA CheckBoxのオブ...
-
エクセルVBAでオプションボタン...
-
ExcelVBAでListViewが使用できない
-
ユーザーフォームで動的(Me.Con...
-
VBA ユーザーフォームの Keypre...
-
チェックボックスをオンにした...
-
Groupboxの配下のコントロール...
-
Labelコントロールの(左右)余...
-
コントロールを移動できない
-
C# Form上に配置されたコントロ...
-
EXCELでactivexコントロールを...
-
'ckbl' コントロールは作成され...
-
vb.netで画面のコントロールId...
-
アクセス特有の書き方?
-
エクセル コントロールツール...
-
C#で角が丸いテキストボックス
-
全てのオブジェクトのプロパテ...
-
変数をコントロール型で使用す...
-
コンボボックスの文字によるif...
おすすめ情報