ワークシート名 sename(変数)の指定の範囲に罫線(格子と外周太字)を設定したいのですが、ワークシートとRangeを指定すると「ワークシート定義またはオブジェクト定義のエラーです」と表示され、この罫線を引く前に「Worksheets(sename).Activate」又は「Worksheets(sename).Select」を指定しても先頭のワークシート「インデックス」の範囲に罫線を引いてしまいます。(分かりずらかったらすいません・・・。)
同じような事が起きたことがなく困惑しています。
解決策と今後の為に原因を知りたく質問させていただきました。
以下がそのコードです。
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean) Dim EROW As Long Dim Row As Long Dim col As Long Dim log As String Dim Run As Integer EROW = Cells(Rows.Count, 2).End(xlUp).Row Row = Target.Row col = Target.Column If Row <= EROW And Row > 5 And col = 2 And Cells(Row, 2).Interior.ColorIndex = 34 Then If Cells(Row, 5) = "" Then MsgBox "記録日が記載されていません。" Exit Sub End If Run = MsgBox("この書籍を書籍一覧へ移動しますか?", vbYesNo + vbQuestion, "確認") If Run = vbYes Then Dim WB As String Dim path As String Dim cate As String Dim rowcate As Long Dim colcate As Long Dim Bcate As Long Dim Bname As String Dim sename As String Dim zyaname As String Dim tgtsheet As String Dim PRow As Long path = ThisWorkbook.path WB = ThisWorkbook.name cate = Cells(Row, 2) tgtsheet = Cells(Row, 4) i = 1 Do While Cells(i, 9) <> "規 則" i = i + 1 Loop rowcate = i - 1 colcate = Cells(6, Columns.Count).End(xlToLeft).Column Bcate = Range(Cells(9, 9), Cells(rowcate, colcate)).Find(cate).Column zyaname = Cells(6, Bcate) sename = "書籍一覧(" & zyaname & ")" Bname = "書籍記録(" & Cells(6, Bcate) & ").xlsx" Workbooks.Open path & "\" & "書籍記録" & "\" & Bname '指定のワークブックを開く Workbooks(WB).Worksheets(tgtsheet).Tab.ColorIndex = xlNone Workbooks(WB).Worksheets(tgtsheet).Move After:=Workbooks(Bname).Sheets(Worksheets.Count) '読書データのブックを移動 Workbooks(Bname).Close savechanges:=True '変更を保存して閉じる PRow = Workbooks(WB).Worksheets(sename).Cells(Rows.Count, 2).End(xlUp).Row '貼り付け先のリスト最終行 Worksheets("インデックス").Range(Cells(Row, 2), Cells(Row, 7)).Cut Destination:=Worksheets(sename).Cells(PRow + 1, 2) 'インデックスからコピペ Worksheets("インデックス").Range(Cells(Row, 2), Cells(Row, 8)).Delete shift:=xlShiftUp '切り取った部分を削除して上にシフト Range(Cells(4, 1), Cells(105, 8)).Borders.LineStyle = xlContinuous '格子作成 Range(Cells(4, 1), Cells(105, 8)).BorderAround Weight:=xlThick '周囲太枠 Worksheets(sename).Select '''''''''ここです! Worksheets(sename).Range(Cells(3, 1), Cells(102, 7)).Borders.LineStyle = xlContinuous '格子作成 Worksheets(sename).SelectRange(Cells(102, 1), Cells(102, 7)).BorderAround Weight:=xlThick '周囲太枠 Else MsgBox "移動を中止しました。" End If End If End Sub
該当箇所に「ここです!」とコメントを入れさせていただきました!
よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/01/23 09:15
2021/01/23 09:35
2021/01/23 10:56
2021/01/23 11:01
2021/01/23 11:05