お世話になっております。
Microsoft Spreadsheetコントロールを使い、
エクセル表風にデータを表示する画面を作成しています。
MS(H)FlexGridでは、項目名がグレーになって、入力が
出来ない(直接データにも書けませんでしたが)ですが、
Microsoft Spreadsheetコントロールでも、左と上に項目名を
設けたいのですが、そのまま実行すると、項目名にも入力が
出来てしまいます。(項目としての設定方法が分かりません)
シート自体を保護を有効にすると、毎回入力時にダイアログボックスで
「変更〜読取専用です。」と表示されてしまいます。
理想は、項目とするセルは入力不可、もしくは、全セル入力不可(表示のみ)で、
「変更〜読取専用です。」ダイアログ非表示は可能でしょうか?
環境は、Win2000、VB6です。
良い方法があれば、教えて下さい。
よろしくお願いします。
シート保護を有効にする前に、RangeオブジェクトのLockedプロパティを使って、入力可能な範囲と、入力できない範囲とを指定しておく事を忘れずに。
> 左と上に項目名を設けたいのですが
こんな感じにしてみるとか。
Private Sub Form_Load()
Dim Win As Window
Dim Heads As Headings
Spreadsheet1.DisplayToolbar = False
Spreadsheet1.DisplayTitleBar = False
Set Win = Spreadsheet1.ActiveWindow
Win.DisplayWorkbookTabs = False
Win.ViewableRange = "A1:C5"
Win.DisplayHorizontalScrollBar = False
Win.DisplayVerticalScrollBar = False
Win.DisplayColumnHeadings = True
Set Heads = Win.ColumnHeadings
Heads(1).Caption = "壱"
Heads(2).Caption = "弐"
Heads(3).Caption = "参"
Win.DisplayColumnHeadings = True
Set Heads = Win.RowHeadings
Heads(1).Caption = "One"
Heads(2).Caption = "Two"
Heads(3).Caption = "Three"
Heads(4).Caption = "Four"
Heads(5).Caption = "Five"
Set Heads = Nothing
Set Win = Nothing
End Sub
魔界の仮面弁士殿>いつも回答ありがとうございます。
本当、初心者で申し訳ありません。
プロパティとか、いじって試すしかありませんでした。
プロパティのセルのロックというのは試したのですが、
変化が見られない、または、シート全体にかかってるように
見えましたもので。
そこで、恥ずかしながら、上記ソースを丸写しで実行したところ、
Dim Win As Window
Dim Heads As Headings
ASのあとに、WindowとHeadingsが一覧に無いので、
「コンパイルエラー:
ユーザー定義型は定義されていません。」
と表示され、実行できませんでした。
Form_load()以外での定義や、Microsoft Spreadsheet以外に、
必要なコンポーネントなどがあるのでしょうか?
是非、よろしくお願いいたします。
> プロパティとか、いじって試すしかありませんでした。
ヘルプも見てくださいね。
あとは、このあたりとか。
http://support.microsoft.com/default.aspx?scid=kb;ja;319793
> ASのあとに、WindowとHeadingsが一覧に無いので、
バージョンが9.0(2000)だと使用できません。
10.0(2002/XP)または11.0(2003)で試してみてください。
魔界の仮面弁士殿>
Office(Excel)は、現在2000です。
残念ながら、環境Upが必要なのですね。
すぐにとはいきませんので、例文のソースは大事に残しておきます。
ヘルプもかなり印刷したりして見てますが、使用例が載っている
ステートメント関係は分かり易いのですが、使用例が無いとなかなか…。
もう少し、勉強してみます。
今後ともご指導お願いいたします。
ありがとうございました。