エクセルマクロオンライン講座 質問と回答

  • このエントリーをはてなブックマークに追加

無料・有料のオンライン講座で 寄せられたメッセージの一部を紹介致します。

[7926] エクセルマクロ・VBAを利用するための推奨設定 - VisualBasicEditorの初期設定

ゲストさんからの投稿です。

ツールからオプションでする設定は、2~3冊読んだ入門書になっかた説明で、5つくらいの不満・疑問が解決しました。続けて勉強します。よろしくお願いいたします。

[ 続きを読む]  返信件数:1件  [ 動画を見る] 

[7924]

平吹 敦史さんからの投稿です。

小川 さま

また、可能であれば、メールで案内がきていた、基礎編演習ガンガンという
対面講座も参加できればと思います。


>小川 さま
>
>お世話になっております。
>
>自分のレベルがとても低いことがよくわかりました。
>
>発展編2はいったん休止にして、基礎編から発展編1までの演習を思考することなく
>すらすら書けるまで繰り返し繰り返しやってみます。
>
>それなりに動くマクロが書けており、品質はともかく実務で役立てていましたが、
>できる方から見ると、幼稚であることがよくわかりました。
>
>ショックですが、現実は現実なので、一から頑張ります。
>
>>平吹 敦史 さん:
>>
>>おはようございます。
>>
>>結論から言うと、VBでは結果的にどちらでもOKですが、一般論としては、ループに入った直後に初期化、のほうが美しいですね。
>>
>>というのは、発展編1でもお伝えしているかと思いますが、VBでは、変数は宣言した直後に自動的に初期化までしてくれるので。
>>
>>CやJavaのような言語では、変数は宣言しただけでは使えず、さらに、初期化を自分でする必要があります。
>>
>>つまり、「初期化してくれる」というのは、プログラミング言語一般に言える当然の実装ではない、ということです。
>>
>>そのとき、より汎用的な、言い換えれば、よりITリテラシーの高いコーディングのスタイルはどちらか?と言えば、それは、変数に値を代入する前に初期化のステップを入れるという方になります。
>>
>>>>なお、今回一点だけ指摘しておくと、以下の2つの変数宣言は、僕なら、「for ループ外」より前に持っていきます。
>>>>
>>>>Dim vKeys As Variant
>>>>Dim vItems As Variant
>>
>>僕が演習の回答として示しているコードで、ループの中で変数宣言しているものがひとつでもあったでしょうか。
>>
>>こびとちゃんの立場になって考えてみてください。
>>ループの回数だけ変数を改めて宣言するか?一度で済ませて、その変数を使いまわすか?の違いです。
>>
>>>マクロの実行結果が同じなのに、コードを書く場所が複数あり得る。
>>>そんな時に、何をもって、その場所に書くのか・・・
>>
>>純粋に経験不足かと思います。
>>基礎編からの演習をくり返し、そして、実務でもマクロをガンガン書いてください。
>>
>>基礎編~発展編1の演習を、考えるために手を止めること一度もなくスラスラと解けるようになったころには、こういう疑問が出てもたいして悩まないうちに自分でアイデアを出して解決できるようになるかと思います。
>>
>>あと、複数の書き方がある場合の方法選択については、以下の記事も参考になるかと思います。
>>http://www.exvba.com/blog/?p=4378
>>
>

[ 続きを読む]  返信件数:1件  [ 動画を見る] 

[7922] エクセルマクロの全体像

ゲストさんからの投稿です。

VBAの入門書を読んで、勉強していましたが行き詰っています。学習方法等理解できるということなので、頑張って学習したいと思います。よろしくお願いいたします。

[ 続きを読む]  返信件数:1件  [ 動画を見る] 

[7919] エクセルマクロの全体像

ゲストさんからの投稿です。

マクロで何ができるかのイメージがつきました。テンポの良い解説なので、大変楽しみにしております。よろしくお願いいたします。

[ 続きを読む]  返信件数:1件  [ 動画を見る] 

[7914] 投稿するプログラムを [code] ... [/code] で囲う

相馬 千鶴子さんからの投稿です。

ここまでのレベルにいけるのだろうか??さっぱりわからない。

[ 続きを読む]  返信件数:1件  [ 動画を見る] 

[7913]

平吹 敦史さんからの投稿です。

お世話になっております。

発展編2テキストP18のChap02-11の問題について質問です。
Sub GetZangyoList_Normal()を配列関数を使わずに、他のやり方をいろいろ試しています。

下記①と②があります。
①は問題なく動きます。
②は下記コードでエラーになります。
wsZ1.Range("B2:14").Offset(, lnretu).Value _
= ws.Range("C3:C15").Value
エラーは、「実行時エラー’1004’」
'Range'メソッドは失敗しました:'Worksheet'オブジェクト
となります。

何らかのルール違反をしているかと思うのですが、わかりませんでした。
ご教授願います。


Option Explicit
Dim lnretu As Long

Sub Sample1() '配列関数を使わないパターン
Application.ScreenUpdating = False
Dim lnCt As Long
lnretu = 0
For lnCt = 1 To Worksheets.Count
Worksheets(lnCt).Activate
If Left(ActiveSheet.Name, 2) <> "残業" Then
Sample2
End If
Next
Worksheets("残業1").Activate
Application.ScreenUpdating = True
End Sub

Sub Sample2() '配列関数を使わないパターン
Application.ScreenUpdating = False
Dim wsZ4 As Worksheet
Set wsZ4 = Worksheets("残業1")

With wsZ4.Range("B1")
.Offset(, lnretu).Value = ActiveSheet.Name
wsZ4.Range("B2:B14").Offset(, lnretu).Value _
= ActiveSheet.Range("C3:C15").Value
lnretu = lnretu + 1
End With
wsZ4.Activate
Application.ScreenUpdating = True
End Sub


Sub Sample3()
Application.ScreenUpdating = False
Dim ws As Worksheet
Dim wsZ1 As Worksheet
Set wsZ1 = Worksheets("残業1")
Dim lnretu As Long

lnretu = 0
For Each ws In Worksheets
If Left(ws.Name, 2) <> "残業" Then
wsZ1.Range("B1").Offset(, lnretu).Value = ws.Name
wsZ1.Range("B2:14").Offset(, lnretu).Value _
= ws.Range("C3:C15").Value・・・・ここで、エラー
lnretu = lnretu + 1
End If
Next
End Sub

[ 続きを読む]  返信件数:2件  [ 動画を見る] 

[7912]

平吹 敦史さんからの投稿です。

お世話になっております。

表示をシンプル化すると、理解しやすくなりますね。
さて、以下2つについてですが、マクロの実行結果は変わりません。

結果だけみれば、要は配列の中身をクリアにして、最初のループをむかえられれば良いので、
どちらでもよい気がします。

ただ、初期化というくらいですので、コードの最初にないと理解しにくい、
うまり可読性が低くなるとうことでしょうか?


for ループ外
初期化
調査
出力
next




for ループ外
調査
出力
初期化
next




>なお、今回一点だけ指摘しておくと、以下の2つの変数宣言は、僕なら、「for ループ外」より前に持っていきます。
>
>Dim vKeys As Variant
>Dim vItems As Variant

これについても、for ループ外でも内でも結果は変わりません。
そうすると、可読性でしょうか?

ループ外にもっていくと、見た目はすっきりします。

また、冒頭にバリアント型のオブジェクト変数があるよ、と明示する為でしょうか?

マクロの実行結果が同じなのに、コードを書く場所が複数あり得る。

そんな時に、何をもって、その場所に書くのか・・・

こんな感じしか今の私にはわかりません。

よろしくお願いします。

>平吹 敦史 さん:
>
>おはようございます。
>
>初期化のタイミングをどこにするか?ということですね。
>
>基礎編フォローアップでその基本を解説している問題があります。
>
>○出現回数を数える。CountIf関数がやっていることをマクロで書くと?
> https://padstudy.jp/detail?movie_id=150&package_id=27
>
>以下、この動画内での解説をさらにシンプルに表現してみます。
>上記動画での解説は複数のものについて調査→出力するときのパターンのあくまで一例ですが、要は、こういうこと↓です。
>
>

for ループ外
> 初期化
> 調査
> 出力
>next


>
>この調査の部分で forループを使っています。以下のとおり。
>
>

for ループ外
> 初期化
> for ループ内1 '調査
> ...
> next
> 出力
>next


>
>もちろん、出力にforループを使うことが必要になる場合もあります。すると、以下。
>
>

for ループ外
> 初期化
> for ループ内1 '調査
> ...
> next
> for ループ内2 '出力
> ...
> next
>next


>
>↑これは、今回の連想配列の課題のパターンですね。
>
>さて。
>平吹さんが今回書かれたコードは、こう↓なっていますね。
>
>

for ループ外
> for ループ内1 '調査
> ...
> next
> for ループ内2 '出力
> ...
> next
> 初期化
>next


>
>これを、改めて、最初に示したものレベルまで簡略化して表現すると、以下のとおり。
>
>

for ループ外
> 調査
> 出力
> 初期化
>next


>
>今回いただいたご質問は、要は、「さて、↑これでどうか?」ということです。
>
>では、どうでしょうか。
>ご自身で考えて、またコメントいただければと思います。いっしょに考えましょう。
>
>なお、今回一点だけ指摘しておくと、以下の2つの変数宣言は、僕なら、「for ループ外」より前に持っていきます。
>
>Dim vKeys As Variant
>Dim vItems As Variant
>
>では、どうしてか?
>これについても、ご自身で考えみてて、またコメントいただければと思います。
>
>まずは、以上のとおりです。
>
>
>>お世話になっております。
>>
>>連想配列について質問です。
>>
>>Chap02-71のSheet2の演習で、取引金額をH列にも追加して、
>>KeyはB列ひとつなんですが、ItemがG列とH列です。
>>
>>書き出し先は、KeyがI列、ItemがG列→J列、H列→K列です。
>>
>>とりあえず正しく反映しますが、以下コードで問題ないか、
>>アドバイスをお願いします。
>>
>>なんとなくですが、removeallでいったんクリアにするので、
>>それが悪さしないのか心配です。
>>
>>Sub GetCount()
>> Dim dic As Scripting.Dictionary
>> Set dic = CreateObject("Scripting.Dictionary")
>>
>> Dim c As Long
>> Dim r As Long
>> Dim st As String
>>
>> For r = 0 To 1
>> For c = 0 To Range("A" & Rows.Count).End(xlUp).Row - 2
>> st = Range("B2").Offset(c).Value
>> If dic.Exists(st) Then
>> dic.Item(st) = dic.Item(st) + Range("G2").Offset(c, r).Value
>> Else
>> dic.Add (st), Range("G2").Offset(c, r).Value
>> End If
>> Next
>>
>> Dim vKeys As Variant
>> Dim vItems As Variant
>> vKeys = dic.Keys
>> vItems = dic.Items
>> For c = LBound(vKeys) To UBound(vKeys)
>> Range("I2").Offset(c).Value = vKeys(c)
>> Range("J2").Offset(c, r).Value = vItems(c)
>> Next
>> dic.RemoveAll
>> Next
>>
>>End Sub
>>
>

[ 続きを読む]  返信件数:1件  [ 動画を見る] 

[7911] エクセルマクロの全体像

ゲストさんからの投稿です。

マクロがダーっと動く様は爽快ですね。今までは「マクロの記録」で済ませていた部分がたくさんあるので、この講座で勉強して、自分で組めるようになりたいと思っています。よろしくお願いいたします。

[ 続きを読む]  返信件数:1件  [ 動画を見る] 

[7905]

平吹 敦史さんからの投稿です。

お世話になっております。

連想配列について質問です。

Chap02-71のSheet2の演習で、取引金額をH列にも追加して、
KeyはB列ひとつなんですが、ItemがG列とH列です。

書き出し先は、KeyがI列、ItemがG列→J列、H列→K列です。

とりあえず正しく反映しますが、以下コードで問題ないか、
アドバイスをお願いします。

なんとなくですが、removeallでいったんクリアにするので、
それが悪さしないのか心配です。

Sub GetCount()
Dim dic As Scripting.Dictionary
Set dic = CreateObject("Scripting.Dictionary")

Dim c As Long
Dim r As Long
Dim st As String

For r = 0 To 1
For c = 0 To Range("A" & Rows.Count).End(xlUp).Row - 2
st = Range("B2").Offset(c).Value
If dic.Exists(st) Then
dic.Item(st) = dic.Item(st) + Range("G2").Offset(c, r).Value
Else
dic.Add (st), Range("G2").Offset(c, r).Value
End If
Next

Dim vKeys As Variant
Dim vItems As Variant
vKeys = dic.Keys
vItems = dic.Items
For c = LBound(vKeys) To UBound(vKeys)
Range("I2").Offset(c).Value = vKeys(c)
Range("J2").Offset(c, r).Value = vItems(c)
Next
dic.RemoveAll
Next

End Sub

[ 続きを読む]  返信件数:1件  [ 動画を見る] 

[7902] この動画講座サイト「Padstudy」の使い方

受講生さんからの投稿です。

60歳女性です。未知との遭遇でチャレンジャー。
私にとっては倍速ではなく、倍遅?でお願いしたい(笑)
でも、何度も見直しできるのでありがたいです。
のんびりゆっくりですがよろしくお願いします。

[ 続きを読む]  返信件数:1件  [ 動画を見る] 

[7899] エクセルマクロの全体像

ゲストさんからの投稿です。

マクロ自体も?ですが、どうすれば効率良くできるか等思考する事が多い、また現状の仕事ではマクロ知識を使う機会も無いから、覚えられても使わなければすぐ忘れる、、、等々ハードルが高いなあ、と思いましたが
身に着けたい気持ちは捨てきれず、こびとさんの愛らしさもあって、明日、続きの動画を閲覧させて頂きます。ありがとうございました。

[ 続きを読む]  返信件数:1件  [ 動画を見る] 

[7896] エクセルマクロの全体像

ゲストさんからの投稿です。

マクロを使いこなしたいという気持ちが強くなりました。

[ 続きを読む]  返信件数:1件  [ 動画を見る] 

[7895]

平吹 敦史さんからの投稿です。

お世話になっております。

質問というよりは、連想配列の感想です。
正直、びっくり、というのが本音です。

例えば、Chap02-71のSheet2の演習などは、今まで頭を悩ませながらコードを組んでいたものが、
あまりにすっきり決まるので、・・・状態です。

テキストP48 下段からの例題も、KeyとItemをうまく組み合わせれば、氏名と組織名を関連づけて、該当する組織の氏名だけ呼び出すなんてこともできそうで、いろいろ試してみたいと思います。

なんか、基礎を忘れてしまわないか心配です・・・

[ 続きを読む]  返信件数:3件  [ 動画を見る] 

[7892] エクセルマクロの全体像

受講生さんからの投稿です。

習得する動機付けとしていいきっかけになりました。
話のテンポがよかったです。

[ 続きを読む]  返信件数:1件  [ 動画を見る] 

[7890] エクセルマクロの全体像

ゲストさんからの投稿です。

Excelを使える気でいたのですが、もっと便利に効率良く出来る方法がありそうで、楽しみで仕方がありません。

[ 続きを読む]  返信件数:1件  [ 動画を見る] 

[7883] 配列操作の便利関数、オプション、その他

平吹 敦史さんからの投稿です。

お世話様です。

テキストP41、Chap02-61のEraseステートメントの下記例題ですが、
Erase stAryの一文があってもなくても結果は一緒でした。
ステップインで追いかけましたが、いまいちわかりませんでした。

どうも、stAry(cAry)のcAry=0で例えば渋谷区の配列の中身が世田谷区の中身に上書きされた時点で、
それ以降の配列はクリアになるようでした。

なので、あえてErase stAryの一文が必要なのでしょうか?

最初は、前の配列がそのまま残っているので、クリアにしないと不要な配列が書き出されてしまうイメージでした。データ数が一緒なら上書きされて問題ないが、データ数が少ないと不要なデータが書き出されてしまうイメージです。

ですが、結果が違ったので???状態です。

ご教授願います。

Option Explicit
Dim stTgt As String '検索対象の区
Dim stAry() As String '配列
Dim cTo As Long 'データ書き出し先の行
Sub ListUpBukken()
Columns("I:J").ClearContents

cTo = 2

stTgt = "渋谷区"
ExeKensaku

stTgt = "世田谷区"
ExeKensaku

stTgt = "目黒区"
ExeKensaku

stTgt = "港区"
ExeKensaku

stTgt = "品川区"
ExeKensaku

End Sub
Sub ExeKensaku()
Dim cFm As Long '元データ表でForNext構文が使う変数
Dim cMx As Long '元データ表の最大行
Dim cAry As Long '配列のインデックス用

cMx = Range("A65536").End(xlUp).Row

cAry = 0
Erase stAry・・・・・・これをとっても結果は同じなる?
For cFm = 2 To cMx
If Range("C" & cFm).Value = stTgt Then
ReDim Preserve stAry(cAry)
stAry(cAry) = Range("F" & cFm).Value
cAry = cAry + 1
End If
Next

Range("I" & cTo).Value = stTgt & "の物件は " & UBound(stAry) + 1 & "件ヒットしました!"
cTo = cTo + 1

For cFm = LBound(stAry) To UBound(stAry)
Range("J" & cTo).Value = stAry(cFm)
cTo = cTo + 1
Next
cTo = cTo + 1

End Sub

[ 続きを読む]  返信件数:5件  [ 動画を見る] 

[7879] 多次元配列_2

平吹 敦史さんからの投稿です。

お世話様です。

好みの問題なのか、理由があるのか教えてください。
以下2つのsampleがあります。

結果はどちらも同じです。
違いは、配列変数の次元をどっちを先に書くかだけです。

先生の説明ですとsample1です。

個人的に理解しやすいのはsample2です。
理由は、行列のイメージに合うからです。

先生がsample1で指導される理由があり、今後の発展性も
踏まえて考えたときにどちらがベターか教えていただけると
助かります。

Sub Hairetu_Sample1()
Dim Arry(1, 12) As Variant
Dim cnt As Long
For cnt = LBound(Arry, 2) To UBound(Arry, 2)
Arry(0, cnt) = Range("C3").Offset(cnt).Value
Arry(1, cnt) = Range("D3").Offset(cnt).Value
Next

For cnt = LBound(Arry, 2) To UBound(Arry, 2)
Range("J3").Offset(cnt).Value = Arry(0, cnt)
Range("K3").Offset(cnt).Value = Arry(1, cnt)
Next
End Sub

Sub Hairetu_Sample2()
Dim Arry(12, 1) As Variant
Dim cnt As Long
For cnt = LBound(Arry, 1) To UBound(Arry, 1)
Arry(cnt, 0) = Range("C3").Offset(cnt).Value
Arry(cnt, 1) = Range("D3").Offset(cnt).Value
Next

For cnt = LBound(Arry, 1) To UBound(Arry, 1)
Range("J3").Offset(cnt).Value = Arry(cnt, 0)
Range("K3").Offset(cnt).Value = Arry(cnt, 1)
Next
End Sub

[ 続きを読む]  返信件数:4件  [ 動画を見る] 

[7873] 基礎講座第1章1 - マクロの入ったファイルを開くときの注意点

受講生さんからの投稿です。

デバック F8を押下したら、
このプロジェクトのマクロは無効化されています。
マクロ有効にする方法についてはオンラインヘルプまたは ホストアプリケーションの・・・
インストールの仕方が悪いですか?
最近インストールをしたので、その時の設定が関係あるのでしょうか?

[ 続きを読む]  返信件数:3件  [ 動画を見る] 

[7871] エクセルマクロ研修の選び方3-カレーライスとパソコン2

宝福一哉さんからの投稿です。

小川様
私は、もう30年前に、BASICを独学で習得し、情報管理室に4年勤務した時に、COBOLとFORTRANのプログラミングの経験があります。
とても、共感しました。
習うより、慣れろです。
ノイマン式のプログラムの経験が邪魔になり、イベントドリブン式のプログラムコードがいまいちピンと来なくて、VBもそうですが、EXCEL VBAも大きな壁を感じています。
小川様の考え方に共感し、今後の自分に期待しています。
EXCEL VBA基礎講座を申し込んでよかったと思います。
今後とも、よろしくお願いします。

[ 続きを読む]  返信件数:1件  [ 動画を見る] 

[7869] エクセルマクロの全体像

ゲストさんからの投稿です。

マクロは以前活用していたんですが、仕事で使わなくなってからは遠ざかっていました。
この際、復習のつもりで極めてみたいと思いました!よろしくお願いいたします!

[ 続きを読む]  返信件数:1件  [ 動画を見る] 

[7864] エクセルマクロの全体像

ゲストさんからの投稿です。

仕事で毎月、月末に、数軒ですが、電気、水道料金、動力費のテナント請求書を更新、作成するのに時間が 掛かっています。
マクロを学んで、スピーディーな仕事をしていきたいと思います。
これからもお付き合いのほど よろしくお願いいたします。
この機会に、勉強して、VBAエキスパートの資格の取得を目指します。
                                        以上
                                  タンポポ2。

[ 続きを読む]  返信件数:1件  [ 動画を見る] 

[7863] 複数の記号の位置を調べて文字列を切り出す

藤村英夫さんからの投稿です。

とても分かりやすいです。

[ 続きを読む]  返信件数:1件  [ 動画を見る] 

[7860] エクセルマクロ・VBAを利用するための推奨設定 - VisualBasicEditorの初期設定

沼尾 亮さんからの投稿です。

実施の操作で一つずつの設定を教えてくれるので助かります。

[ 続きを読む]  返信件数:1件  [ 動画を見る] 

[7855] 動的配列_3

平吹 敦史さんからの投稿です。

お世話になっております。発展編1に引き続いてよろしくお願いします。
Chap02-41の演習で以下がどうしても理解できません。

Sub sample6() '静的二次元配列
Dim vList(1, 32) As Variant
Dim cnt As Long
For cnt = 0 To 32
vList(0, cnt) = Range("G2").Offset(cnt).Value
vList(1, cnt) = Range("H2").Offset(cnt).Value
Next

For cnt = LBound(vList, 1) To UBound(vList, 1)
Range("A2").Offset(cnt).Value = vList(0, cnt)
Range("B2").Offset(cnt).Value = vList(1, cnt)
Next

End Sub


Sub sample6() '静的二次元配列
Dim vList(1, 32) As Variant
Dim cnt As Long
For cnt = 0 To 32
vList(0, cnt) = Range("G2").Offset(cnt).Value
vList(1, cnt) = Range("H2").Offset(cnt).Value
Next

For cnt = LBound(vList,2) To UBound(vList, 2)
Range("A2").Offset(cnt).Value = vList(0, cnt)
Range("B2").Offset(cnt).Value = vList(1, cnt)
Next

①と②の違いはLBoundとUBoundの第二引数だけです。
左から数えて二次元目だから引数に2を入れるとのことですが、なぜ実行すると、
①は2行2列だけ(0と1)の反映になるのかが理解できません。

1次元目の最小値は0で最大値も32ではないのでしょうか?

よろしくお願いします。

[ 続きを読む]  返信件数:3件  [ 動画を見る] 

[7853] エクセルマクロ・VBAを利用するための推奨設定 - VisualBasicEditorの初期設定

左藤公一さんからの投稿です。

excel2013でのリボンにtoolタブを設定する手順が判らない。

[ 続きを読む]  返信件数:1件  [ 動画を見る] 

[7849] 基礎講座第4章7 - 「If文」の実習

受講生さんからの投稿です。

お世話になっております。
先にお団子を作るやり方で、マクロ作成の順番がわかってきました。ありがとうございます。

For next構文 if文を使う場合、for next 構文が外側、if文が内側に来るという型で覚えて差し支え無いでしょうか?if文が外側に来ることもあるのでしょうか?

また、カテゴリ違いなのですが、
あるパスの特定のフォルダ、ファイルを開くというマクロはどのように書けばよろしいでしょうか?

どうぞよろしくお願い致します。

[ 続きを読む]  返信件数:1件  [ 動画を見る] 

[7848] エクセルマクロ研修の選び方2-カレーライスとパソコン1

受講生さんからの投稿です。

勉強させて頂いております。
非常に助かっていますが、この動画はずっと画面がぼんやりしているようです。

[ 続きを読む]  返信件数:1件  [ 動画を見る] 

[7845]

多和田 真也さんからの投稿です。

沖縄の多和田です。

質問させてください。

標準モジュールを他のエクセルブックに移管するとき、VBEの「ファイルのインポート」から
移管する操作をするのですが、これをマクロ化して、複数のブックに一括で移管することは
可能でしょうか?

どうぞよろしくお願いいたします。

[ 続きを読む]  返信件数:1件  [ 動画を見る] 

[7843] 投稿するプログラムを [code] ... [/code] で囲う

受講生さんからの投稿です。

 ... 

で囲っていただけると? 初心者には、わからん。

[ 続きを読む]  返信件数:1件  [ 動画を見る] 

[7837] 基礎講座第1章11 - テストの方法

受講生さんからの投稿です。

ブレークポイントの説明とてもわかりやすかったです。ありがとうございます。

ところで、

マクロ実行を中断したい場合の「リセット」ですが、ショートカットキーはあるでしょうか?

ネットで調べてみたところ、
CTRL+PAUSE(BREAK)キー という記載が多くありました。

自分の環境で試したところ、
PC1(Windows10+Excel2010) → PAUSE/BREAKキーはあるが、CTRL+PAUSE(BREAK)キーでは中断できず。
PC2(Windows7+Excel2010) → PAUSE/BREAKキー が見当たらない
でした。

いずれも、F8キーを押している最中に試しましたが、
・F8キーでステップ実行中に、途中でやめたいとき、
・F5キーで実行して無限ループしているようなとき、
マクロ実行を強制中断できるショートカットキーがあれば教えてください。

[ 続きを読む]  返信件数:3件  [ 動画を見る] 


各講座ごとのメッセージを見る場合はこちら

まずはここから!スマホでも学べる無料動画講座

今なら先着30名限定で無料!定価4,800円の、初心者のためのエクセルマクロ動画講座。
  1. Excel 97~Excel 2016まですべて対応。動画本数20本、総再生時間2時間44分53秒
  2. PC, Mac, iPhone, iPad, Androidのお好みの環境で、いつでも好きなときに学べます。
2004年から10年間述べ3,000名以上に実施した研修の経験と実績を集約した講座です。
いますぐ無料で試してください。

トップへ