シーゴの Excel 研究室

タイトル変更しました (旧称:今日を乗り切るExcel研究所)

Excel シートのミミをそろえたい

Excel シートの位置と表示倍率を整える手順と、それを自動化する Excel マクロ、WSH スクリプトを考えます。

f:id:shego:20170512010559p:plain

Excel に耳などありませんが

Excel ファイルを開いたときの状態は、最後に保存したときの状態を反映しています。

Excel はデータだけでなく、シートの状態も保存しているのです。

ファイルを開いたときに使いっぱなしのシートが表示されると、躾に厳しい日本人としては気分がよくありません。

特に、共有資料や納品文書など、他の人も見るファイルは常に整頓しておきたいものです。

そのためには、シートを一つ一つ直してファイルを保存しなおすしかないのですが、人生にそんな時間はありません。

続きを読む

Excelのマトリクス表をリスト表へ変換したい

Excelで作成したマトリクス形式の表を、データとして扱い易くなるよう、リスト形式の表に並び替える手順とそれを自動処理するマクロを検討します。

【更新】2018/01/13 値が空白やゼロのだったらリストから除外するバージョンのマクロを追加しました。

f:id:shego:20170520141509p:plain

マトリクス表をデータ化したい

要は下図の左の表から右の表へ表の形式を変換したいです。

f:id:shego:20170505132608p:plain

これらの表形式を何と呼んだものか、日本語の標準的な呼び名が良く分からないのですが、 左の表形式はマトリクス、集計表、クロステーブル、ピボットテーブル、多次元テーブル、横持ちデータなどの呼び名が使われているようです。

一方、上図右の表形式は、単にテーブル、リスト、一覧表、フラットデータ、縦持ちデータなどと呼ばれているようです。

この記事ではとりあえず、各々「マトリクス」と「リスト」と呼ぶようにします。

マトリクス表は、公表される統計データや、各部署の営業実績表、データ連携用コードマッピング表など、いたるところで使われています。

マトリクスは人が見る分には良くても、このままデータベースに取り込む元データ(CSVなど)としては使えず、いったんリスト形式に変換・加工する必要があります。

列ごとに配置換えするコピー&ペーストの単純作業を地道に繰り返せばいいのですが、データ量によっては非人道的な作業になります。

続きを読む

Excel ファイルを読み取り専用で開きたい

今回は、Excel ファイルを読み取り専用で開き直す手順を検討し、それを自動化するマクロも作成します。

f:id:shego:20170517112937p:plain

【追記】2018/03/11

当記事では既に開いている Excel ファイルを読み取り専用で「開き直す」方法を紹介しています。 そうではなく、始めから読み取り専用モードで開く方法 を知りたい方は、ファイルの「右クリック」から読み取り専用で開く方法を、 以下の別記事にしましたので、そちらもご参考にしてください。

www.shegolab.jp

読み取り専用詐欺

Windows エクスプローラで Shfit キーを押しながら Excel ファイルを右クリックすると、「読み取り専用で開く」というメニュー項目が現れるのですが、これで開いてみても「読み取り専用」にはなりません。

f:id:shego:20170517114245p:plain

これは昔からある Excel の有名なバグらしいのですが、筆者の環境( Windows 10 の Excel 2013 )でもまだ直っていませんでした。

もしかしたら最新バージョンの Excel ではすでに解消しているのかもしれませんが、残念ながら手元にないため確認できていません。 (皆さんの環境で直っていたら教えてください)

Excel ファイルを読み取り専用で開くことはできないのでしょうか。

続きを読む

セル書式なしでコピー&ペーストしたい

貼り付けの形式を選択することで、セル書式なしでセルの内容だけ貼り付ける手順を検討し、またその操作をマクロ化してみます。

セルの貼り付けは気を使う

セル範囲を単純にコピー&ペーストすると、その値だけではなく、罫線や文字色等の書式も一緒に貼り付けられます。

貼り付け先でせっかくの罫線などが破壊されてイラッとします。

それを避けるには、貼り付け時に「貼り付けのオプション」か「形式を選択して貼り付け」から、セルの書式を含めないようオプションを選択する必要があります。

貼り付けのオプションには、「書式なし」という単純な選択肢は見当たらないのですが、色々やってみて一番筆者のイメージに近いのは「数式と数値の書式」というオプションのようです。

f:id:shego:20170508183236p:plain:w500

「数式と数値の書式」では、

  • 定数(数値や文字列)はそのまま貼り付けられます
  • 数式は値に展開されず、数式のままです
  • 数式内の相対参照も反映されます
  • 数式の書式(小数点以下の桁数や通貨、日付などの書式)も一緒に貼り付けられます

逆に、数値の書式もコピーせずに貼り付け先に合わせたい場合には、「数式」の方を選択します。

さらに、数式を値(定数)に展開したい場合には「値」や「値と数値の書式」を選びます。

正直、覚えられません。

これらのコマンドの細かい仕様の違いを字面やアイコンから判断するは分かりにくく、たかがペーストするだけでそんな神経を使いたくもありません。

よく使う「下方向へコピー」(Ctrl + D)では貼り付けの形式を選べないのも中途半端な感じです。

続きを読む

空白セルに上のセルの値を一括コピーしたい

空白セルに上のセルの値を一括コピーする手順を検討します。またその処理を自動で行うマクロも作成します。

同上空白セル

親切なのか「同上」なセルが空欄になっている Excel シートがよくあります。

このようなシートをデータとして使う(CSVなど)には、空白セルを上の方にあるデータで補完させなければなりません。

数か所までならコピー&ペーストや下方向にコピー(Ctrl + D)を黙々とやればいいのですが、何か所もあったり行数も多かったりすると行ったり来たりでやっていられません。

一括で空白セルを埋める方法はないのでしょうか。

続きを読む