2010年11月11日

6.ユーザーフォーム上から、セル範囲を指定

 ユーザーフォームのコントロールが、セル範囲のアドレスを必要とする場合があります。「数値を合計するセル範囲」、「文字装飾を行うセル範囲」、「印刷するセル範囲」などなど、モーダルのユーザーフォームが表示されている状態で、セル範囲を指定するときは[ RefEditコントロール ]を使います。
 [ RefEditコントロール ]で指定したセル範囲を元に、何かしらの処理を行うときは、範囲を示す値の使い方を工夫する必要があります。 それは、[ RefEditコントロール ]でセル範囲を指定すると、一緒にワークシート名も、[ RefEditコントロール ]の[ Textプロパティ ]に含まれるためです。 例:[ RefEdit1.text ] は、 絶対アドレス[ Sheet1!$A$6:$F$13 ] を返します。
  •  ★  [ RefEditコントロール ]で、セル範囲を指定して使う



     文字列(ここではワークシート名も含まれたセル範囲名)をシート名とセル範囲に分けるため、 ワークシート関数の[ Find関数 ]を使っています。ワークシート名とセル範囲を示す文字列にある “!(アテンションマーク)”を探し文字列の先頭からの位置を求め、[ Lef関数 ]でワークシート名をあらわす文字までを分割する、 かなりキツメの乳酸マクロです。
     古いExcelのバージョンでは使えませんが、使っているバージョンが2000以上なら、すんなりと[ Split関数 ]で1次元配列に分けたほうが良いですね。
posted by くきお at 11:11| Comment(0) | ExcelVBAマクロ | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。