まりふのひと

Excel-VBAで選択したセルが判るようなフォーム・コントロールを作るには...

 Excelで、「セルを選択しておきマクロを呼び出す」ことは、マクロを作っている人には簡単な操作であるが、これを「家計簿77」で定常化するには問題がある‥‥ と、思っている。では、どうするか‥‥ で、ググっていたら Office TANAKA に...

  • セルを参照するボタン
     上図のように、処理の対象とするセル範囲をユーザーに選択してもらいたい場合があります。表示しているコントロールは、Excelの標準機能でよく使われていますので、ビギナーが操作するときでも理解しやすいでしょう。ちなみに、テキストボックスの右にある、クリックするとダイアログボックスが小さくなるボタンの正式名称は[ダイアログ最小化]ボタンです。
    この[ダイアログ最小化]ボタンを持つコントロールの正体は RefEditコントロールです。UserFormで使うには次のようにします。
    1. VBEで[ツールボックス]ツールバーの余白を右クリックする
    2. 表示されるショートカットメニューで[その他のコントロール]をクリックする
    3. [コントロールの追加]ダイアログボックスで「RefEdit.Ctrl」をオンにする
    4. [OK]ボタンをクリックする

     こうして[ツールボックス]ツールバーに追加した RefEditは、その他のコントロールと同じように UserForm上で使用できます。

     上記の方法で追加したRefEditコントロールは、Excelとは関係ない外部のコントロールですから、Excelで使われているアイコンが表示されなくてもしかたありません。また、外部のコントロールということは、万が一 RefEditコントロールがインストールされていないパソコンでは、この UserFormを使うことはできないという不安もあります。



 後半の「〜不安もあります」が気になったので、Windows8.1/Excel2007 を起動して調べたら、既にチェックが入っており表示されていた。(右図は Excel2010)


 早速 フォームを作成、実行してみたら、右図のように “シート名!絶対番地” で表示された。

引き続きイベントプロシージャを作成,

Private Sub cmdOK_Click()

    If refAddress.Text = "" Then
        Call cmdCancel_Click
        Exit Sub
    End If
    Unload frm解析
    STRAns = refAddress.Text
    BOOLAns = run費目明細表示(STRAns)
    
End Sub

作成途中だった Function につないで 完成させた 

(だってさぁ、ここまで来るのに一週間掛かったのだもん‥‥)