初めて投稿させて頂きます。
似たような投稿がありましたが、過去の例とは若干違うので投稿させて頂きました。
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で質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
【お題】NEW演歌
【大喜利】 若い人に向けたことは分かるけど、それはちょっと寄せ過ぎて変になってないか?と思った演歌の歌詞
-
秘密基地、どこに作った?
小さい頃、1度は誰もが作ったであろう秘密基地。 大人の今だからこそ言える、あなたの秘密基地の場所を教えてください!
-
ホテルを選ぶとき、これだけは譲れない条件TOP3は?
ホテルを探す時、予約サイトで希望条件の絞り込みができる便利な世の中。 あなたは宿泊先を決めるとき「これだけは譲れない」と思う条件TOP3を教えてください。
-
許せない心理テスト
私は「あなたの目の前にケーキがあります。ろうそくは何本刺さっていますか」と言われ「12本」と答えたら「ろうそくの数はあなたが好きな人の数です」と言われ浮気者扱いされたことをいまだに根に持っています。
-
【大喜利】【投稿~11/12】 急に朝起こしてきた母親に言われた一言とは?
【お題】 ・急に朝起こしてきた母親に言われた一言とは?
-
BorderクラスのLinestyleプロパティを設定できません
PowerPoint(パワーポイント)
-
エクセルに貼付けた写真の容量(何バイトなのか)を確認する方法はありますか?
その他(パソコン・スマホ・電化製品)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/12】 急に朝起こしてきた母親に言われた一言とは?
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・好きな「お肉」は?
- ・あなたは何にトキメキますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・チョコミントアイス
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・あなたの習慣について教えてください!!
- ・ハマっている「お菓子」を教えて!
- ・高校三年生の合唱祭で何を歌いましたか?
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・家の中でのこだわりスペースはどこですか?
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
EXCEL VBAマクロ中断でデバッグ...
-
実行時エラー 438になった時の...
-
Excel VBA UserFormについて
-
ADODB.Streamを使用してUTF-8を...
-
VBAがブレークモードになっ...
-
VBSで変数の宣言はできないので...
-
エクセルエラー13型が一致しま...
-
エクセルVBA グラフが描けない
-
エクセルVBA、フリーフォームで...
-
VBAでのMATCH関数
-
VBAのエラー発生場所をメッセー...
-
なぜこんな初歩的なVBAのIf文で...
-
なぜエラーになるのでしょうか...
-
実行時エラー3001「引数が間違...
-
VBで構造体を使うさ際の64k...
-
VBAのChrome操作のエラーについ...
-
マクロでオートシェイプ内の文...
-
[Delphi] データセットは閉じて...
-
ワードで「エラーブックマーク...
-
ISREF関数 使い方
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
実行時エラー 438になった時の...
-
エクセルエラー13型が一致しま...
-
なぜこんな初歩的なVBAのIf文で...
-
VBAがブレークモードになっ...
-
実行時エラー3001「引数が間違...
-
VBS実行時エラー オブジェクト...
-
【Excel VBA】マクロをボタンに...
-
マクロについて教えてください...
-
ExcelVBA Range クラスの Page...
-
VBSで変数の宣言はできないので...
-
VBAでのエラー
-
実行時エラー -'-2147417848
-
EXCEL VBAマクロ中断でデバッグ...
-
なぜエラーになるのでしょうか...
-
ADODB.Streamを使用してUTF-8を...
-
VBAのコードがエラーになっ...
-
Outlook.ApplicationをCreateOb...
-
VB6+SQL サーバー 2000 で 実行...
-
ExcelVBAで、ユーザー定義型は...
-
実行時エラー48発生時のDLL特定...
おすすめ情報