Applications)では、RangeプロパティでもColumnsプロパティでも列を選択することができます。以下のいずれのプロシージャでも、引数で指定した3列を選択できます。Subこのためでしょうか、RangeプロパティとColumnsプロパティの違いをよくわかってらっしゃらない方が少なくありません。rangeとcolumnsの違い」といった検索キーワードで、このサイト・インストラクターのネタ帳へのアクセスもあります。[スポンサードリンク]Selectメソッドを使ったときには、同じような選択状態になるためRangeとColumnsの違いがよく見えませんが、この2つはまったく別タイプのRangeオブジェクトを取得しています。RangeプロパティとColumnsプロパティの違いRangeプロパティでは個々のセルを表すRangeを単一オブジェクトとして持つRangeコレクションが取得できるのに対し、Columnsプロパティでは列全体のセルを表すRangeを単一オブジェクトとして持つRangeコレクションが取得できます。以下のSubプロシージャを実行すると、その違いが垣間見えます。「3」と、2回メッセージボックスが表示されます。1回目の「3145728」は、Range("A:C")で取得した、すべてのセルを表すRangeオブジェクトの数(.Count)です。1,048,576個(1列あたりのセルの個数)×3列で3,145,728個です。2回目の「3」は、Columns("D:F")で取得した、列を表すRangeオブジェクトの数です。こちらは1列が1個のRangeオブジェクトで、3列ですから3です。Each~Nextループを回すと、違いがより明確になります。Sub上記のColumnsプロパティでは、列が順番に選択され列のアドレスがメッセージボックスに表示される処理が3回だけ繰り返されるのに対し、以下のRangeプロパティで取得した場合は、個々のセルが選択されてセルアドレスが表示されながら、3145728回も繰り返されます。Subこのプロシージャは、3145728回もメッセージボックスが表示され続けることになりますから、何回かメッセージボックスが表示されてどのセルが選択されているかを確認したら、[Esc]を長押しするか、[Ctrl]+[Pause/Break]でプロシージャを強制終了させてください。本質的な違いは上記のとおりですが、現象面からは、列を非表示にするコードでも、RangeとColumnsの違いを確認できます。True」を非コメント化すると、実行時エラーが発生します。オブジェクト式解説編』を開催します。Officeの使い方などを紹介し続け(2012年頃からはVBA関連記事が多め)、毎日5万人の方にご覧いただいています。(2017.01.04)RangeクラスのHiddenプロパティを設定できません。