Microsoft Spreadsheetコントロールでの項目名等を入力禁止にするには?

解決


じんくん  2004-05-10 14:03:36  No: 113107  IP: [192.*.*.*]

お世話になっております。
Microsoft Spreadsheetコントロールを使い、
エクセル表風にデータを表示する画面を作成しています。

MS(H)FlexGridでは、項目名がグレーになって、入力が
出来ない(直接データにも書けませんでしたが)ですが、
Microsoft Spreadsheetコントロールでも、左と上に項目名を
設けたいのですが、そのまま実行すると、項目名にも入力が
出来てしまいます。(項目としての設定方法が分かりません)
シート自体を保護を有効にすると、毎回入力時にダイアログボックスで
「変更〜読取専用です。」と表示されてしまいます。

理想は、項目とするセルは入力不可、もしくは、全セル入力不可(表示のみ)で、
「変更〜読取専用です。」ダイアログ非表示は可能でしょうか?

環境は、Win2000、VB6です。

良い方法があれば、教えて下さい。
よろしくお願いします。

編集 削除
魔界の仮面弁士  2004-05-11 23:15:18  No: 113108  IP: [192.*.*.*]

シート保護を有効にする前に、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

編集 削除
じんくん  2004-05-12 09:19:57  No: 113109  IP: [192.*.*.*]

魔界の仮面弁士殿>いつも回答ありがとうございます。
本当、初心者で申し訳ありません。
プロパティとか、いじって試すしかありませんでした。

プロパティのセルのロックというのは試したのですが、
変化が見られない、または、シート全体にかかってるように
見えましたもので。

そこで、恥ずかしながら、上記ソースを丸写しで実行したところ、

    Dim Win As Window
    Dim Heads As Headings

ASのあとに、WindowとHeadingsが一覧に無いので、
「コンパイルエラー:
  ユーザー定義型は定義されていません。」
と表示され、実行できませんでした。
Form_load()以外での定義や、Microsoft Spreadsheet以外に、
必要なコンポーネントなどがあるのでしょうか?

是非、よろしくお願いいたします。

編集 削除
魔界の仮面弁士  2004-05-12 14:29:50  No: 113110  IP: [192.*.*.*]

> プロパティとか、いじって試すしかありませんでした。
ヘルプも見てくださいね。
あとは、このあたりとか。
http://support.microsoft.com/default.aspx?scid=kb;ja;319793

> ASのあとに、WindowとHeadingsが一覧に無いので、
バージョンが9.0(2000)だと使用できません。
10.0(2002/XP)または11.0(2003)で試してみてください。

編集 削除
じんくん  2004-05-13 09:38:15  No: 113111  IP: [192.*.*.*]

魔界の仮面弁士殿>
Office(Excel)は、現在2000です。
残念ながら、環境Upが必要なのですね。
すぐにとはいきませんので、例文のソースは大事に残しておきます。

ヘルプもかなり印刷したりして見てますが、使用例が載っている
ステートメント関係は分かり易いのですが、使用例が無いとなかなか…。

もう少し、勉強してみます。
今後ともご指導お願いいたします。
ありがとうございました。

編集 削除