エクセルマクロ オンライン講座コメント紹介

コメント紹介
   └ エクセルマクロ・VBA発展編1
       └ 発展1講座イントロダクション - 使用するファイル、PDFの確認

発展1講座イントロダクション - 使用するファイル、PDFの確認

[11266] 2019-03-17 09:26:58 受講生さんからの投稿です。

発展2の配列についての質問です。DVDにて講座購入済みです。
Sub GetZangyoList_Array()
Dim st As String
Dim cnt As Long
Worksheets("残業3").Activate
Dim stAry(5) As String
stAry(0) = "jan"
stAry(1) = "Feb"
stAry(2) = "Mar"
stAry(3) = "Apr"
stAry(4) = "May"
stAry(5) = "Jun"

For cnt = 0 To 5
st = stAry(cnt)
Next
For cnt = 0 To 5
Debug.Print st
Next
End Sub

発展2 テキスト24P
この場合stにはjunのままでPrintされます。配列はFor Next構文内のみ有効で構文外は配列はたとえモジュール変数にしても数値は保持されないと考えてよいのでしょうか。尚、この場合はLBound 関数UBound関数を使用する必要があると考えてよいのでしょうか。

 


[11275] 2019-03-19 07:26:11 小川慶一さんからの投稿です。

受講生 さん:

おひさしぶりです。

> 配列はFor Next構文内のみ有効で構文外は配列はたとえモジュール変数にしても数値は保持されないと考えてよいのでしょうか。
> 尚、この場合はLBound 関数UBound関数を使用する必要があると考えてよいのでしょうか。

質問の趣旨がわかりません。
「配列はFor Next構文内のみ有効で」からです。よって、後続するすべての文章が解釈しようがありません。なので、回答不能です。

ご自身でサンプルコードを書き、試したうえで、再度ご質問ください。
その際は、動作検証に使ったマクロをそれを含むエクセルファイルごと添付してください。

よろしくお願いします。



> 発展2の配列についての質問です。DVDにて講座購入済みです。
Sub GetZangyoList_Array()
Dim st As String
Dim cnt As Long
Worksheets("残業3").Activate
Dim stAry(5) As String
stAry(0) = "jan"
stAry(1) = "Feb"
stAry(2) = "Mar"
stAry(3) = "Apr"
stAry(4) = "May"
stAry(5) = "Jun"

For cnt = 0 To 5
st = stAry(cnt)
Next
For cnt = 0 To 5
Debug.Print st
Next
End Sub

> 発展2 テキスト24P
> この場合stにはjunのままでPrintされます。
> 配列はFor Next構文内のみ有効で構文外は配列はたとえモジュール変数にしても数値は保持されないと考えてよいのでしょうか。
> 尚、この場合はLBound 関数UBound関数を使用する必要があると考えてよいのでしょうか。
>

 


[11282] 2019-03-20 07:13:03 井上 聡さんからの投稿です。

ファイルに内容を入力しました。
よろしくお願いします。

 


[11285] 2019-03-20 21:56:04 小川慶一さんからの投稿です。

井上 聡さん:

コード、拝見しました。
以下のものですね。

Option Explicit
Private st As String '(B)
Private cnt As Long
Sub GetZangyoList_Array3()
'    Dim st As String’(A)
'    Dim cnt As Long
    Worksheets("残業2").Activate
    Dim stAry(5) As String
    stAry(0) = "jan"
    stAry(1) = "Feb"
    stAry(2) = "Mar"
    stAry(3) = "Apr"
    stAry(4) = "May"
    stAry(5) = "Jun"
    
    For cnt = 0 To 5
        st = stAry(cnt)
       ' Debug.Print st'(C)
    
    Next
    For cnt = 0 To 5
        Debug.Print st
    Next
    'For cnt = LBound(stAry) To UBound(stAry)'(D)
'        st = stAry(cnt)
'        Debug.Print st
'    Next


End Sub
'(A)ローカル変数場合、stの値はJunのままになります。
'(B)モジュールレベル変数の場合でもstの値はJunのままになります。
'(C)(D)の場合、For Nex構文内ではstの配列の値は6種類表示されます。
'(質問)
'配列はを代入した値は変数の範囲にかかわらず、構文内でしか保持されないのかということです。


コメント11266にあったコードとは違いますね。
コメント11266にあったコードのことは忘れて、今回いただいたコードだけを使って、コード下部にあった以下のご質問について回答しますね。

>(質問)
>配列はを代入した値は変数の範囲にかかわらず、構文内でしか保持されないのかということです。

...とできれば言いたいところなのですが、

「配列はを代入した値は」というのが「配列は」なのか「配列を」なのか分からないので、以前として回答不能です。
質問文を再整理してまた投稿してください。

また、以前からお伝えしていることですが、こういう推敲不足な質問文は極力送付されないようお願いします。
回答者にとって非常に負担です。そのことは、回答者にとっても、あなたにとっても、デメリットです。

回答者にとっては、前述のとおり、非常に負担です。
いちいちこういうことを書かなければならないからです。

あなたにとっても、何度もやりとりするコストが発生しますし、いちいちこんなこと言われたくないでしょう。

よろしくご協力ください。

> ファイルに内容を入力しました。
> よろしくお願いします。

 


[11288] 2019-03-22 06:01:45 井上 聡さんからの投稿です。

毎度申し訳ありません。朝が勉強時間なものでついチェックもれです。
講座がガラパゴススタディーにあればよいのですが、別の通信講座で、AccessVBAのADOを勉強中です。配列が出てきて復習しています。
発展2のテキストの巻末に問題があります。質問してもよいのでしょうか。よいのであればその際はよろしくお願いします。

 


[11289] 2019-03-22 09:30:57 小川慶一さんからの投稿です。

井上 聡さん:

> 毎度申し訳ありません。朝が勉強時間なものでついチェックもれです。

くりかえしの失敗の理由としては弱いです。
であれば、たとえば、朝に質問をドラフトしても、すぐに投稿せず、半日~ひと晩置いて、改めて読み直してみることですね。

> 発展2のテキストの巻末に問題があります。質問してもよいのでしょうか。よいのであればその際はよろしくお願いします。

発展2の演習については、アンケート回答者限定で解答解説動画をさしあげています。
事務局からアンケートのURLを送付させますね。

添付ファイルは追って拝見します。

 


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

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

トップへ