Windows TIPS

Windows TIPS

WindowsやExcel、PowerShellを中心に、実務で使える設計・実装の要点を短く解説します。

連載完 連載開始: 2003年5月 全41回
  • PowerShellでパス文字列を操作する

    PowerShellでは、パス文字列を操作するためのコマンドレットがいくつか用意されています。 Join-Path、Split-Path、Convert-Path、Test-Pathの各コマンドレットについて解説します。

  • PowerShellでファイルやフォルダを操作する

    PowerShellでは、ファイル/フォルダを操作するためにさまざまなコマンドレットが用意されています。 New-Item、Remove-Item、Copy-Item、Move-Itemの4つのコマンドレットについて解説します。

  • PowerShellのGet-ChildItemコマンドレットでファイル名の一覧を取得する(応用編)

    パイプ処理と連携することで、Get-ChildItemコマンドレットの結果を特定の条件で絞り込んだり(Where-Objectコマンドレット)、ソートしたり(Sort-Objectコマンドレット)できます。 取得結果から特定の項目を取得したい、件数を制限したいという場合には、Select-Objectコマンドレットを使用します。

  • PowerShellのGet-ChildItemコマンドレットでファイル名の一覧を取得する(基本編)

    Get-ChildItemコマンドレットを使用すれば、特定フォルダ配下のサブフォルダやファイルの一覧を取得できます。取得対象のファイルを絞り込むには、-include/-excludeオプションを使用します。サブフォルダ配下のファイルまで再帰的に取得するには、-Recurseオプションを使用します。

  • PowerShellで複数のファイルの文字列を一括置換する

    PowerShellスクリプトを利用して、複数フォルダ/ファイルにまたがるファイルに含まれる文字列を一括置換する方法を紹介します。

  • PowerShellでイベント・ログの内容を参照する

    PowerShellでは、イベント・ログにアクセスするためのGet-EventLogコマンドレットが用意されており、コマンド実行だけで簡単にログ情報を取得できます。Get-EventLogコマンドレットの具体的な使い方について、例を交えながら紹介します。

  • PowerShellスクリプトで発生したエラー情報をイベント・ログに記録する

    スクリプト上で例外が発生した場合に、その詳細情報をイベント・ログに記録する方法を紹介します。イベント・ログに情報を集約しておけば、システム管理者はそこですべての問題を確認できるので、問題発見の手間を軽減することができます。

  • PowerShellでレジストリ情報を操作する

    PowerShellスクリプトからレジストリの値を取得/更新するための方法を紹介します。十分にテストを実施したスクリプトを介することで、危険なレジストリ操作も安全に、かつ、コマンド1つで実施することが可能になります。

  • PowerShellで進ちょく状況をプログレス・バーで表示する

    処理中にプログレス・バーを表示することで、スクリプトが確かに動作していることをユーザーは視覚的に確認できます。PowerShellのWrite-Progressコマンドレットを利用すれば、視覚的なプログレス・バーを簡単に作成できます。

  • PowerShellでテンプレートを使ってメールを一斉配信する

    Microsoft Accessで管理されたメール・アドレス情報を基に、PowerShellでメールを一斉配信する例を紹介します。また、配信するメール本文は差し替えが容易となるように、テキスト・ファイルとして外部ファイル化すると同時に、本文中には動的に変更可能な「変数」を含められるものとします。

  • PowerShellで複数のファイルの文字コードを一括変換する

    指定されたフォルダの下に存在する複数のテキスト・ファイルの文字コードを一括で変換したい場合があります。PowerShellでは、標準的な.NET Frameworkのライブラリを利用することで、特別なコンポーネントを導入することなく、これを実現することができます。

  • PowerShellでよく使うパイプライン経由の処理をフィルタとして定義する

    頻繁に使用するパイプライン処理は「フィルタ」を利用すればシンプルに記述することができます。フィルタを定義するにはfilterキーワードを使用します。

  • PowerShellで外部のRSSフィードを取得する

    RSSフィードをPowerShellスクリプト経由で取得し、必要な情報を抽出、HTML形式に整形したうえで、テキスト・ファイルに保存する方法について紹介します。

  • PowerShellを使って指定したファイルをインターネットからダウンロードする

    PowerShellでは、.NET Frameworkが提供する基本クラス・ライブラリを自由にスクリプト・コードから利用できます。WebClientクラスを利用すれば、インターネット上のファイルにアクセスしたり、ダウンロードしたりできます。

  • PowerShellからVBScript/JScriptのコードを利用する

    VBScript/JScriptで記述されたコード資産を、PowerShellスクリプトに置き換えるのは手間です。しかし、ScriptControlオブジェクトを利用すると、こうした旧来のコード資産をそのままPowerShellスクリプトから実行することができます。

  • PowerShellでVisual Basicの組み込み関数を利用する

    Visual Basic(VBScript)には、直感的に理解しやすい、さまざまな関数群が取りそろえられています。そこで、Microsoft.VisualBasicアセンブリを有効にして、これらVisual Basicの組み込み関数をPowerShellからも利用方法について解説します。

  • PowerShellでフォルダ/ファイル選択ボックスを利用する

    PowerShellスクリプトからWindows標準のフォルダ/ファイル選択ボックスを表示し、そこで選択されたフォルダ/ファイルをスクリプト側で受け取る方法について紹介します。

  • PowerShellのプロンプト文字列をカスタマイズする

    PowerShellのプロンプト文字列(システムが入力待ち状態であることを示す文字列)は、prompt関数によって定義されています。プロファイルでprompt関数を上書きして、プロンプト文字列をカスタマイズする方法について解説します。

  • Excelのユーザー定義関数で既存のワークシート関数を利用する

    Excelのユーザー定義関数で既存のワークシート関数の機能を改良したい場合、一からロジックを構築するのは無駄ですし、不要なバグの原因にもなります。 ユーザー定義関数から標準のワークシート関数を参照することで、差分のロジックのみを記述すれば済むようになるので、より簡単にユーザー定義関数を作成することができます。

  • Excelのユーザー定義関数で複数の結果値を返す

    ワークシート関数は必ずしも単一の値を返すとは限りません。 「配列数式」を利用することで、1つの関数で複数の値を返すワークシート関数を定義することができます。

  • ユーザー定義関数で任意のセル範囲の値を取得する

    ワークシート関数に対して引数を渡す場合、「セルA:セルB」の形式で表されるセル範囲として表現することが多いですが、Rangeオブジェクトを利用すれば、ユーザー定義関数でセル範囲の指定を受け取ることが可能になります。

  • WSHからExcelファイルの設定情報を読み込む

    カンマ/タブ区切り形式やXML形式など視認性に乏しく、編集の手間が煩雑なデータファイルなども、Excelフォーマットを用いれば、データの中身を人間が視認しやすくなり、メンテナンスを行う際の不用意な誤りも減らすことができます。

  • WSHで名前付き引数と名前なし引数を扱う

    アプリケーション(コマンド)に対して引き渡すことができる引数は、「名前付き引数」と「名前なし引数」の2つに分類することができます。WSHスクリプトでは、WshNamedとWshUnnamedオブジェクトを介することで、これら2種類の引数を取得することができます。

  • スクリプトレット・コンポーネントでリソース情報を定義する

    コード内で頻繁に参照するデータを何度も繰り返しハード・コーディングすることは、コード保守の観点からも好ましくありません。そのようなデータは、リソースとしてスクリプト・ブロックから分離することで、情報を一元化できるのみならず、変更時にもコードそのものに手を加える必要がなくなり、保守性を向上させることができます。

  • スクリプトレット・コンポーネントでプロパティを定義する

    スクリプトレットでは、コンポーネント内共通で利用するパラメータを「プロパティ」として表現することができます。プロパティは単なる変数として定義することもできますが、アクセス用の関数を介することで、プロパティ設定時の妥当性チェック、参照時の値加工などを行うことができます。

  • WSHコードで発生したエラー情報をイベント・ログに記録する

    イベント・ログは、ハードウェアやソフトウェア、そのほか、システム全般の問題について情報を収集するための重要な手掛かりです。 スクリプト内でエラーが発生した場合にも、エラー情報をイベント・ログに記録しておくことで、システム全体の一元的な監視が容易になります。

  • よく利用するジョブをスクリプトレットでコンポーネント化する

    スクリプトレットを利用することで、使い慣れたVBScriptやJScriptなどのスクリプト言語を利用してCOMコンポーネントを開発することができます。

  • WSHからXMLファイルの設定情報を読み込む

    アプリケーションの設定ファイルとして、カンマやタブ区切り形式を採用すると、視認性/拡張性に乏しいという難点があります。 しかし、 XMLを利用することで、データの中身を人間の目が視認しやすく、かつ、データ・レイアウトの変更にも強い設定ファイルを構築することができます。

  • Excelでユーザー定義関数をアドインとして提供する

    ユーザー定義関数を有効化するために、個々のブックでインポート作業を行うのは面倒です。しかし、標準モジュールを「アドイン」化して特定のフォルダ上で管理することにより、簡単にユーザー定義関数の有効/無効を切り替えることができます。

  • Excelでユーザー定義関数をエクスポート/インポートする

    作成した標準モジュール(ユーザー定義関数)をモジュール・ファイル(「.bas」ファイル)としてエクスポートし、必要に応じて、個々のブックにインポートする方法について紹介します。

  • WSHでIEの「お気に入り」一覧を設定する

    オフィスで業務用PCを導入する場合、社員が共通して使用するWebサイト/アプリケーションへのURLを一律に設定しておきたいことがあります。WSHを用いれば、URLの生成に必要な情報をあらかじめ用意しておくだけで、ワンクリックで一連のURL情報をお気に入りに登録することができます。

  • WSHで環境変数を設定する

    組織内では、環境変数を統一して設定しておくことで、コマンド・プロンプトでの作業などで環境の違いによるトラブルを未然に防ぐことができます。WSHを利用すれば、環境変数の設定に必要な情報をあらかじめ用意しておくだけで、ワンクリックで一連の環境変数を設定することができます。

  • WSHに渡された引数の妥当性を自動検証する

    <runtime>要素に記述された引数情報と実行時に渡された引数とを動的に照合・検証するスクリプトを作成・利用し、仕様とは異なる引数を渡した場合にエラーを検出する方法を解説します。

  • WSHでレジストリの読み書きを行う

    レジストリに直接アクセスすることで、通常のユーザー・インターフェイスからでは参照/設定できないような情報も取得/操作することができます。また、レジストリをユーザーが直接に操作するのは何かと危険が伴いますが、WSHを介することで安全なレジストリ設定が可能になります。

  • WSHスクリプトの仕様書を生成する

    WSHが標準で生成するヘルプ・メッセージは、必ずしも使い勝手がよいものではありません。しかし、WshDocスクリプトを利用することで、より一覧性に富んだHTML形式のヘルプ・ドキュメントを生成することができます。

  • WSHスクリプト・コードを暗号化する

    スクリプト言語によるプログラミングは簡易である反面、ソース・コードが露出してしまったり、コードの改変が可能であったりなど、問題が存在します。 しかし、フリーで利用可能なScript Encoderを使えば、スクリプト・コードを暗号化し、ユーザーの目から隠ぺいすることができます。

  • Excelでユーザー設定リストによる並べ替えを行う

    Excelで、標準的な並べ替え規則ではカバーできない特殊な序列でリストをソートしたい場合には、ユーザー設定リストを定義することで、独自の並び順を設定することができます。

  • Excelでユーザー定義のワークシート関数を追加する

    ワークシート上でさまざまな演算を実行しようとした場合、必ずしも標準の関数だけでは用を足さないというケースがありませんか?そこで、Excelではよく利用する機能をユーザーがワークシート関数として定義するための方法を提供しています。

  • 配信リストを使ってメールをいっせいに配信する

    Excelで管理されたメール・アドレスに対して、いっせいにメール配信する方法について解説します。 メール送信用コンポーネントBasp21を使用して、Excelから呼び出します。

  • Excelと外部データベースとを連携させる

    Excelには、外部データベースからデータを抽出する機能があります。この機能を利用し、外部データベースからデータを取り出し、Excelで加工する方法について解説します。

  • Excelで万年カレンダーを作成する

    任意の年月を設定しさえすれば、カレンダーのフォーマットを自動的に作るExcelテンプレート作成について解説します。