WindowsとOfficeを使っていて控えた覚え書きメモです。

コマンドプロンプトとバッチファイル関連
Windowsデスクトップ操作各種
Excel
PowerPoint
その他(Word,Access,Outlook等)


コマンドプロンプトとバッチファイル関連
WHEREコマンドでコマンドプロンプトからファイルを探す

cd \target
where /T /R . "*メモ*.txt"

/Tオプションをつけると、ファイルの最終編集時刻とサイズも表示します。
/Rオプションをつけると、フォルダを再帰的に検索します。

.svnとかCVSとかの不要なフォルダを再帰的に検索して削除する

cd \target
for /R %i in (.svn) do rd /Q /S "%i"

forの/Rはサブディレクトリも含めて検索することを、 rdの/Sはディレクトリ内に中身があっても削除することを、 /Qは削除してよいかの確認を出さずに削除することを表します。

コマンドプロンプトを指定したフォルダで開く

cmd /K "D: && CD /usr/lang"

複数のコマンドを実行するときは;ではなく&&でつなぐのがポイントです。
または以下でもOKです。CDコマンドの/Dはドライブも変更する意味です。

cmd /K "CD /D D:/usr/lang"

バッチファイル中で日付(YYYYMMDD)を取得
ファイル名につけるなどの目的で今日の日付を取得するバッチファイルの例です。

set now=%date:/=%
set filepath=C:\the\path\of\newfile%now%.dat
echo %filepath%

この例の中で%date%の後ろに「:/=」とあるのは、%date%の出力のスラッシュ(/) を削除するという意味です。

標準出力と標準エラー出力を両方ファイルにリダイレクトする
UNIXの/bin/shなどでよく使われる手法、 Windowsバッチファイルでも次のようにすれば可能です。

コマンド > 出力ファイル名 2>&1

ftpコマンドをファイルに書いて一括実行する
ftpの-s:filenameオプションが使えます。ftpコマンドを順番に記述した次のようなファイルを用意します。

open falcon.nsnhnkmmkk.co.jp
user1
password1
bin
cd /usr/files/data
get data.txt
quit

このファイルをftpcmd.txtと名付けたとすると、「ftp -s:ftpcmd.txt」で実行できます。
なおWindowsのftpコマンドのこのファイルの書き方はUNIX/Linuxのftpコマンドとは少し異なるので、注意が必要です。

ファイル名一括変換

@echo off
setlocal enabledelayedexpansion
for %%f in (*.jpg) do (
    set filename=%%~nf
    for /f "tokens=1 delims=_" %%a in ("!filename!") do (
        ren "%%f" "%%a.JPG"
    )
)

これは作業ディレクトリにある複数の「AAA_BB.jpg」のような名称のファイルから、 "_"を含むそれ以降、拡張子の.に会うまでの文字を削除し、 さらに拡張子が.jpgならば.JPGに変換しています。
・enablelocalexpansion … 遅延変数展開を有効にする
・!filename! … 通常の変数参照の %filename% に対して、遅延展開する変数 (そのコマンドを実行する段階で展開する変数)
・~nf …絶対パスではなく、ファイル名だけを取得する

コマンドラインでパスワード付き暗号化zipを作りたい
コマンドラインで動作するZIP形式の圧縮/展開ソフトはフリーウェアで多数ありますが、 パスワード暗号化に対応していて便利なのは Info-Zip.orgのZip だと思います。そこのDownloadsのFTPサイトでバージョン2.3がダウンロードできます。 (最新版は3.0のようですが、2.3で十分使えます)
展開して好きな場所に置き、次のように使います。

C:\Wintools\zip\zip -r -P passpass testtest.zip testdir

testtest.zipが作られるZIPファイルの名前、testdirが圧縮対象のディレクトリです。 (もちろん、ファイルを1つ1つ並べて指定することも可能です。) ディレクトリを指定したときは、-rオプションも忘れずにつける必要があります。 -Pとその後ろの文字列がパスワードを指定しています。

特定のサブフォルダ―だけを除外したZipファイルを作りたい
my-appディレクトリ以下を階層的にZipファイルに圧縮したいが、 my-app\node_modules と my-app\dist だけを除外したい場合は、 zipコマンドではできませんが、7-Zipなら可能です。

"C:\Program Files\7-Zip\7z" a backup.7z my-app -xr!node_modules -xr!dist

ローカルで動く簡易なWebサーバを動かしたい
Pythonが入っていれば次のような1行のバッチファイルを作るのが最も簡単でしょう。

python -m http.server 8000

あるいはPHPが入っているならより豊富な機能が使えます。

php -S localhost:8000 -t C:\doc\root

コマンドラインでディレクトリ丸ごとコピー
昔はxcopyがよく使われていましたが、今はrobocopy一択らしいです。

robocopy C:\doc\src\dir1 C:\doc\dest\dir1 /E

移行先 C:\doc\dest\dir1 はこのコマンドで作られるので事前作成は不要です。
また/Eはサブディレクトリを含めてコピーする意味で、 これを付けないとサブディレクトリはコピーされません。 /Eだと空ディレクトリもコピーされますが、/Sにすると空ディレクトリは除外されます。

サブディレクトリ内の全ファイルの文字コードをUTF-8に一括変換
昔は専用のフリーソフトを使っていましたが、今はPowerShellで行けます。 例えば、C:\workspace\myproject\src の下に階層的にある *.java 全ファイルの文字コードを、 SJISからUTF-8に変換するには以下でOKです。

Get-ChildItem -Path "C:\workspace\myproject\src" -Recurse -Filter *.java | ForEach-Object {
    $content = Get-Content $_.FullName -Encoding Default
    Set-Content $_.FullName -Value $content -Encoding utf8 }

なお、UTF-8「以外の」文字コードにも変換できるかは未検証です。


Windowsデスクトップ操作各種
環境変数の編集画面に早く行きたい
環境変数を編集するのに、一々スタートメニュー⇒設定⇒検索...と辿るのは面倒です。
Windows+Rキー⇒ sysdm.cpl で「システムのプロパティ」画面を出し、詳細タブで行けます。

タスクバーの音量アイコンを押しても反応しない!
Windows10でときどきなります。仕方ないので、音量ミキサー 「C:\Windows\system32\sndvol.exe」をタスクバーかスタートメニューに登録しておきました。

インストーラでError 1704が出る
Windows Installerを使うフリーソフトや市販製品で、 インストール時に、

Error 1704. An installation for <以前インストールしかけたことがあるソフトの名前>
 is currently suspended.
 You must undo the changes made by that installation to continue.
 Do you want to undo those changes?
というダイアログが出て、Yesと押してもNoと押してもインストールされずに終わってしまうことがあります。 これはWindows Installerによるインストール/アンインストールが正常に行われなかったためだそうで、 復旧するにはレジストリをいじる必要があるみたいです。 こちらのE1704Cというフリーソフト を使うと、ボタンを2回押すだけでレジストリをクリアーして、インストールできるようにしてくれます。

エクスプローラの高速化
「圧縮フォルダ」機能を無効にすると劇的に早くなります。 特にフォルダの展開表示で差が出ます。方法ですがコマンドプロンプト (ファイル名を指定して実行⇒「cmd」と打つ) で

regsvr32 /u zipfldr.dll
regsvr32 /u cabview.dll

の2コマンドを実行するだけ。
元に戻したくなったら上記コマンドの"/u"を削った2コマンドを実行すればok。

ネットワーク共有フォルダで固まる
エクスプローラでネットワーク上の共有フォルダにアクセスすると、 何回かに1回の割合で「応答なし」になる現象のときは、 エクスプローラのフォルダオプションの「表示」タブの下から2番目、 「別のプロセスでフォルダー ウィンドウを開く」にチェックを入れると解決することがあります。

バッチファイルの関連付け
.BATの拡張子を持つバッチファイルをエクスプローラで右クリック⇒編集で開くと、 メモ帳が起動しますが、これを別のエディタにしたい場合どうしますか? 「ツール」⇒「フォルダ オプション...」⇒「ファイルの種類」 タブの一覧には、BATという拡張子のレコードはありません。 そこで「新規(N)」ボタンを押し、 「新しい拡張子の作成」ダイアログで 「ファイルの拡張子」に.BATと入力し、「詳細(V)」ボタンを押します。 「関連付けられているファイルの種類」に「MS-DOS バッチファイル」という文字が自動的に出るのでそれを待って、 OKを押します。 あとは通常のファイルの関連付けと同様、editのエントリの起動プログラムを、 メモ帳(notepad.exe)から自分の好きなものに変更すればOKです。

ビープ音を消す
コントロールパネルの「システム」⇒ 「ハードウェア」タブの「デバイスマネージャ」で、 メニュー「表示」⇒「非表示のデバイスの表示」を選びます。
すると出てくる「プラグアンドプレイではないドライバ」の中にある、 「Beep」をダブルクリックし、「停止」を押します。
さらに、「ドライバ」タブのスタートアップの種類を「無効」にすれば設定OKです。


Excel
Excelの新規ブックのシート数
Excelを開いて「新規作成」で新しいブックを作ったときに最初に3つのシートが作られますが、 Excelのツール⇒オプションの全般タブの「新しいブックのシート数」を変更すると、この数を変えられます。 しかし、エクスプローラで右クリック⇒新規作成⇒Excelブックを作ったときはこの指定が効かず、 相変わらず3つのシートが作られてしまいます。 これは別の設定が必要です。これすなわち、C:\Windows\ShellNewというフォルダにある 「Excel9.xls」というファイルがテンプレートになっていて、 これをコピーして作られるためで、このファイルを編集してシート数を1つにしておけば、 エクスプローラで右クリック⇒新規作成の際にもシート数が1で作られます。
私はついでに全セルを「テキスト上揃え」かつ「折り返して文全体を表示する」の設定もしてやりました。

Excelで大量セルのハイパーリンクを一括削除するには
1セルずつなら「ハイパーリンクの削除」メニューがありますが、 コピーペーストで沢山のセルにうかーり入ってしまった場合とても大変です。
簡単な方法は以下の通り。

  1. 何も入力していないセルに適当な文字「A」とかを入力して、そのセルをコピーする。
  2. マウスドラッグなどで、ハイパーリンクが付いてしまっているセルを一括選択する。
  3. 「形式を選択して貼り付け」を選び、「演算」で「乗算」を選んで実行する。

Excelファイルを開くときにパスワードを入力させる
「ツール」⇒「オプション」⇒「セキュリティ」タブの「読み取りパスワード」を設定すればok。

Excelで横に並んでいる複数のセルを、縦に並ぶようにして別の位置にコピーしたい
対象セル群をコピーしたあと、コピー先のセルに移動し、 「形式を選択して貼り付け...」で出てくるウィンドウの右下 「行列を入れ替える」にチェックをつけてOKを押す。

Excelの垂直に並ぶセルに同じ値を一括設定したい
A2セルからC1000セルにかけて罫線で囲まれ、空欄のセルがあるとします。
このとき、C2〜C1000セルに全て「○」文字を設定するには?

  1. C2セルに「○」と入力する。
  2. C2セル右下の小さい■をダブルクリックする。
これであら不思議、罫線が描かれている下端であるC1000セルまで「○」が詰まります。超便利。

「このブックには、ほかのデータソースへのリンクが設定されています」を出ないようにする
リンクの参照をその値そのものに変換し、以後上のメッセージが出ないようにするには、 「編集」⇒「リンクの設定...」⇒「リンクの解除」を実行します。

Excelのセルに縦書きってできるの?
これは、気づかないと分かりにくいです。(Excel2003でも、2007でも)
正解に近いやり方として、

  • 「セルの書式設定」⇒「配置」タブで、右に「何度」という角度を選べる部分があるので、 そこで90度と設定する…これだと、確かに縦書きになりますが、文字も横倒しに回転してしまいます。
  • 「セルの書式設定」⇒「配置」タブで、 「折り返して全体を表示する」にチェックを入れ、 セルの幅を、ちょうど1文字分に狭める …これだと文字は横倒しにならず縦書きっぽくなりますが、 括弧()がそのまま(←に見えているまま)です。 これは回転してほしいんですけど…(わがまま)
正解は、「セルの書式設定」⇒「配置」タブで、 右のほうに「方向」の枠内に、 「文字列」という文字が縦書き表示されている縦長の枠がありますね。 この枠は実はクリックでき、クリックすると黒く反転表示されるのです。 この状態が所望の「縦書き」状態なのです。これは分かりづらい。

Excelの条件付き書式で、行全体に書式をつけたい
これはよく必要になりますね!
行全体に書式をつける、つまり条件付きの「条件」の対象になっていないセルにも、 書式を設定するというのは、ちょっと難しいですが可能です。

  1. 書式を設定したい行をどれでもいいので範囲選択します。
  2. 条件付き書式で「数式を使用して、書式設定するセルを選択する」を選びます。
  3. その数式に、「=$E2="abc"」のように入力します。行は相対セル参照にするのがポイントです。
  4. 書式設定ができたらその範囲をまた選択してコピーし、 対象にしたいほかの全てのセルを選択状態にして、「書式のみ」貼り付け、で完成です。

ExcelのCOUNTIF関数で複数の条件を指定したい
「B列の値がE2セルの値と等しく、かつC列の値がF2セルの値と等しい行の数」 を求めるには?これもよく必要になりますね。
真っ向ストレートには、B列とC列の値を&で連結したダミーの列を作り、 その列に対してCOUNTIFすればOKなのですが、 ダミー列を作りたくない大人の事情があるなら? SUMPRODUCT関数が使えます。
SUMPRODUCTは、元々縦長の2つの範囲を指定し、 (対応する行同士の積)の和を求める関数です。 これを「SUMPRODUCT(($A$2:$A$20=$E2)*($B$2:$B$20=$F2)) 」 のように、論理式の積にすることで、複数の条件を全て満たす行の数を数えられます。

ExcelのSUMIF、COUNTIF関数に否定の条件をつけるには?
「=SUMIF(M6:M27, "<>経費", K6:K27)」 とすれば、M列が "経費" 「ではない」行だけを合計できます。
二重引用符の位置が分かりにくいですね。

Excelで点数によってABCランク付けするには?
愚直にIF関数を入れ子にしてもできますが、LOOKUP関数を使うと簡単です。 例えば、25点以上ならS、20〜24点ならA、15〜19点ならB、14点未満ならC とランク付けしたい場合、 「=LOOKUP(A1, {0,15,20,25}, {"C", "B", "A", "S"})」でOKです。

Excelで重複を排除して一意の値の数を数えるには?
指定した範囲に重複する値が含まれる場合、重複するセルは全て1個と数えて、 一意な値の数を数えるには、フィルタを使うのが便利です。

  1. 抽出したい範囲の一番上に見出しセルがなかったら、自分で作ります。
  2. 見出しセルと抽出したい範囲を選択して、「フィルタの詳細設定...」を押します。
  3. 「フィルターオプションの設定」ダイアログが出るので、 「指定した範囲」を選択し、「抽出範囲」に、どこか別の適当なセルを1つ選びます。 次に「重複するレコードは無視する」にチェックを入れて「OK」を押します。
  4. すると、「抽出範囲」に指定したセルを起点として、重複が排除された値の一覧がコピーされます。
  5. 後はコピーされたセルの数を数えれば完了です。

Excelの先頭から数行が非表示になっているのを再表示する
1行目から数行が非表示になっている場合、行の高さが0になっていることで非表示にしているなら、次の手順で再表示できます。

  1. 画面左上の欄に「A1」と打ってENTERキーを押す。
  2. ホーム⇒書式⇒行の高さ...で適当に「10」などと入力してENTERキーを押す。
  3. これで1行目が表示されるので、後は残りの行を選択して「再表示」でOK

Excelでスクロールが効かなくなった!
多分次のどちらかが理由です。

  • 知らないうちにScroll Lockキーを押している。
  • ウィンドウ枠が固定されている。ウィンドウ枠の固定の解除を押すと戻ります。

Excelで特定のファイルだけが急に開けなくなった!
特定のExcelファイルだけが、開いても一面灰色の部分だけで、エラーメッセージも何も出ない、 という状態の時は、無意識の内に「表示」タブの「ウィンドウ」グループの中にある 「表示しない」を押した可能性があります。
「表示」タブ⇒「再表示」を選ぶと元に戻ります。

Excelでシートタブ(シート見出し)が出なくなった!
ファイル⇒オプション⇒詳細設定を開き、 「次のブックで作業するときの表示設定」欄の「シート見出しを表示する」のチェックをONにする。

Excelのセルに命名規則を設定したら、リストの一番下の値が初期選択状態になる
セルの命名規則で別のセルの範囲をリストとして指定すると、 通常はリストの一番上の値が初期選択状態になるのに、なぜか一番下の値が初期選択されることがあります。 この理由は、リストに設定した範囲の中に空白セルがあるためです。 空白セルを含まない範囲を指定し直すと、一番上の値が選択状態になります。

Excel2010のグラフで縦軸のラベルはどうやって出すの?
これも知らないと延々悩みます。実はプロパティからは設定できませんで、 リボンの「グラフツール」⇒「軸ラベル」⇒「主縦軸ラベル」⇒「その他の主縦軸ラベルオプション...」 を選んだ瞬間に文字が表示されるので、それをクリックして自分の好きな文字に編集すればOK。

Excel2010で非表示のセルは除いてコピー&ペーストするには?
これも分かりにくい。まずコピー元を普通に範囲選択後、ALT+;(セミコロン)を押すと、 表示されているセルだけが囲まれた選択状態になります。
その状態でコピー、貼り付けを順番に通常通り行えばOKです。
なお、ALT+;と同じ操作は次の方法でもできます。
リボンの「ホーム」タブにある「検索と選択」⇒「条件を選択してジャンプ...」を押します。 「選択ダイアログ」が出るので「可視セル」を選びます。


PowerPoint
PowerPointの文章の2行目以降の字下げを変更するには?
メニュー「表示」⇒「ルーラー」でルーラーを表示して引っ張ればok。

PowerPoint2010で表の各列の幅を揃えるには?
対象の列(複数)を選択し、リボン「表ツール」の「レイアウト」の「セルのサイズ」 の中にある「幅を揃える」を押せばOK。各行の高さを揃える操作も同様です。

PowerPoint2013で最初のスライド番号が0になってしまった。1から振り直すには?
メニュー「表示」⇒スライドマスター⇒スライドのサイズ ⇒ユーザー設定のスライドサイズ... の中の、「スライド開始番号」を0から1に変えればOK。


その他(Word,Access,Outlook等)
Access2010でテーブルの一覧はどうやって出すの?
F11キーですよ。分からないと延々はまります。

Access2010で複数フィールドからなるインデックスはどうやって定義する?
「インデックス」ウィンドウを開き、 一番上の行にだけインデックス名を入力します。 2番目以降の行は、インデックス名の列は空欄のままにし、フィールド名だけを入力すればOKです。

Access2010で数十個のフィールドを持つクエリを作ったら並べ替えるのが大変
デザインビューの下半分は、カット&ペーストが可能です。
複数の列を選択して右クリック⇒切り取り、 右の方にスクロールして右クリック⇒貼り付けで複数の列の位置を一括移動できます。

WordやWordPadで「レ点」はどうやって打つ?
半角文字で2713と打ってからALT+Xであら不思議、レ点が出てきます。
あと半角文字で2611と打ってからALT+Xで、□の中にレ点が入ったものが出ます。
これらのコードは、IMEパッド⇒文字一覧の「その他の記号」(2600台)や「装飾記号」(2700台) で確認できます。面白い!(しかも意外なところで使えて便利)

Word2010で向きやサイズの異なるページを混在させるには?
通常の改ページではなく「セクション区切り」とゆうものを入れます。
「ページレイアウト」⇒「区切り」⇒「セクション区切り」の「次のページから開始」を選びます。 あとは各ページで「ページレイアウト」⇒「印刷の向き」や「サイズ」などで変更すればOK。

Adobe Readerでメニューバー、ツールバーを非表示にしたら戻せなくなった!!
黙ってF8、F9キーを押すべかめれ。

Outlookで閲覧ウィンドウに本文を表示しない
表示⇒メッセージのプレビュー⇒無効にする。

Outlookで返信を別ウィンドウで開く
ファイル⇒オプションの「メール」タブで、 「返信/転送」の「返信と転送を新しいウィンドウで開く」にチェックをつける。

Outlookで返信時にも署名が自動で入るようにする
署名のウィンドウに、新規メールと返信/転送で自動挿入するかどうかは別々のチェックボックスがあるので、 両方チェックを入れる。

Outlookで中継サーバなどのヘッダ情報を確認したい
メールをウィンドウに表示して、リボンの「タグ」というグループの右下の矢印をクリックすると、 出てくるウィンドウの中に表示されます。
全く、なんでこんな意味の分からない場所に表示するんでしょうね!?

Misc. Topics Top

(first uploaded 2005/10/29 last updated 2026/09/05, URANO398)