VBA100本ノック 86本目を動画で解説しています。Excelの神髄さんの模範解答はコチラ
問題
シートの先頭に「相関表」シートを挿入します。
「相関表」以外の全シートの総当たり表(マトリックス表)を作成してください。
B2セルを起点にして縦横にシート名を配置し、画像を参考に罫線を引き、文字配置(表全体を中央)してください。
※この問題は次問題と連作です。

解答
Sub 相関表シートを挿入してマトリクス表を作成()
'シートを削除する
Application.DisplayAlerts = False
On Error Resume Next
Sheets("相関表").Delete
On Error GoTo 0
'シートを挿入する
Dim ws相関表 As Worksheet
Set ws相関表 = Worksheets.Add(before:=Sheets(1))
ws相関表.Name = "相関表"
Dim rng As Range 'B2を基準に
Set rng = ws相関表.Range("B2")
Dim i As Long
'表作成、罫線、書式変更
With rng
For i = 2 To ThisWorkbook.Sheets.Count
.Offset(i - 1, 0).Value = Sheets(i).Name '行
.Offset(0, i - 1).Value = Sheets(i).Name '列
.Offset(i - 1, i - 1).Borders(xlDiagonalDown).LineStyle = xlContinuous
Next i
.CurrentRegion.Borders.LineStyle = xlContinuous '全体の罫線
.CurrentRegion.HorizontalAlignment = xlCenter '全体を中央揃え
End With
End Sub
■考え方・流れ
①「相関表」シートを先頭に挿入する
➁シート名を埋める
③罫線を入れる
④表範囲を中央揃えにする
87本目と続いてるので無理やりでも解かねばならん…
解かねばならんのだ…!と自分に言い聞かせて解きました☆

次回へと続いてると
緊張しますよね!

俺は緊張したこと
一度もないけどね?

うらやましい…
“相関表”シートを先頭に挿入
シートの挿入もいくつか注意が必要でしたね。

“ws取引先”って変数に、Worksheets.Addメソッドさんの結果をぶち込み!

挿入場所(Index)はAddメソッドさんの引数で指定可能でしたね。
今回は必ず1シート目に”相関表”シートを持ってきたいので、
Before:= Sheets(1)としました。

ただーし!もし既に”相関表”ってNameのシートが存在していた場合も考慮して…
先に”相関表”シートを削除するコードも書いておいたよ!

“相関表”ってシートがあるかどうかの判定をしてもいいけど、
気分的にOn Error Resume Nextさんでエラーをすっ飛ばして解決。
あ、終わったらOn Error Goto 0でErr.Numberを元に戻してあげてね☆

新規挿入、削除系は考えることが多くて難しいっすね~。
シート名を埋める
“相関表”シートを先頭(1シート目)に入れたことを利用。
2シート目から最後のシートまでループ。


今回は基準のセル(B2)を”rng”という変数としたので、
そこを基準としてOffsetプロパティさんを使用。

結果はこんな感じ!

いい感じンゴ~~。
罫線を入れる
表範囲に罫線をぶちぶちぶちこんでいくよ!
Excelの神髄さんのサイトを参考にしたら余裕のよっちゃん!

ムフフ!ありがとうございますぅ~!

斜めの罫線を引きたい場合も、
言うまでもなく神髄さんのサイトに記載がございまするぅ~♪

罫線を引くセルは、rngを基準として対角線上のセルだね!!

出来上がりはこんな感じ↓☆

斜め罫線…手動でやるのってクソめんどいっすよね。
表範囲を中央揃えにする
これは動画にするかちょっと悩んだw
流石に今のワシにとっちゃあ簡単よ!

最後にWithを設定する派です。
何回もrng出てきてウザいからね。


以上!完成~!!

お疲れ様!
頑張ったね!

あざます!
あとがたり
おはこんばんちは。uぷ主です。
86本目、マトリクス表を作る問題でした。
前回の85本目、その前の84本目?あたりが超々難しかったから…
今回は比較的楽しんで取り組めましたンゴ!
やっぱ、楽しいってのが一番ですよね。何事も。
主は今の仕事が超々嫌いなので…
全然成長してないです。
ただ、Excelを使う場面だけは最強に楽しいので、
Excelスキルだけが伸びていく感じ~!
にょきにょき!
だけど求められてるのはExcelじゃなくて他の仕事のスキルって言う…
あぁ…Excelで飯を食っていきたい…
とまあ、話がそれたけど…
今回も楽しかったです~!!
神髄さん!ありがとうございましたぁぁ!!
そして最後までご視聴いただいたみなさん!ありがとうございました!!
コメント