
初めて投稿させて頂きます。
似たような投稿がありましたが、過去の例とは若干違うので投稿させて頂きました。
Excel2007で罫線を引く下記の手順で処理を実行した所
実行時エラー '1004':
Border クラスの LineStyle プロパティを設定できません。
というエラーが発生してしまいます。
色々調査を行ってはみたのですが、具体的な解決策が見つかっておらず、
Excel2007のバグではないかと思って来ています・・・
解決策をご存知の方いらしゃったら、回答宜しくお願い致します。
再現手順 :
1.新規のBookに下記のマクロを設定してファイルを保存→閉じる
2.保存したファイルを開き直してマクロの実行→保存→閉じる
3.再度2を実行
4.再度2を実行→下記マクロの※1でエラー発生!!!
マクロ :
Private Sub Workbook_Open()
' 1.セルA1:E11を選択して選択したセルの内部縦線を点線にする。
Range(Cells(1, 1), Cells(11, 5)).Select
With Selection.Borders(xlInsideVertical)
.LineStyle = xlContinuous '※1
.Weight = xlHairline
End With
' 2.セルE1:E11を選択して選択したセルの左部縦線を実践にする。
Range(Cells(1, 5), Cells(11, 5)).Select
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.Weight = xlThin
End With
End Sub
※上記1と2の間に別処理が入る為、セルA1:D11と選択し、
右部縦線を実線にするという事は出来ません。
補足 :
1.Excel2007 SP2,Microsoft Visual Basic 6.5を使用
2.Excel2002 SP3だとエラーは発生しない
3.シートの保護等は行っていない
4.再現手順の3を実行中、Bookを閉じる前はセルの書式設定が反応するが、
マクロを無効にして、再度開き直すとセルの書式設定が反応しなくなる。
5.Workbook_Openの代わりにWorkbook_BeforeSaveで同様のマクロを設定し、
何度Saveを実行してもエラーにならない。
(再度開き直して、Saveを行うと同様のエラーが発生する。)
以上の事から、実線→点線→実線と繰り返した後に、Bookを閉じると
セルがおかしくなってしまっているのかなと思います。
長々と書いてしまい申し訳ありませが、もしかしたら・・・
という回答でも構いませんので、回答宜しくお願い致します。
No.4ベストアンサー
- 回答日時:
こんにちは。
With Range("A1:E11").Borders(xlInsideVertical)
.LineStyle = xlNone
End With
なるほどね。こちらとしては、罫線も書式ですから、ShapeのLineのように上書きされるわけではないはずですけれど・・・。それとも、xlInsideVertical が問題なのでしょうか?
どうも割り切れているわけではないのですが、オブジェクト自体が安定していないのでしょうか。同様のエラーとしては、ピボットテーブルの更新でも発生するようですが、どうも私としては分かりませんでしたね。お役に立てずにすみませんでした。
お疲れ様です。
そうなんですよね。
結局私もすっきりはしていないのですが、やはりxlInsideVerticalが悪さしてそうですね。
いえいえ色々参考にさせて頂きました。
大変感謝しています。
ひとまず、回答は締め切らせて頂きます。
また機会があったら、宜しくお願い致します。
No.3
- 回答日時:
こんばんは。
海外の掲示板を検索してみると、同じようなエラーが、Excel 2007 で発生しているようです。マイクロソフト・サポートにはまだ出ていませんでした。ただ、私が読んだ限りでは、どこにも解決が出ていないようですが、ちょっと発想の転換をしてみました。一度、試してみてください。
その根拠は、単独で、xlInsideVertical を使用するとエラーを発生させる原因がある可能性があるからです。いずれ、この件は、Microsoft 側からはっきりすると思います。
なお、こちらではExcel 2007 で試してみましたが、エラーが発生しておりません。
'-------------------------------------------
Private Sub Workbook_Open()
Dim cl As Variant
Dim wt As Integer
For Each cl In Worksheets("Sheet1").Range("B1:E11").Columns
If cl.Column = 5 Then
wt = 2
Else
wt = 1
End If
With cl.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.Weight = wt
End With
Next cl
End Sub
度々ありがとうございます。
回答遅くなってしまい、申し訳ありません。
海外の掲示板までは検索していませんでした。
これからの参考にさせて頂きます。
そこまでして頂き、ありがとうございます。
やはりExcel2007のバグっぽいですか・・・
早くサポートされると嬉しいですね。
こちらでも今日色々試してみたのですが、以下のように一度線を消すという処理を入れると
エラーが発生しなくなりました。
ひとまず、この方法でやってみたいと思います。
Private Sub Workbook_Open()
Worksheets("Sheet1").Select
With Range("A1:E11").Borders(xlInsideVertical)
.LineStyle = xlNone
End With
With Range("A1:E11").Borders(xlInsideVertical)
.LineStyle = xlContinuous
.Weight = xlHairline
End With
With Range("E1:E11").Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.Weight = xlThin
End With
End Sub
丁寧に回答して頂きありがとうございました。
No.2
- 回答日時:
こんにちは。
>コマンドボタンをSheet上に作成し、標準モジュール上で
>処理を行おうとしても、"保存→Bookを閉じる"という動作を行うと同じエラーが発生
なぜ、同じエラーが発生するのか良く分かりません。少なくとも、「保存→Bookを閉じる」というCommandButtonと、保存時のイベント(BeforeSave)とは関係ないのではありませんか?
私は、Openイベントの中身を、Call で、標準モジュールのマクロを呼び出すものというように考えていました。
ただ、一般論ですが、バージョンの違いでエラーが発生する場合は、以下のような対処をします。実際に、私は、Borders の引数は、長くこのように書いています。決して、臨時の書き方ではありません。
これでダメだったら、Workbook_Open()の下に、Stop と書いて、ステップモードにして、どの部分でエラーが発生する箇所を調べてみてください。
ところで、新規のブックにも同様になりますか?
これで原因が追求できないようですと、Class モジュールを使わなくてはならないと思います。(不確かですが、Micorosoft サポートにあったような気がします。)
'-------------------------------------------
Private Sub Workbook_Open()
Worksheets("Sheet1").Select
With Range("A1:E11").Borders(11)
.LineStyle = 1
.Weight = 1
End With
With Range("E1:E11").Borders(7)
.LineStyle = 1
.Weight = 2
End With
End Sub
再び回答ありがとうございます。
伝え方が下手ですいません。
CommandButtonの操作で行っているのは、Wendy02さんに記述していただいた
Worksheets("Sheet1").Select
With Range("A1:E11").Borders(11)
.LineStyle = xlContinuous
.Weight = xlHairline
End With
With Range("E1:E11").Borders(7)
.LineStyle = xlContinuous
.Weight = xlThin
End With
のみしか行っていないです。
CommandButtonの操作以外にはマクロを何も設定しない状態です。
CommandButtonのマクロを2回以上実行後に「保存→Bookを閉じる」を行うという事です。
LineStyle、Weightの指定に数字を使うのも試してましたが、駄目でした。
エラーになる箇所は、質問の所にも記入しましたが
With Range("A1:E11").Borders(11)
.LineStyle = xlContinuous
になります。
※新規のブックでも同様にエラーになります。
試して頂ければ再現できると思います。(何台かのPCで再現しているので)
Micorosoft サポートのClass モジュールについてはちょっと調べてみたいと思います。
ありがとうございます。
又何か分かる事があれば、回答お願い致します。
No.1
- 回答日時:
こんにちは。
まず、エラーそのものとは関係のないところから指摘します。
>実線→点線→実線と繰り返した後に、
どうみても、何度も繰り返すようなマクロではないような気がします。なぜ、Workbook_Open()イベントに登録したのでしょうか?一旦、罫線を引いたら、それでおしまいではないでしょうか?その罫線がないときに、罫線を引くということですが、Workbook_Open()イベントではなく、一般マクロにしたほうがよいのではありませんか?
Workbook_Open()イベントは、ローカルマクロ(特定のブックのみに適用される)ものですから、そのコードの中身自体は、「標準モジュール」に適しているとは思います。
ただ、書かれていない部分にエラーの原因があるかもしれませんが、現在のマクロに適用するものとして、書き換えてみました。たぶん、Range オブジェクトが正しく取れていないから、Border クラスのエラーが出たのではないか、と考えました。
'-------------------------------------------
Private Sub Workbook_Open()
Worksheets("Sheet1").Select
With Range("A1:E11").Borders(xlInsideVertical)
.LineStyle = xlContinuous
.Weight = xlHairline
End With
With Range("E1:E11").Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.Weight = xlThin
End With
End Sub
回答ありがとうございます。
説明不足で申し訳ありません。
Workbook_Open()イベントで行っている理由は、Bookを閉じる際には罫線を引く列が増えている可能性があり、
Bookを開いた際に線を綺麗に引き直したい為、Workbook_Open()イベントで処理を行うようにしています。
(実際にはA1:E11,E1:E11という箇所には変数【セルから取得】が設定されており、Bookを開く度に値が変わります。)
ただ今回は書かれていない部分に関係なく、掲載したマクロのみでも事象を再現出来るので、その辺りを省略してしまいました。
Wendy02さんに修正して頂いたマクロのみでもやはり、同じエラーが発生してしまいます。
ちなみにご指摘頂いた様に、コマンドボタンをSheet上に作成し、標準モジュール上で
処理を行おうとしても、"保存→Bookを閉じる"という動作を行うと同じエラーが発生します。
(ボタンを2回以上押して"保存→Bookを閉じる"という動作を行い、Bookを開き直しボタンを押すとエラー)
何か他に考えられる原因はあるでしょうか・・・?
もし何か分かったら回答お願い致します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2022/10/13 08:41
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Visual Basic(VBA) Excelのマクロコードについて教えてください。 1 2022/03/27 13:25
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/02/07 09:58
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/08/10 14:24
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/21 09:42
- Visual Basic(VBA) エクセルのマクロについて教えてください。 7 2023/07/04 09:18
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/03/08 09:08
- Visual Basic(VBA) エクセルのマクロとシートの保護について教えてください。 1 2022/10/18 08:36
- Excel(エクセル) エクセルのマクロについて教えてください。 2 2023/02/26 13:19
このQ&Aを見た人はこんなQ&Aも見ています
-
今年はじめたいことは?
今年はこれをはじめたい!ということを教えてください!
-
いちばん失敗した人決定戦
あなたの「告白」での大失敗を教えてください。
-
最強の防寒、あったか術を教えてください!
とっても寒がりなのですが、冬に皆さんがされている最強の防寒、あったか術が知りたいです!
-
あなたなりのストレス発散方法を教えてください!
自分なりのストレス発散方法はありますか?
-
泣きながら食べたご飯の思い出
泣きながら食べたご飯の思い出を教えてください。
-
BorderクラスのLinestyleプロパティを設定できません
PowerPoint(パワーポイント)
-
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
EXCEL VBAで全選択範囲の解除
Excel(エクセル)
-
-
4
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
5
VBAでループ内で使う変数名を可変にできないか。
Visual Basic(VBA)
-
6
Integer変数をカラにしたいのですが
Visual Basic(VBA)
-
7
マクロ実行時、ユーザーフォームにラベルのテキストが表示されません。
Access(アクセス)
-
8
ADO VBA 実行時エラー3021
Visual Basic(VBA)
-
9
excelのマクロで該当処理できなければ飛ばして進むにはどうすればよいのでしょうか
Visual Basic(VBA)
-
10
VBA 変数名に変数を使用したい。
Visual Basic(VBA)
-
11
Rangeメソッドは失敗しました。globalオブジェクトについて
Excel(エクセル)
-
12
Excel VBAにてソートが上手くいかない
その他(Microsoft Office)
-
13
マクロ実行後に別シートの残像が残り、オブジェクトが見えなくなる
Visual Basic(VBA)
-
14
【マクロ】名前を保存する際に、同じファイルがあった場合に、メッセージを表示
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・「これはヤバかったな」という遅刻エピソード
- ・初めて自分の家と他人の家が違う、と意識した時
- ・いちばん失敗した人決定戦
- ・思い出すきっかけは 音楽?におい?景色?
- ・あなたなりのストレス発散方法を教えてください!
- ・もし10億円当たったら何に使いますか?
- ・何回やってもうまくいかないことは?
- ・今年はじめたいことは?
- ・あなたの人生で一番ピンチに陥った瞬間は?
- ・初めて見た映画を教えてください!
- ・今の日本に期待することはなんですか?
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・【お題】大変な警告
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・最強の防寒、あったか術を教えてください!
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
実行時エラー 438になった時の...
-
マクロについて教えてください...
-
なぜこんな初歩的なVBAのIf文で...
-
VBAでのエラー
-
エクセルエラー13型が一致しま...
-
実行時エラー -'-2147417848
-
EXCEL VBAマクロ中断でデバッグ...
-
ExcelVBA Range クラスの Page...
-
VBAで実行時エラー'424' オブジ...
-
なぜエラーになるのでしょうか...
-
Accessで定型フォーマットのExc...
-
実行時エラー48発生時のDLL特定...
-
【Excel VBA】マクロをボタンに...
-
VBS実行時エラー オブジェクト...
-
VBAで、定数式が必要ですのエラ...
-
ExcelVBAで、ユーザー定義型は...
-
日本語環境下で作成したマクロ...
-
VBAがブレークモードになっ...
-
VB6+SQL サーバー 2000 で 実行...
-
VBで構造体を使うさ際の64k...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
実行時エラー 438になった時の...
-
なぜこんな初歩的なVBAのIf文で...
-
VBAがブレークモードになっ...
-
実行時エラー48発生時のDLL特定...
-
【Excel VBA】マクロをボタンに...
-
VBAでのエラー
-
マクロについて教えてください...
-
エクセルエラー13型が一致しま...
-
実行時エラー3001「引数が間違...
-
Outlook.ApplicationをCreateOb...
-
VBS実行時エラー オブジェクト...
-
VBSで変数の宣言はできないので...
-
実行時エラー -'-2147417848
-
ExcelVBA Range クラスの Page...
-
ExcelVBAで、ユーザー定義型は...
-
OLEDB.NETで接続できない
-
ADODB.Streamを使用してUTF-8を...
-
なぜエラーになるのでしょうか...
-
EXCEL VBAマクロ中断でデバッグ...
-
INSERT INTOステートメント構文...
おすすめ情報