Welcome to TechNet Blogs Sign in | Join | Help

Hiroshi Okunushi's Blog ☆ミ

{ 日本のIT業界で活躍なさっている方に向けてMicrosoftテクノロジー最新情報を発信していきます。 }
{ Useful Microsoft technology information towards Japanese IT Professionals. Naturally, in Japanese. }
■ HOT: IIS7.0 is the best performable web server Microsoft has ever shipped...
■ HOT: IT Pro道場 自主トレシリーズ、よろしくお願いします。(●^o^●)

News

  • コミュニティにおけるマイクロソフト社員による発言やコメントは、マイクロソフトの正式な見解またはコメントではありません。

    Hiroshi Okunushi
    マイクロソフト株式会社
    IT Pro エバンジェリスト
    奥主 洋(おくぬし ひろし)


    Tech・Ed 2008 Yokohama
    ライトニングトーク
    TechEd 2008 Lightning Talk

    IIS バーチャルラボ
    IIS VLAB

    IT PRO MOMENTUM
    プログラム
    IIS VLAB

    Springboard

    ITEブログ検索




    IT交差点

    Power To The Pro

    TechNet IT Pro 道場




    Locations of visitors to this page

    テクノラティお気に入りに追加する

*.IISフォーラム

*.便利機能

0.IIS & PHP Community

1.Blog Roll

2.お仕事、お仕事 (^-^)

3.IIS もの

4.IT Professionals Global

5. MS MVP Team

S.SDM+SML

T.奥主が登場したFlash

【IIS7】 サポート技術情報をリストアップしてみる

以前に書いた投稿が結構好評だったので 2008年 G/W 明け第一弾としてまったやってみましょうかね。

前はこんな感じで書きました。当時 33 件。
【IIS7】 そろそろいいことばかりでなく、現実的なことも重要か

今日同じ検索をしたところ、103 件に増えてます。全部はできないなこりゃ。。。

ということで、綺麗なリストを機械的に作るところからやりますかね。

手順1:まず、サポート技術情報ページで ”Internet Information Services 7.0" で検索します。
http://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

image

書式とか並び順は少しいじれば直せますよね。マクロの記録で変えたいのを手操作で実施して記録すればどの変数にすればいいかわかりますので。マクロの記録を既定で実行した場合には Visual Basic 内の標準モジュールとして記録されるので新しくできた Module1 とかをダブルクリックしてください。そこに記録されたコードがあります。

例えば、緑のテーブル書式にしたい場合にはこんなのが記録されるでしょう。

Range("B2").Select
ActiveSheet.ListObjects("テーブル1").TableStyle = "TableStyleDark4"

元のマクロでは TableStyleMedium15 にするようになっているのでそこの値を TableStyleDark4 で置き換えます。

こういうのって意外とどこにも書いてないので自称 エクセラーとしては書いてみようと思ったのでありました。。。
ではでは。(@^^)/~~~

これを日本語に翻訳するのは時間があったらやりますぅ。

Posted: Wednesday, May 07, 2008 7:20 AM by Hiroshi Okunushi

Comments

Hiroshi Okunushi said:

当然 日本語のリストでもやりたいでしょうからちょっと追記しておこうかな。

同じことを日本語でやると2つおかしくなります。

- URLの位置が違うので№が正しく編集できません。

- 942074 の KB が説明文を正しく今 表示しないのでエラーになる。

ということを踏まえておくと、

Data シートでまず 942074 の2行目を手で挿入する。

(942074)とただ入れると負の値としてExcelが認識するので、'(942074) と入力しませう。

次に、マクロの修正ですが以下のように -9 にすれば。

Mid(osheet.Cells(y1 + 2, 1).Value, Len(osheet.Cells(y1 + 2, 1).Value) - 9, 6)

ということでマイクロソフトの技術情報をいつもリストされている方にちょっとしたアドバイスでした。。。

# May 6, 2008 5:48 PM
Leave a Comment

(required) 

(required) 

(optional)

(required) 

Comment Notification

If you would like to receive an email when updates are made to this post, please register here

Subscribe to this post's comments using RSS

Page view tracker