• ベストアンサー

Excel エクセル で罫線のマクロ記録で困ってしまいました

エクセルであるチェックシートを作成しました。 チェック後にはセルに罫線からの「/」を挿入します。 (いつもはセルの書式設定から実施) この処理をマクロ登録し、ボタンから、「/」を 入れる処理を簡単にできるようにしました。 ところが、このボタンを押すと、 セルには「/」のみならず、「/」のまわりの「□」の枠まで 貼り付けされてしまいます。 (説明がわかりにくいかもしれません) これだと、一部が太線のセルに「/」を挿入する場合、 いちいち普通の線に変更するため、マクロを活用できておりません。 どなたかご存じの方宜しくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.4

細かい説明はしないので他に応用はききませんが、この手順通りにやれば必ずできると思うので参考にしてください。 使用ソフトはExcel2003です。 まず斜めの罫線を引くマクロの名前を確認してください。 ここでは説明のため「斜め罫線」というマクロを作ったとします。 次に「メニュー」→「ツール」→「マクロ」→「Visual Basic Editor」をクリックします。すると、マクロの中身を編集するための、Excelとは別のソフトが起動されます。 画面の左上に「プロジェクト」と書かれた小さなウィンドウがあります。見ると「標準モジュール」の下に「Module1」と書かれた項目があるのでダブルクリックします。 すると右側の大きなウィンドウに登録されている全てのマクロの中身(プログラム)が表示されます。マクロは「Sub マクロ名」という形で一つづつ書かれています。今回の例では「斜め罫線」というマクロを作成してあるので「Sub斜め罫線」と書いてある場所を探します。 すると以下のように書かれている筈です。 ------------------------------------------------------------ Sub 斜め罫線() ' ' 斜め罫線 Macro ' マクロ記録日 : 2008/3/21 ユーザー名 : rinet8223 ' ' Selection.Borders(xlDiagonalDown).LineStyle = xlNone With Selection.Borders(xlDiagonalUp) .LineStyle = xlContinuous .Weight = xlThin .ColorIndex = xlAutomatic End With Selection.Borders(xlEdgeLeft).LineStyle = xlNone Selection.Borders(xlEdgeTop).LineStyle = xlNone Selection.Borders(xlEdgeBottom).LineStyle = xlNone Selection.Borders(xlEdgeRight).LineStyle = xlNone End Sub ------------------------------------------------------------ With Selection.Borders(xlDiagonalUp)という部分が斜め線を書く処理なのですが、その下のEND Withという部分には、周りの線を消すという処理が勝手に書かれてしまっています。なので、END With以下の4行を削除してください。(End Withは消しちゃダメ) Selection.Borders(xlEdgeLeft).LineStyle = xlNone Selection.Borders(xlEdgeTop).LineStyle = xlNone Selection.Borders(xlEdgeBottom).LineStyle = xlNone Selection.Borders(xlEdgeRight).LineStyle = xlNone    (↑この4行を消します) 削除できたら、ファイルを保存します。 今はExcelとは別のソフトでマクロを編集しているので、Excelの保存ではなく、「Microsoft Visual Basic Editor」ウィンドウの保存をクリックしてください。保存できたら、「Microsoft Visual Basic Editor」を終了してください。 あとは再びマクロを実行すれば、周りの線が消えることなく、斜めの罫線が引けているはずです。 長くなってしまいましたが、わかりましたでしょうか?

kitreewood
質問者

お礼

ここまで詳しい解説をしていただいて、 感謝の限りです!! 説明がロジカルでわかりやすく、 すぐに問題を解決できました。 何より「考え方」まで理解できたので、 今後、マクロを作成する上で、非常に参考になります。

その他の回答 (4)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.5

>ボタンから、「/」を入れる処理を簡単にできるようにしました。 そうして完成してうまく行ったのではないの?わかりにくい表現。 うまくいかないなら 「ボタンから、「/」を入れる処理を簡単にできるようにしましたが 余分な罫線(素)が引かれてしまいます」とか書くべき。 ーー 罫線素は Selection.Borders(xlEdgeLeft). Selection.Borders(xlEdgeTop). Selection.Borders(xlEdgeBottom). Selection.Borders(xlEdgeRight). の4つと 斜線等があるわけだから、 内側の縦線 xlInsideVertical 内側の横線 xlInsideHorizontal 斜線 xlDiagonalUp 斜線 xlDiagonalDown >「□」の枠まで貼り付けされてしまいます。 のならマクロの記録の上記の罫線素片に当たる行(コード)を削除すれば済むのではないの。 何でこんなことを質問するのか判らない。 ーー >一部が太線のセルに「/」を挿入する場合、 太線はどういう事情で話題に出てきた? 太線のセルしか斜線を引かないの。 太線をそのままにしたいの。 そのままにしたいなら マクロの記録の>「□」の枠まで貼り付けされてしまいます、を 解決すると(=☐部分の罫線をマクロが書きこまなければ) 解決すると推測できない?

kitreewood
質問者

お礼

初心者なのですみません。 日本語のご指摘までいただいて 大変ありがとうございます。 今後は、「的確な」文章になるよう注意します。 >「何でこんなことを質問するのか判らない」 知ってしまうとはずかしい質問でしたが、 恥をかいて向上していきたいと思います。

  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.3

Range("D5").Select ' Selection.Borders(xlDiagonalDown).LineStyle = xlNone With Selection.Borders(xlDiagonalUp) .LineStyle = xlContinuous .Weight = xlThin .ColorIndex = xlAutomatic End With ' Selection.Borders(xlEdgeLeft).LineStyle = xlNone ' Selection.Borders(xlEdgeTop).LineStyle = xlNone ' Selection.Borders(xlEdgeBottom).LineStyle = xlNone ' Selection.Borders(xlEdgeRight).LineStyle = xlNone マクロの記録で枠線のない状態で、斜線のみ引いて、 [LineStyle = xlNone](線なし)のコードを削除すれば良いです。 残ったコードが線を引くコードになります。

kitreewood
質問者

お礼

「マクロの記録で枠線のない状態で、斜線のみ引いて、 [LineStyle = xlNone](線なし)のコードを削除すれば良いです。 残ったコードが線を引くコードになります。」 そうですよね。ここのところが理解の壁になっておりました。 手品と同じで、種をみてしまうと当たり前なんですが、 かなり悩んでおりました。 本当にありがとうございます。

  • htmcr
  • ベストアンサー率36% (11/30)
回答No.2

#1です。 #1を見てもなにをすればわからない場合は以下のページなどを参考にしてください。 http://www.eurus.dti.ne.jp/~yoneyama/Excel/vba/vba_01.html http://www.google.com/search?hl=ja&lr=lang_ja&ie=UTF-8&oe=UTF-8&q=%E3%83%9E%E3%82%AF%E3%83%AD+%E8%A8%98%E9%8C%B2+excel+visual-basic-editor&num=50 マクロの記録というのは、ユーザの操作を そのままVBAのコードに変換するものです。

kitreewood
質問者

お礼

早速のご回答に感謝しております。 ご紹介していただいたリンクはとてもわかりやすくまとまっていて、 初心者の私でもすいすい意味をくみ取ることができました。

  • htmcr
  • ベストアンサー率36% (11/30)
回答No.1

こんにちは。 以下でどうでしょう。 sub DiagonalUpLine() Selection.Borders(xlDiagonalUp).LineStyle = xlContinuous end sub

関連するQ&A

  • エクセルの罫線ボタンのカスタム

    エクセルの書式設定の中に罫線のボタンがあると思います。(右側に黒い下向き▼のついた)この▼を押すと3×4 計12種類の罫線の種類が選べるのですが(枠無し、下罫線、左罫線など。。。)この中身を替えることはできないでしょうか? 破線や外枠二重線などを追加したいのですが。。 その都度セルの書式設定で線種を変えたりすることは出来ますが、よく使うような線種を予めボタンの中に表示して置きたいのです。 ユーザー設定のボタンの中にもそのようなボタンがみつかりません。そのようなことが出来るのかも疑問ですが、出来るか、出来ないかだけでも知りたいです。よろしくお願いします。

  • Excelの罫線のロックについて

    多量のセルを別のワークシートにコピペしなければならない作業があるのですが、各々罫線が異なっているので、いちいち[形式を選択して貼り付け]→[罫線を除くすべて]をしています。 Excelの罫線をロックできるコマンドは特にないし、量が量なので、一発で[形式を選択して貼り付け]→[罫線を除くすべて]のマクロを組んでみたいのですが、マクロはド素人です。 なのでマクロの構文だけではなく、はじめから順を追って教えていただける方、どうぞよろしくお願いします!

  • EXCELで罫線が引かれてるのに、見えない!!

    タイトルには十分に書ききれなかったので「オッ!?」と思ってくださった方 ありがとうございます。 実は、他人が作った見積シートを修正していたのですが、行をコピーして コピーしたセルの挿入したら、罫線が消えてしまったんです。 罫線を引く時って、普通セル範囲を指定して、セルの書式設定で引きますよね? でも、今引かれてる罫線はセルの書式設定の罫線で見ても空欄になってるのです。 ???なんで? この会社の人達は、なぜか罫線引く時に、矢印のとなりにある線で引くので めちゃ職人技のような罫線を引いていることが多々見受けられるのですが、 今修正してるシートは、その線、矢印、オートシェイプなどもグレイアウトしてて 使えません・・・。(他のシート=Bookでは使えます) これまで、縦の合計くらいしか出したことのない私です、補足もしますので 何かヒントを教えてください。

  • Excelマクロで罫線をひきたい。

    Access2000からエクスポートした結果のExcel2000のワークシートに、線をひきたいんです。 一番最初のセルはa1と決まっているけど、一番最後のセルは毎回変わってしまうのですが、 このセルを取得するためにはどんなマクロボタンを作成すればいいでしょうか? ただ本来の希望としては、マクロボタンひとつで、並べ替え>セルの変更>罫線、としたいのですけれど。 「セルの変更」というのは、エクスポートしたデータで「ランク」という項目があり、 これに「特・A・B」という項目があります。 Access上はひとつのフィールドにまとまっているのですが、Excel上では、それぞれ「特・A・B」という列を作成し、データがあったら、「○」を入れるというようにしたいのです。 (列が増えることになります。) また「備考1・備考2」がAccess上にあり、これは別フィールドとなっていますが、 今度はExcel上で「備考」としてひとつの列にしたいのです。 (列の減少) 別シートを作成してもかまいません。 このようなことはできるのでしょうか? せめて罫線だけでもひければ、と思います。 よろしくお願いします。

  • Excelの条件付き書式設定の太い罫線

    Excel 2000 です。 条件付き書式の「書式」ボタンを押して表示される「セルの書式設定」の罫線タブの「線」の「スタイル」には、太い線がありません。 条件付き書式では、太い罫線は設定できないということでしょうか。

  • EXCELでの網かけと罫線

    Excel2003を使用しています。 セル、または行・列を網かけする時にその部分で右クリックして、書式設定から網かけをしました。 そして網かけをはずすと、枠の罫線が消えてしまっています。 それで罫線を元に戻そうとしても、太い線や微妙に違う線しかなく、元のグレーの線に戻りません。 網かけをして、なおかつ罫線はそのままというやり方はないんでしょうか? よろしくお願い致します。

  • エクセルの罫線を変えたい

    こぴぺしてきて、罫線もコピーしてきたときに、罫線だけを青とか赤に変える方法ってないんですか?いちいち手動でセルの書式設定とかで罫線かえるしかないのですか?

  • EXCELで色付き罫線などを自動的に施せますか?

    エクセルで名簿(約1000~3000名のものを数件)を作っています。紙出力をする時にグループ(1~10名)毎の境界に区切り線(色つき罫線など)を自動的に入れる方法はありますか? 名簿の1名分(1行)は10数個のデータ(セル)からできています。またグループの人数はランダムに1名から10名ぐらいに変化します。グループの境界を示す強調線として、罫線に色付け(または太い線)等を施したいと考えています。「セルの条件付き書式」を検討していますが、これでは1つのセル毎に条件を入れる必要があり今回の場合には適用できなさそうです。 現在は手作業でグループごとに、上下に強調するための区切り線(色つき罫線)を入れています。画像添付に事例を示しました。はじめに書式ーセル-罫線で1箇所に入れます。あとそれを「書式のコピー/貼り付け」で該当箇所に順々にコピーしています。この作業を何千回も繰り返すのは大変です。なおグループの先頭の人には項目を設けて「数値1」を入れてあります。 エクセルの初心者です。なにかプログラムを作る必要(マクロの作成?は全然経験がありません)がありそうですが、よろしくお願いします。

  • 罫線について

    エクセルのセルにある線(最初から表示されている薄い線)が消えていて、書式設定から罫線をひいても表示がされません。 挿入をしても表示されず、どうすれば最初の形にすることができるのでしょうか?  宜しくお願いします。

  • エクセル。こんな罫線簡単に引けませんか?

    セル番号の5ピッチでセル下線に赤色の罫線を簡単に入れる方法はないでしょうか? 例えばセル番号5、10、15・・~のように5行ごとに下に赤色の罫線をいれたいのです。 今は、複写で書式貼り付けしていますが面倒です。 何かいい方法ありませんか? ver2000。 宜しく願います。

専門家に質問してみよう