advanced help
per page, with , order by , clip by
Results of 1 - 1 of about 1215 for (Mook) (0.001 sec.)
[[20150216093421]]
#score: 9211
@digest: 2ef8082c716305a85ff4f68f2e151584
@id: 67282
@mdate: 2015-02-16T10:27:23Z
@size: 7936
@type: text/plain
#keywords: h1000 (31361), 告" (30937), 考! (30483), 意" (26451), 準! (25390), g1000 (23364), 索fo (19701), れ!! (15602), vbokonly (15588), 限切 (15272), vbcritical (12624), ト?@ (9890), コ- (9724), ttl (7677), (佐 (7198), シ- (5794), 藤) (5738), 葉様 (5673), 期限 (5332), title (4989), 稲葉 (4181), 警告 (4158), unprotect (4052), 近づ (3717), quit (2871), ト? (2812), displayalerts (2606), 佐藤 (2591), countif (2433), mystr (2340), msg (2233), protect (2200)
『範囲指定』(佐藤)
H列とG列の検索にてメッセ-ジを出しています。 検索範囲を指定したいのです。 検索範囲 G7:G1000 H7:H1000 下記のコ-ドをどのように書き換えればよいのでしょうか 宜しくお願いいたします。 Private Sub Workbook_Open() ActiveSheet.Unprotect Dim MyStr As String Dim r1 As Long 'H列の検索 For r1 = 1 To Cells(Rows.Count, 1).End(xlUp).Row MyStr = Range("h" & r1) If MyStr = "●" Then MsgBox "期限切れ!!", vbOKOnly + vbCritical, Title:="警告" Exit Sub End If Next r1 Dim r2 As Long 'G列の検索 For r2 = 1 To Cells(Rows.Count, 1).End(xlUp).Row MyStr = Range("g" & r2) If MyStr = "●" Then MsgBox "近づいています。", vbOKOnly + vbCritical, Title:="注意" Exit Sub End If Next r2 'エクセルを閉じる Application.DisplayAlerts = False Application.Quit End Sub < 使用 Excel:Excel2010、使用 OS:Windows7 > ---- >For r1 = 1 To Cells(Rows.Count, 1).End(xlUp).Row ここを、ForEach文に書き換えるとわかりやすいと思います。 r1の宣言をRange型に変更して Dim r1 As Range For Each r1 in Range("G7:G1000") If r1.Value = "●" Then Msgbox 〜〜省略 こんな感じに。 (稲葉) 2015/02/16(月) 09:52 ---- 良く見たら変なコードですね・・・ もし●がなかったら、今開いているエクセルすべて閉じちゃう処理ですけど それが望んでいるコードですか? (稲葉) 2015/02/16(月) 10:07 ---- Unprotect しっぱなしですけれど大丈夫でしょうか? ActiveSheet が変わっていたら大丈夫? などなどありますが、Find の別例で。 Private Sub Workbook_Open() ActiveSheet.Protect UserInterfaceonly:=True Dim r As Range Set r = Range("H2:H7000").Find("●", lookat:=xlWhole) If Not r Is Nothing Then MsgBox "期限切れ!!", vbOKOnly + vbCritical, Title:="警告" Exit Sub End If Set r = Range("G2:G7000").Find("●", lookat:=xlWhole) If Not r Is Nothing Then MsgBox "近づいています。", vbOKOnly + vbCritical, Title:="注意" Exit Sub End If 'エクセルを閉じる Application.DisplayAlerts = False Application.Quit End Sub って書いたけれど、Protect 変更する必要あったかな? (Mook) 2015/02/16(月) 10:14 ---- 確かに、UnProtectもイランきがしますね・・・ あとActiveSheetはやっぱりよしたほうがいいと思いましたので、Sheet名も追加で。 計算式案 Private Sub Workbook_Open() Dim msg As String Dim ttl As String If [COUNTIF(Sheet1!H7:H1000,"●")] > 0 Then msg = "期限切れ!!" ttl = "警告" ElseIf [COUNTIF(Sheet1!G7:G1000,"●")] > 0 Then msg = "近づいています。" ttl = "注意" End If If msg <> "" Then MsgBox msg, vbOKOnly + vbCritical, Title:=ttl Else Application.DisplayAlerts = False Application.Quit End If End Sub (稲葉) 2015/02/16(月) 10:28 ---- 稲葉様、Mook様 ありがとうございました。 タスクスケジュ-ラで毎日決まった時間に呼び出し 確認をします。 稲葉様へ 下記(←部分)のように書き換えてみましたが よろしいでしょうか Private Sub Workbook_Open() ActiveSheet.Unprotect Dim MyStr As String Dim r1 As Range ← 'H列の検索 For Each r1 in Range("H7:H1000") ← If r1.Value = "●" Then ← MsgBox "期限切れ!!", vbOKOnly + vbCritical, Title:="警告" Exit Sub End If Next r1 Dim r2 As Range ← 'G列の検索 For Each r2 in Range("H7:H1000") ← If r2.Value = "●" Then ← MsgBox "近づいています。", vbOKOnly + vbCritical, Title:="注意" Exit Sub End If Next r2 'エクセルを閉じる Application.DisplayAlerts = False Application.Quit End Sub >もし●がなかったら、今開いているエクセルすべて閉じちゃう処理ですけど それが望んでいるコードですか? ●がなければ、期限が近づいていないので閉じても問題ないですが Mook様へ コ-ドを作っていただきありがとうございます。 マクロ初心者で意味があまりよくわらないのが本音です。 申し訳ありません。 (佐藤) 2015/02/16(月) 10:33 ---- 検証しました。 稲葉様から記述いただいコ-ドだと エラ-表示が出てしましいました。 Mook様から記述いただいコ-ドだと 実行すると●表示あるなしに関わらず 開いて直ぐに閉じてしまいます。 最初に教えて頂いたコ-ドだと問題ないようでした。 Private Sub Workbook_Open() ActiveSheet.Unprotect Dim MyStr As String Dim r1 As Range 'H列の検索 For Each r1 in Range("H7:H1000") If r1.Value = "●" Then MsgBox "期限切れ!!", vbOKOnly + vbCritical, Title:="警告" Exit Sub End If Next r1 Dim r2 As Range 'G列の検索 For Each r2 in Range("H7:H1000") If r2.Value = "●" Then MsgBox "近づいています。", vbOKOnly + vbCritical, Title:="注意" Exit Sub End If Next r2 'エクセルを閉じる Application.DisplayAlerts = False Application.Quit End Sub どうなんでしょうか よろしくお願いいたします。 (佐藤) 2015/02/16(月) 11:04 ---- 稲葉様 勘違いしていました。 1ブックに シ-トは4つありまして 「リスト?@」「リスト?A」「参考」「基準」です。 (佐藤) 2015/02/16(月) 11:11 ---- 解決したの? 2015/02/16(月) 10:28 の投稿は試していただけましたか? (稲葉) 2015/02/16(月) 11:55 ---- 稲葉様 できました。 追加のシ-トの場合は このようでよろしいのでしょうか 宜しくお願い致します。 Private Sub Workbook_Open() Dim msg As String Dim ttl As String If [COUNTIF(リスト?@!H7:H1000,"●")] > 0 Then If [COUNTIF(リスト?A!H7:H1000,"●")] > 0 Then If [COUNTIF(参考!H7:H1000,"●")] > 0 Then If [COUNTIF(基準!H7:H1000,"●")] > 0 Then msg = "期限切れ!!" ttl = "警告" ElseIf [COUNTIF(リスト?@!G7:G1000,"●")] > 0 Then ElseIf [COUNTIF(リスト?A!G7:G1000,"●")] > 0 Then ElseIf [COUNTIF(参考!G7:G1000,"●")] > 0 Then ElseIf [COUNTIF(基準!G7:G1000,"●")] > 0 Then msg = "近づいています。" ttl = "注意" End If If msg <> "" Then MsgBox msg, vbOKOnly + vbCritical, Title:=ttl Else Application.DisplayAlerts = False Application.Quit End If End Sub (佐藤) 2015/02/16(月) 14:32 ---- >追加のシ-トの場合は >このようでよろしいのでしょうか 聞くくらいならやってみりゃいいじゃないですか。 エラーになりますから。 ●があればメッセージ出すなら、合計が1以上ってことですよね? なら全部足してから判断すればいいだけですよね? If [COUNTIF(リスト(1)!H7:H1000,"●")] + _ [COUNTIF(リスト(2)!H7:H1000,"●")] + _ [COUNTIF(参考!H7:H1000,"●")] + _ [COUNTIF(基準!H7:H1000,"●")] > 0 Then msg = "期限切れ!!" ttl = "警告" ElseIf [COUNTIF(リスト(1)!G7:G1000,"●")] + _ [COUNTIF(リスト(2)!G7:G1000,"●")] + _ [COUNTIF(参考!G7:G1000,"●")] + _ [COUNTIF(基準!G7:G1000,"●")] > 0 Then msg = "近づいています。" ttl = "注意" End If (稲葉) 2015/02/16(月) 15:04 ---- 稲葉様 おしかりの言葉、肝に命じます。 ありがとうございました。 思うようにできました。 感謝しております。 もう一点お願いいたします。 今のシ-ト 全てのシ-トに保護をかけ 一括でパスを入力する事で全て解除 解除状態で保存しても 開けた時には、保護がかかる そのような事は、できるでしょうか 宜しくお願い致します。 (佐藤) 2015/02/16(月) 16:34 ---- 考え方が逆で、閉じる(保存)ときにパスワードを掛ける、が一般的な考え方だと思います。 Workbook_Openイベントをご存知でしたら、BeforeSaveイベントはご存じありませんか? 保護については Worksheet.Protect メソッド でVBEのヘルプを検索してください。 「一括」で、は「繰り返し処理で一括に見せている」ことをご理解いただいたうえで、 For Eachを検索してみてください。 (稲葉) 2015/02/16(月) 18:00 ---- 稲葉様 何度もありがとうございます。 明日、職場で調べて 試みたいと思っています。 (佐藤) 2015/02/16(月) 19:27 ...
https://www.excel.studio-kazu.jp/wiki/kazuwiki/201502/20150216093421.txt - [detail] - similar
PREV NEXT
Powered by Hyper Estraier 1.4.13, with 97054 documents and 608267 words.

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