- ベストアンサー
Excelマクロのエラーを修正する方法
- Excelマクロの作成時に矢印以外のあみかけや罫線がセルに表示されるエラーが発生しました。修正方法について教えてください。
- 修正方法を教えていただければ幸いです。マクロ初心者のため、詳細な手順をお願いします。
- Excelマクロを使って矢印のみを表示する方法について教えてください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
#私からの回答に寄せられたコメントや質問ではありませんので放置しようと思いました(コメントを受けた人が回答するのが筋ですし,それを横取りして回答するのも大層失礼な話ですからね)が。 #こう言っちゃ申し訳ないですが,任せておいて安心な方になら任せておきましたが。 エクセルもマクロもプロではありませんけど,少なくとも先に回答したとおり,ご質問で掲示されたマクロでは「エクセルのバージョンが変わろうが何だろうが,エラーは起こりません」し,「そのマクロを実行して何か変なゴミが余計にコピーされることもありません」というのが唯一の結論です。 もう一度行ってください: 1.まっさらのブックを用意します 2.あなたがご質問に掲示した「あなたがアヤシイと思った」マクロ2つを登録します 3.実行し,あなたの言う「エラー」が起こらないことを確認します。 そして次のステップとして: 4.あなたがご質問に掲示したマクロ以外のマクロで,試しにあなたが「Bookやコードを新しくしてみたが、エラーが表示されてしまう」が起こったほかのマクロを順繰り登録して,どれが悪さをしているのか見つけ出してください。
その他の回答 (2)
- emaxemax
- ベストアンサー率35% (44/124)
ひょとして、前からある既存の罫線や網掛けを消したいのでしょうか? ならば、 Dim TP, LF, WD の下に Selection.Borders.LineStyle = xlNone '追加 Selection.Interior.ColorIndex = xlNone '追加 を追加してみてください。
補足
ご回答くださったお二人共、本当にありがとうございます。 とてもゝ、嬉しかったです。 昨日、急ぎ会社より投稿させて戴きましたが、説明不足の為、補足を致します。 --- 【取扱いデータ】介護施設利用簿。 1.作成日時…約5年前。 2.記号…当所ショートステイ利用期間(点線右方向矢印)、外部ステイ利用期間(直線双方向矢印)を表している。○・●・×などでデイ利用を区別する。 3.日曜日には網掛けが施されている。 4.特徴…Bookには沢山の数式・記号・文字・オートシェイプが入っていて、Bookの使いまわしを繰り返している。 5.今回作成したマクロの数…9つ。 【昨日まで】 矢印のオートシェイプを横方向、任意の複数セルにマクロを使って線を引きたい。 任意のセルには、○や●、×、網掛け(日曜日)が入っている。 ホームページより、VBAをコピー&ペーストして、実行させた。その結果、Ver.2003ではエラーなし、OKだったがVer.2007、2010では選択範囲を複数にすると、セルの中に矢印の他にも○や罫線のかけらなどが入ってしまう。(新Ver.でも、セル1つではエラーなし。)こちらのアドバイスに従ってBookやコードを新しくしてみたが、エラーが表示されてしまう。 【使用パソコン】 ・Office2003…マクロを作成したPC。 ・Office2007…このファイルで開くと、エラーが出る。 ・Office2010…同上。 【私の考えと希望】 2003と2007、2010では、パソコンの感度が違ったり、VBAも少し違うのだろうか…とも思いました(良く分からない。)オートシェイプのマクロに関しては、私の提示したコードと違っても、エラーが出なければ一向に構わないです。 PCやVBAのプロフェッショナルの方々のご意見をお待ちしております。 また、問題の解決の際は、こちらに詳細にご報告致します。 どうか、宜しくお願い致します。<ciaoyeti>
- keithin
- ベストアンサー率66% (5278/7941)
ご質問で掲示されたマクロは,問題なく「矢印線を引く」だけの事しかしていません。 参考に,まっさらブックにこの2つのマクロを全く同じ内容で登録し,実行してみましょう。 #念のため マクロを登録する正しい方法: ブックを開く ALT+F11を押す 挿入メニューから標準モジュールを挿入する 「外部デイ利用」「認知デイ利用」の2つのマクロをコピーし貼り付ける シートに戻り,マクロを実行する。 何か違う事をしていたときは,間違いに応じて間違った結果になることがあります。 とりあえず今言えることは: >矢印以外のあみかけ、罫線などがセルに表示されてしまいます。 これは,ご質問で掲示されたマクロが直接の原因ではありません。 他のマクロが動いているのかも知れませんし,勘違いで違うマクロを動かしているのが原因かも知れません。条件付き書式などが作動しているのかも知れません。 問題のブックをよく調べるなり,あるいは動作の判っているごジブンで作成したまっさらブックを用意し,そちらでマクロを使います。
お礼
ご回答をありがとうございました。 どうしてもゝ、今回の疑問を解明したかったので、飛び込みでパソコン教室にデータを持ち込み、インストラクターにも質問をさせて戴きました。そうした所、次の様な答えを戴きました。 今回の問題は、画面の更新作業で解決しました。 Excelマクロの動作というのは、スクリーン画面に表示されるが、その裏ではPCがぐるぐると動いている状態のようです。そして、一連の流れの時に画面の更新のタイミングが約束されないと、マクロの動作の一部が画面に表示されてしまうそうです。(という言い方をしていました。) そこで、一時的に画面の更新をストップさせ、一連の処理を行い、処理が終わったタイミングで画面更新を再開させると良いそうです。 画面の更新のON・OFFはApplication.ScreenUpdatingで切り替えるそうです。 (1)Application.ScreenUpdating=False (2)Application.ScreenUpdating=True を次の箇所に挿入することで、○や罫線のかけらが出なくなりました。 (1)Sub 外部デイ利用() Dim TP, LF, WD TP = Selection.Top + (Selection.Height / 2.5) LF = Selection.Left WD = Selection.Width ⇒(1)を挿入 ActiveSheet.Shapes.AddLine(LF, TP, LF + WD, TP).Select Selection.ShapeRange.Line.Weight = 1# Selection.ShapeRange.Line.DashStyle = msoLineSolid Selection.ShapeRange.Line.BeginArrowheadStyle = msoArrowheadTriangle Selection.ShapeRange.Line.EndArrowheadStyle = msoArrowheadTriangle ⇒(2)を挿入 End Sub --- (2)Sub 認知デイ利用() Dim TP, LF, WD TP = Selection.Top + (Selection.Height / 2.5) LF = Selection.Left WD = Selection.Width ⇒(1)を挿入 ActiveSheet.Shapes.AddLine(LF + 6, TP, LF + WD, TP).Select Selection.ShapeRange.Line.BeginArrowheadStyle = msoArrowheadOval Selection.ShapeRange.Line.EndArrowheadStyle = msoArrowheadTriangle ⇒(2)を挿入 End Sub --- 今回、お二人のご回答はインストラクターとは違う方法でしたが、それは私の説明のせいであり、お二人のせいでは、決して、ありません。私は自分で4~5時間調べても分からなかったし、もうどうして良いか分からなかったので、救いの手を差し伸べてくださったお二人には尊敬と感謝の気持ちでいっぱいです。 私自身、もっとパソコンの勉強をしなくてはいけないな、と思いました。 又、機会がありましたら、どうか宜しくお願い致します。本当にありがとうございました。<ciaoyeti>