【IIS7】 サポート技術情報をリストアップしてみる
以前に書いた投稿が結構好評だったので 2008年 G/W 明け第一弾としてまったやってみましょうかね。
前はこんな感じで書きました。当時 33 件。
【IIS7】 そろそろいいことばかりでなく、現実的なことも重要か
今日同じ検索をしたところ、103 件に増えてます。全部はできないなこりゃ。。。
ということで、綺麗なリストを機械的に作るところからやりますかね。
手順1:まず、サポート技術情報ページで ”Internet Information Services 7.0" で検索します。
https://support.microsoft.com/ へ行く。
私は 英語 のリストが欲しいので、右で英語をドロップダウンする。
基本検索 ボタンをクリックする。
すべてを表示する をクリックする。(1ページに表示した方が Excel に持っていきやすい)
手順2:Excel の準備をします。
Excel 2007 を開き、適当な名前をつけて Excel マクロ有効ブックとして保存する。
・・・私は IIS7_KB.xlsm としました。(●^o^●)
Sheet1 の名前を Data に変えます。
あと、マクロを使うので「開発」タブを表示しておく。
・・・これは左上の Office ボタン、Excelのオプション の順にクリックするとチェックボックスがある。
手順3:リストを作ります。
まず、手順1の検索結果ページで全KBのリストをコピーして、手順2で作った Data のシートに貼ります。
このままじゃ縦に並んでて使いにくいなぁ 行と列を入れ替えてどんどん手で別のシートにコピーしてもいいけど、芸がないですわね。。。
手順4:マクロ作っちゃえ。
開発タブから Visual Basic をクリックする。
ツリーから ThisWorkBook をダブルクリックする。
適当な関数名をつける。面倒だったら Sub Main とでもする。Enter すると勝手に End Sub が入る。
さて、ここで通常マクロと格闘するところだが、、、今日はプレゼントしませう。
下記を貼り付けます。
Sub Main()
Dim nsheet As Worksheet
Dim osheet As Worksheet
Application.DisplayAlerts = False
For Each sh In ThisWorkbook.Sheets
If sh.Name = "kblist" Then
sh.Delete
Exit For
End If
Next
Application.DisplayAlerts = True
Set nsheet = ThisWorkbook.Sheets.Add
nsheet.Name = "kblist"
y2 = 1
nsheet.Cells(y2, 1).Value = "タイトル"
nsheet.Cells(y2, 2).Value = "詳細"
nsheet.Cells(y2, 3).Value = "URL"
nsheet.Cells(y2, 4).Value = "№"
y2 = y2 + 1
Set osheet = ThisWorkbook.Sheets("Data")
y1 = 1
Do While osheet.Cells(y1, 1).Value <> ""
nsheet.Cells(y2, 1).Value = osheet.Cells(y1, 1).Value
nsheet.Cells(y2, 2).Value = osheet.Cells(y1 + 1, 1).Value
nsheet.Cells(y2, 3).Select
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:=osheet.Cells(y1 + 2, 1).Value, TextToDisplay:=osheet.Cells(y1 + 2, 1).Value
nsheet.Cells(y2, 4).Value = Mid(osheet.Cells(y1 + 2, 1).Value, Len(osheet.Cells(y1 + 2, 1).Value) - 11, 6)
y2 = y2 + 1
y1 = y1 + 3
Loop
ActiveSheet.ListObjects.Add(xlSrcRange, Range(nsheet.Cells(1, 1), ActiveCell.SpecialCells(xlLastCell)), , xlYes).Name = "テーブル1"
ActiveSheet.ListObjects("テーブル1").TableStyle = "TableStyleMedium15"
Columns("A:C").WrapText = True
Columns("A:A").ColumnWidth = 52.5
Columns("B:B").ColumnWidth = 75.5
Columns("C:C").ColumnWidth = 42.75
Cells.Select
Cells.EntireRow.AutoFit
ActiveWorkbook.Worksheets("kblist").ListObjects("テーブル1").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("kblist").ListObjects("テーブル1").Sort.SortFields.Add _
Key:=Range("テーブル1[№]"), SortOn:=xlSortOnValues, Order:=xlAscending, _
DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("kblist").ListObjects("テーブル1").Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
MsgBox "Done!"
End Sub
これで完了なので、ファイルを上書き保存する。
手順5:マクロを実行します。
Visual Basic 画面を閉じて、開発タブ、リボンから マクロ をクリックする。
表示されたダイアログで ThisWorkbook.Main が選択されていることを確認して 実行 をクリックする。
・・・名前を別のものにしたら当然それを選択してくださいね。kblist というシートができますので。。。
最後にメッセージボックスを表示するようにしているので Done! と表示されたら終わり。OKをクリックする。
という感じで IIS7.0 の英語サポート技術情報の綺麗なリストができましたとさ。(*^^)v
書式とか並び順は少しいじれば直せますよね。マクロの記録で変えたいのを手操作で実施して記録すればどの変数にすればいいかわかりますので。マクロの記録を既定で実行した場合には Visual Basic 内の標準モジュールとして記録されるので新しくできた Module1 とかをダブルクリックしてください。そこに記録されたコードがあります。
例えば、緑のテーブル書式にしたい場合にはこんなのが記録されるでしょう。
Range("B2").Select
ActiveSheet.ListObjects("テーブル1").TableStyle = "TableStyleDark4"
元のマクロでは TableStyleMedium15 にするようになっているのでそこの値を TableStyleDark4 で置き換えます。
こういうのって意外とどこにも書いてないので自称 エクセラーとしては書いてみようと思ったのでありました。。。
ではでは。(@^^)/~~~
これを日本語に翻訳するのは時間があったらやりますぅ。
Comments
- Anonymous
January 01, 2003
The comment has been removed