- ベストアンサー
「Excel VBA」の事でお伺いします。
「Excel VBA」の事でお伺いします。 1、ExcelVBEで「ユーザフォーム」を挿入する。 2、出来る「ユーザフォーム」は「モーダルダイアログ」で「タイトルバー」付です。 3、これを「モードレスダイアログ」に変更するにはプロパテイの変更で出来るのですが。 4、「タイトルバー」の無い形に変える方法が分かりません。 5、目的はユーザによる「ユーザフーム」を移動・サイズ変更させたくないわけです。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
行(列)番号に対する特別なイベントはありませんが、 それに対してどのようなイベントを使いたいのでしょうか。 例えば、行(列)番号をクリック選択した時のイベントであれば SheetのSelectionChangeイベントで代用はできます。 下記のコードで、 行番号クリック(ドラッグして複数行) 列番号クリック(ドラッグして複数行) セル範囲選択など試してみてください。 '------------------------------------------------------ Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Columns.Count = Columns.Count Then MsgBox Target.Address(0, 0) & " 行を選択しました" ElseIf Target.Rows.Count = Rows.Count Then MsgBox Target.Address(0, 0) & " 列を選択しました" Else MsgBox Target.Address(0, 0) & " のセル範囲を選択しました" End If End Sub '---------------------------------------------------- 何れにしろ、行(列)番号に対してどのようなイベントを使いたいのか提示した方がいいでしょう。 さすれば、いろいろな案が回答されることでしょう。 以上です。
その他の回答 (3)
- end-u
- ベストアンサー率79% (496/625)
>今回の質問に関連するのですが、... 直接関連するとは思えません..? ExcelVBA関連と言えばまあそうなんですが。 行高の変更や挿入|削除に関するイベントはありません。 簡易的にMSForms.FrameコントロールのLayoutイベントが使えます。 http://excelfactory.net/excelboard/excelvba/excel.cgi?mode=all&namber=139591&rev=0 ここで提示されているサンプルに加え Workbook_Deactivateイベントの制御なども必要かと思います。
お礼
早速のご指導ありがとうございます。 今回ExcelVBAを組む事になりました、 AccessVBA、Cは少し経験が有りますがExcelVBAは初めてです。 サンプルも含め、関連事項をもう少し勉強させて下さい。
- end-u
- ベストアンサー率79% (496/625)
よく参照される定番サイトですが http://homepage2.nifty.com/kmado/kvba.htm ここの 『E03M130 ユーザーフォームのタイトルバー非表示』 Tipsを参考にさせてもらうと良いでしょう。 WindowsAPI関数を使いますから全く理解できないようであれば むやみに使用されない方が良いと思います。 ただ、 >目的はユーザによる「ユーザフーム」を移動・サイズ変更させたくないわけです。 この目的だと、タイトルバーを非表示にするだけでは不足ですし、 『移動・サイズ変更』を制限するだけなら タイトルバーを非表示にしなくてもある程度は可能です。 UserForm_Layoutイベントについて調べてみてください。
補足
「UserForm_Layoutイベント」を教えて頂きありがとうございます。 今回はこれで行こうと思います。 「WindowsAPI関数」はC言語から使用した経験が有りますが、ExcelVBAからは経験が有りません。 今回の質問に関連するのですが、下記の事項もお願い出来ませんか。 シートに自動で表示される左端の数字の行数字の部分に関するイベントは有るのですか? (セルの部分に関するイベントは知っているのですが?)
- hoiho1010
- ベストアンサー率11% (13/113)
補足
「ユーザーフォームの右上の[×ボタン]を無効にするには?」 は参考になりました。 ありがとうございました。 最初から[×ボタン]を表示しない方法はあるのでしようか?
お礼
早速の指導ありがとうございます。 Worksheet_SelectionChange() 再度挑戦します。 目的 行番号をクリックした時その行に有る複数セルの情報をユーザフォームのコントロール(テキスチ、コンボ)に転記する 以前不都合の状況 (1)情報が正確に転記出来ない場合が有った。 (2)画面がスクロールする。 (3)イベントが複数回起こる様な感じがする。 等であきらめていました。