• ベストアンサー

【マクロ】表に格子をするマクロ

添付した画像の表があります。 この表に格子をつけて、表らしい見た目にするマクロを教えていただきたいです。 また、このシートは14列で表が終わっていますが、 他のシートは20列だったりとバラバラです。 すべての表で格子をつけるマクロを実行したいと思っているので、 他のシートで実行してもエラーの起きないマクロを教えていただけたらと思います。 分かりにくい説明で大変恐縮ですが、回答のほうよろしくお願いいたします。

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

  • ベストアンサー
  • aokiii
  • ベストアンサー率41% (63/151)
回答No.1

罫線種は「格子」のみでいいのですね。 その場合でも表にしたい範囲がどこからどこまでかをExcelに通知する必要があります。 自分で範囲を選択する場合と、Excelに判断させる方法があります。 Sub 選択されたセル範囲に罫線を引く() If TypeName(Application.Selection) <> "Range" Then Exit Sub With Selection With .Borders .LineStyle = xlContinuous .Weight = xlThin End With End With End Sub もしくは Sub 選択されたセルの周囲の連続してデータが入っているセル範囲に罫線() If TypeName(Application.Selection) <> "Range" Then Exit Sub Selection.CurrentRegion.Select With Selection With .Borders .LineStyle = xlContinuous .Weight = xlThin End With End With End Sub

tanpopopoketto5
質問者

お礼

早速の回答ありがとうございます。 2番目の式で無事作業ができましたのでお礼申し上げます。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 【マクロ】特定の位置から奇数の行を削除する方法

    9列目から、奇数の列を削除するマクロの式がわかりません。 説明では分かりにくいので画像を添付しております。 ☆1項目2列使っている表を1項目1列にしたい。 (1)グラフの二行目をすべて削除し、上詰めしたいです。 ※9,11,13~と削除していきたい。 (2)このシートの表の終わりは15列目になっていますが、他のシートは25列で終わりだったりとばらばらです。(表の始まりはどのシートも同じ列、行です。) (3)列を削除した際、表の下線が消えると思います。消した線も復活させたいです。 (4)そして、すべてのシートでこのマクロの処理をしたいと考えているので、 「表が終わるまでこの処理をする」というマクロも知りたいです。 分かりにくい文章、また、複数の質問になりますが、 マクロ初心者で大変困っています。どなたか回答をお願いいたします。

  • 【マクロ】データが1つもない行を削除する

    添付した画像のようなファイルがあります。 この表の中で、データが一つもない行は削除して、上詰めにするマクロを実行したいです。 また、このシートの表は11行で終わっていますが、 他のシートは25行目で終わっていたりとバラバラです。 すべてのシートでこの処理を行いたいと思っていますので、 他のシートで処理を行ってもエラーのでないマクロを教えていただけたら幸いです。 ちなみに、 ・各シートに表はひとつづつ。 ・各シートの表の開始セルは同じ。 ・全シートに対して一気に処理を行いたい。←指定した処理をすべてのシートで行うマクロは作成済なので大丈夫です。

  • Excel 2007 マクロ 表の値の抽出について質問させて頂きます。

    Excel 2007 マクロ 表の値の抽出について質問させて頂きます。 4つの表がSheet1にあります。 表は画像として添付しました。 外国産、国産、その他のいずれかの列に数値が入って いる行をコピーしてSheet2に貼り付けるマクロを考えています。 昨日、2つの表の場合のマクロのご回答を頂きました。 2つ表が追加されると上の2つは、抽出されるのですが 下2つは抽出されません。 表が4つと2つではマクロが異なるのでしょうか。 マクロ超初心者ですので、文が長くなっても構いません。 容易なマクロのサンプルをご紹介いただけませんでしょうか。

  • Excel 2007 マクロ 表の集計について

    Excel 2007 マクロ 表の集計について 2つのシート(Sheet1とSheet2)の情報を集計して Sheet3に反映するマクロを考えています。 (1)Sheet1のC列、D列、E列とSheet2のC列が空欄の場合は  Sheet3に反映しません。 (2)Sheet1のC列、D列、E列とSheet2のC列のいずれかに数値が  入っている場合にはSheet3に行を反映します。  ※Sheet3に反映する際に、Sheet1とSheet2のキー(A列)は  反映しません。  各Sheetの表は画像を添付します。  どのようなマクロを作成すればよろしいでしょうか。  マクロの超初心者です。  マクロのサンプルをご紹介頂けますでしょうか。

  • マクロ【表に格子を付ける】始まりを指定したい

    表は、行A~L ,列5~124です。 A1~L1にはシートの名前、A2~L4は空欄です。 1~5行目まで”ウィンドウ枠の固定”を行っています。 以上を踏まえて、A5~L124まで格子で囲みたいです。 他のシートは、始まりは同じですが、データの入っている行の数が違い、 5行目で終わっているシートもあれば100行目で終わっているシートもあります。 すべてのシートで実行したいと考えておりますので、実行してもエラーの出ないVBAを ご教授いただけたら幸いです。 自身で行ったマクロは下記の通りです。 これでは、A1から格子がついていまいます。 Range("A1:L" & Range("A65535").End(xlUp).Row).Select の部分に問題があるのだとは思いますが、どう変えてよいのかわかりません。 お願いいたします。 .......................................... Sub 格子を付ける() ' ' 集計ページに格子をつける Macro ' Range("A1:L" & Range("A65535").End(xlUp).Row).Select Selection.Borders(xlDiagonalDown).LineStyle = xlNone Selection.Borders(xlDiagonalUp).LineStyle = xlNone With Selection.Borders(xlEdgeLeft) .LineStyle = xlContinuous .ColorIndex = 0 .TintAndShade = 0 .Weight = xlThin End With With Selection.Borders(xlEdgeTop) .LineStyle = xlContinuous .ColorIndex = 0 .TintAndShade = 0 .Weight = xlThin End With With Selection.Borders(xlEdgeBottom) .LineStyle = xlContinuous .ColorIndex = 0 .TintAndShade = 0 .Weight = xlThin End With With Selection.Borders(xlEdgeRight) .LineStyle = xlContinuous .ColorIndex = 0 .TintAndShade = 0 .Weight = xlThin End With With Selection.Borders(xlInsideVertical) .LineStyle = xlContinuous .ColorIndex = 0 .TintAndShade = 0 .Weight = xlThin End With With Selection.Borders(xlInsideHorizontal) .LineStyle = xlContinuous .ColorIndex = 0 .TintAndShade = 0 .Weight = xlThin End With End Sub

  • Excel 2007 マクロ 表の貼り付け

    Excel 2007 マクロ 表の貼り付け Excel 2007 マクロ 表の貼り付けについて教えてください。 <Sheet1>の表にあるA2からD4を <Sheet2>に値貼り付けをします。 表は画像を添付します。 マクロの記録では下記内容になります。 Sub Macro1() ' ' Macro1 Macro ' ' Range("A2:D4").Select Selection.Copy Sheets("Sheet2").Select Range("A2:D4").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False End Sub <Sheet1>のA列の行の増減にかかわらず、<Sheet2>に貼り付けることができるように するにはどのようにマクロを修正すればよろしいでしょうか。

  • Excel 2007 マクロ AdvancedFilterについて(再

    Excel 2007 マクロ AdvancedFilterについて(再投稿) 先ほど同じ質問を投稿したのですが、画像を添付していませんでした。削除できないため再度投稿しました。 元データ(Sheet1)の表が4つあります。元データは画像に添付しました。 この表で製品名かぼちゃで「空白」と「-」以外の数値が入っている行をSheet3にコピーして貼り付けるマクロを作成しています。 <Sheet2> 製品名その他 かぼちゃ<> かぼちゃ- 下記マクロを実行したところ、Sheet3にはA列の番号のみ表示されます。 Sub Test1() Sheets("Sheet1").Range("A1:E34").AdvancedFilter xlFilterCopy, _ Sheets("Sheet2").Range("A1", Sheets("Sheet2").Cells.SpecialCells(xlCellTypeLastCell).Address), _ Sheets("Sheet3").Range("A1") End Sub <Sheet3> A列は空白です。 B列からE列は表示されていません。 どのように修正すればよろしいでしょうか。

  • エクセルで同じ大きさの画像だけを並び替えるマクロ

    仕事でエクセルのシートに600枚ほどの写真画像を並べる作業をしなければなりません。 画像のサイズは2種類あり、  ・大きなサイズの画像(高さ5.73cm、幅7.51cm)が2枚、  ・小さなサイズの画像(高さ4.31cm、幅5.77cm)約50枚(以下n枚とします) を1つのsheetに配置します。 このとき、大きなサイズの画像はシートの右上に並べ、小さなサイズの画像は横4枚×縦(n/4)+1列に並べなければなりません。シート上での配置のイメージは下のような感じです。 ●:大きなサイズの画像 ☆:小さなサイズの画像 --:シートの範囲だと思ってください -----------------------------                  ●● ☆     ☆     ☆     ☆ ☆     ☆     ☆     ☆ ☆     ☆     ☆     ☆ ☆     ☆     ☆     ☆ ・ ・(途中省略) ・ ☆     ☆     ☆     ☆ ----------------------------- シート右上に配置されてある大きなサイズの画像配置を変更せずに、小さなサイズの画像のみを選択して横4枚の格子状に並べるにはどのようなマクロを組めばよいでしょうか? 過去の質問QNo.3864319を参考にしましたが、この方法では同じサイズの画像すべてを並べ替えているように設定されてあります。したがって、このマクロを実行すると、位置を変えたくない大きなサイズの画像も含めて格子状に並べ替えられてしまうため、困っています。並べ替えをしなければならない画像は3000枚くらいになると思われるので、このマクロを完成させてしまわないと作業が締め切りに間に合わないのでとっても困っています。 どうかよろしくお願いいたします。

  • Excel2007 マクロ 表の値の抽出

    下記2つの表がSheet1にあります。 <野菜> 番号 製品名 外国産 国産 その他 AA-1 かぼちゃ 2 2 BN-3 ぴーまん 5 JK-2 れたす 5 1 KJ-76 いも TT-9 とまと 6 2 <くだもの> 番号 製品名 外国産 国産 その他 UI-4 ばなな 6 YU-34 りんご 4 9 i-45 なし 5 3 IO-34 ぱいなっぷる 6 OO-3 めろん 外国産、国産、その他のいずれかの列に数値が入って いる行をコピーしてSheet2に貼り付けるマクロを考えています。 マクロ超初心者ですので、文が長くなっても構いません。 元データの画像を添付します。 容易なマクロのサンプルをご紹介いただけませんでしょうか。

  • エクセルマクロ、教えてください。

    エクセルマクロ、教えてください。 とても困っています 泣 だれかご教授をおねがいいたします。 画像のような表があり、マクロボタンを押すと、画像下のように文字列にして別シートに出力したいのですが、 賢い形で作ることが出来ません。 if文がとても多くなってしまいます。 繰り返し処理などあるようなのですが、難しくてついていけません。 だれかきれいなロジックを教えていただけないでしょうか。 お願いいたします! 条件として、 表は、いくつかあり、画像は果物4種類ですが、野菜8種類の表などにも流用できるマクロをくみたいです。 A商店を左から順番に文字列に格納して、""になるまで繰り返す・・・ ""がきたら、B商店へ・・・といった形でしょうか。 また、商店の数も不特定なので、こちらも""になるまで繰り返すという条件でお願いいたします! エクセル関数で出来るじゃんとおもうでしょうが、例として簡単なものに書き換えただけなので、 回答はぜひマクロでお願いいたします!

専門家に質問してみよう