advanced help
per page, with , order by , clip by
Results of 1 - 1 of about 2816 for 入力規則 (0.005 sec.)
[[20130703140541]]
#score: 4285
@digest: 6ff9b4b07b4bf3a217866d0ce6594dcd
@id: 62839
@mdate: 2013-07-05T01:54:23Z
@size: 3666
@type: text/plain
#keywords: 補表 (20624), dicsheetname (18595), dicrangeaddress (18595), 力候 (13938), 要処 (13266), 護下 (10139), 目リ (7862), 理不 (6731), 護設 (6607), 則設 (6176), userinterfaceonly (5285), 示= (4613), validation (3902), ト保 (3817), 取消 (3279), 候補 (2793), 保護 (2753), 護解 (2390), 示( (1831), 辞書 (1739), 力規 (1547), enableevents (1396), 規則 (1246), 科目 (1223), ロ内 (1075), 記憶 (1011), 無効 (928), 残念 (877), function (828), 用者 (763), 拝借 (722), 入力 (704)
『シートの保護をかけるとVBAが実行時エラーになる』(でめたん)
こちらの掲示板よりコードを拝借して、以下のマクロ内容で「科目リスト」を表示できるようにし、シート1〜10まで同じ仕様で作りました。 他の使用者が数式があるセルを変更できないように「シートの保護」の「ロックされていないセルの選択」にチェックし保護を設定後、 VBA設定セル部分に入力しようとすると「アプリケーション定義またはオブジェクト定義エラー」が出てしまいます。 ============ 「シートオブジェクト」 Private Sub Worksheet_Change(ByVal target As Range) 'DicSheetNameは辞書のシート名、 'DicRangeAddressは辞書の範囲を指定する ' Const DicSheetName = "勘定科目リスト" Const DicRangeAddress = "A" '※入力セル以外の変更は無視 If Intersect(target, Range("B10,B12,B14,B16,B18")) Is Nothing Then Exit Sub If target.Count > 1 Then '選択セルが2つ以上は無効 MsgBox "複数セル同時変更はサポートしません" & vbLf & "入力を取消し元に戻します" Application.EnableEvents = False Application.Undo Application.EnableEvents = True Exit Sub End If Application.EnableEvents = False If Not 入力候補表示(DicSheetName, DicRangeAddress, target) Then MsgBox "リストにない値の入力は無効です" & vbLf & "入力を取消し元に戻します" Application.Undo End If Application.EnableEvents = True End Sub 「標準モジュール」 Function 入力候補表示(Sh As String, Rg As String, Tg As Range) As Boolean Dim c As Range Dim v() As String Dim k As Long If Len(Tg.Value) = 0 Then 'クリア Tg.Validation.Delete 入力候補表示 = True 'OK Exit Function End If With Sheets(Sh) With .Range(Rg & "1", .Range(Rg & .Rows.Count).End(xlUp)) ReDim v(1 To .Count) For Each c In .Cells If c.Value Like Tg.Value & "*" Then k = k + 1 v(k) = c.Value End If Next End With End With If k = 0 Then Exit Function 'NG If k = 1 Then Tg.Validation.Delete Tg.Value = v(1) Else '入力規則のセット With Tg.Validation '入力規則を設定 .Delete .Add Type:=xlValidateList, Formula1:=Join(v, ",")←この行が黄色なっています .ShowError = False .InCellDropdown = True End With Tg.Select SendKeys "%{DOWN}" End If 入力候補表示 = True 'OK End Function ============ マクロの初心者なので、どこを修正すればエラーが出なくなるのでしょうか? 教えてください。 Excel2010/ WindowsXP ---- 参考ページ。 http://www.officepro.jp/excelvba/sheet_ope/index2.html 定数 UserInterfaceOnly をご覧くだされ。 (ROUGE) ---- ご返答ありがとうございます。 UserInterfaceOnlyを入れてみましたが、やはりエラーが同じエラーが出てしまいます。 シート保護設定をかけると、入力規則設定のVBAは使えないんでしょうか? (でめたん) ---- >シート保護設定をかけると、入力規則設定のVBAは使えないんでしょうか? 残念ながら入力規則の設定は(削除はOKだったと記憶)UserInterfaceOnly:=True の保護下では 処理不可能みたいね。 これが必要なら、 シート保護解除 必要処理 シート保護 こうせざるをえないねぇ。 (ぶらっと) ---- ぶらっと さん >残念ながら入力規則の設定は(削除はOKだったと記憶)UserInterfaceOnly:=True の保護下では >処理不可能みたいね。 やはりできないんですね。 >シート保護解除 >必要処理 >シート保護 のVBAを追加して、エラーが出ずに可能になりました。 ありがとうございました! (でめたん) ...
http://www.excel.studio-kazu.jp/wiki/kazuwiki/201307/20130703140541.txt - [detail] - similar
PREV NEXT
Powered by Hyper Estraier 1.4.13, with 97018 documents and 608144 words.

訪問者:カウンタValid HTML 4.01 Transitional