2009-06-16 8 views
0

背景の詳細​​ Activexのドロップダウン(コンボボックス)オブジェクトを持つExcelスプレッドシートがあり、利用できるオプションがわかります。私はデータ検証リストのドロップダウンがフォントサイズが小さすぎるため、多くの苦情を集めていたため、これを行いました。MS-Excel:ロックされたセル内のコンボボックスの値を表示する方法

だから私のソリューションは、ユーザーがオプションの範囲から選択できるようにするコンボボックスオブジェクトを追加することでした。しかし、コンボボックスをリンクされたcellプロパティを持つセルにリンクする必要があります。そのため、ユーザーとさまざまな数式の両方で何が選択されたかを確認できます。また、コンボボックスが使用されていないときに消えるように設定します(関連するセルを選択したときにのみデータ検証ドロップダウンボタンが表示されるのと同じように)。ここで

は問題です: 私は、ユーザーがリンクされたセルの値を編集したくないので、私はコンボボックスが選択されていない時はいつでもリンクされたセルがロックされていることを確認します

Private Sub comboBox1_GotFocus() 
    Call unlockComboBoxTargetCell(comboBox1) 
End Sub 

上記手順このん

If (targetComboBox.LinkedCell <> "") Then 
     Dim targetCell As Variant 
     Set targetCell = Range(targetComboBox.LinkedCell) 
     If Not targetCell Is Nothing And targetCell.Locked <> False Then 
      unlockSheet (activesheet.Name) 
      targetCell.MergeArea.Locked = False 
      lockSheet (activesheet.Name) 
     End If 
    End If 

同等の手順は、標的細胞をロックするために存在します。 Excelが青のうち、このエラーを与える:: は「あなたが変更しようとしているセルまたはグラフは保護されていますが、ブックの「名前を付けて保存」アクションを行うたび はしかし、リンクされ、ロックされたセルが問題を作成するようです読み込み専用... " このエラーは、ロックされている各セルについて約2〜3回現れ、コンボボックスのリンクセルです。

この問題を解決する良い方法はありますか?今、私の最善の解決策は、セルのロックを解除したままにして、データの検証をセルに置くことです。ユーザーがセルを編集すると、無効なものを入力するときに少なくとも拒否されます。私は、コンボボックスがリンクされたセルを選択されたときに隠蔽することを確かめることができますが、時にはその右側に非常に小さなドロップダウンボタンが付いた非常に大きな迷惑なコンボボックスを持つことを意味します。

おそらく、私はユーザーインターフェイスに関してあまりにも甘いのですか?

この長い記事を読んでいただきありがとうございます。あなたが作成した「lockSheet」の手順で

答えて

2

、「保護」するためのコードは、ワークシートがtrueに設定され、追加のパラメータ、UserInterfaceOnlyを、必要とします。

私はLockSheetサブがこのようなものだと思います。

sub lockSheet(strSheetName as string) 

    thisworkbook.sheets(strSheetName).Protect 

end sub 

これを試してみてください:

sub lockSheet(strSheetName as string) 

    thisworkbook.sheets(strSheetName).Protect, UserInterfaceOnly=True 

end sub 

UserInterfaceOnlyは、保護されたシートへのプログラムの変更を可能にします。

ビル

+0

ありがとうございました。私は前にそのオプションを見て覚えていますが、私はそれについて忘れてしまいました。 –

関連する問題