たろいもは召喚酔いに影響されない

"システム屋"属性を持った「たろいも」のいろいろなソフトネタブログです

【備忘録】オフライン環境へVS2015+MySQLのASP.NET MVC4環境構築 第2回:追加パッケージ導入

 初めての方は、はじめまして。再びご覧いただいた方はこんにちは。たろいもです。

 Visual Studio 2015 ExpressとMySQLASP.NET MVCのWebアプリケーションを作ろうよ企画の第2回目です。前回は、アプリケーションのインストールだけで終わってしまいました。ということで、今回はちゃんとWebアプリケーションのプロジェクトを作って、しっかりMySQLと連動させるところまで・・・・・・いけたらいいなぁ。

 今回のお品書きはこちら

Nugetの接続先をローカルに変更

 開発において、様々な追加パッケージが必要となります。今回ならMySQLと接続するためには、そのための追加パッケージが必要ですし、Webアプリケーションで使うJQueryやらbootstrapやらも利用するならば、追加のパッケージを導入しなければいけません。

 そんなパッケージ追加をお手軽にやれる仕組みがNugetなのですが、この人、オフラインで使うととんでもなく遅くなります。そりゃ、存在しないダウンロード先を探しに行こうとしますからね・・・・・・。

 オフライン環境においては、追加したいパッケージをNuget Galleryから自分でダウンロードしてきて、オフライン環境のNugetが参照できる場所に置いてやる必要があります。

 そのために、Nugetのパッケージソースからオンラインの参照先を取り除き、オフラインの参照先を追加してあげなければいけません。

f:id:dicen01:20191010214144p:plain

新しいプロジェクトの作成

 「新しいプロジェクト」の作成項目の中には、そのものずばり「ASP.NET Webアプリケーション」の「MVC」というのがあります。

f:id:dicen01:20191010214148p:plain

 この設定でプロジェクトを作成すると、DBContext付のモデルにコントローラからビューまで一式揃え、bootstrapまで含めたプロジェクトを構築してくれます。

f:id:dicen01:20191010214157p:plain

 ただこれ、既にかなりのビューが準備されてまして、もし大半が要らないビューだった場合、ビューは消さなきゃいけなしし、コントローラは直さなきゃいけないし、そもそもエンティティモデル組まれてないしということで、たろいもはEmptyなWebアプリケーションで開始することにしました。

f:id:dicen01:20191010214201p:plain

 はい、見事に空っぽなプロジェクトが出来ました。

f:id:dicen01:20191010214205p:plain

エンティティモデル構築用追加パッケージ導入

 せっかくMVC作るのですから、MySQLマイグレーション先にしたエンティティモデルを構築しましょう。

 MySQLに対してエンティティモデルを構築するためには、「MySql.Data.Entity」というパッケージが必要です。

f:id:dicen01:20191010214209p:plain

 この「MySql.Data.Entity」ですが、依存関係として以下3つのパッケージを要求してきます。

(※ 上記は、MySql.Data.Entity 6.10.8 の場合です)

 プロジェクト作成の段階で「.Net Framework 4.6.2」を使用していますから、1つ目は良いとして、残り2つは導入してやらねばいけません。

f:id:dicen01:20191010214214p:plain

 「EntityFramework」には依存関係がありませんからこのまま導入できます。「MySql.Data」ですが、なかなか派手な依存関係が記載されています。

f:id:dicen01:20191010214218p:plain

 が、この辺は普通に「.Net Framework4.6.2」があれば問題なく導入可能です。ということで、Nuget Galleryでこの3つのパッケージをダウンロードし、Nugetのローカル参照先に指定したフォルダへと格納しましょう。

 これで、ソリューションエクスプローラから「Nugetパッケージマネージャー」を開くと、

f:id:dicen01:20191010214222p:plain

 ダウンロードした3つのパッケージが導入できる状態になります。

f:id:dicen01:20191010214230p:plain

 あとは、

  1. EntityFramework
  2. MySql.Data
  3. MySql.Data.Entity

 の順でインストールしましょう。(1と2は逆でもOK)

f:id:dicen01:20191010214227p:plain

 これで、エンティティモデル構築のために必要なパッケージは導入完了です。

おしまい

 なんでしょう、この話の進まないジリジリ感。今回で一発目のマイグレーションくらいまで行こうかと思ったのですが・・・・・・。

 ということで次回予告、「はじめてのマイグレーション!」にご期待ください!

【備忘録】オフライン環境へVS2015+MySQLのASP.NET MVC4環境構築 第1回:インストール

 初めての方は、はじめまして。再びご覧いただいた方はこんにちは。たろいもです。

 先にお伝えしておきますが、本記事は備忘録としての側面が強いです。

 約1年前、諸々の事情により、オフライン環境にて、Visual Studio 2015 Express EditionとMySQLを使用した、ASP.NET MVCの開発環境を構築しました。

 オフライン環境かつ、データベースにMySQLを使うということで、多少ニッチ要素があるためか、構築には少々てこずりました。ということで、一連の流れと、その手順を用いた理由など、覚書としてここに記載します。

※環境構築するオフライン端末とは別に、インターネットに接続できる端末が存在することが前提です

※途中1か所のみ、オンラインを用いる部分があります。Visual Studio 2015 のライセンス認証だけはオフラインではできませんでした

 第1回目の内容はこの通り

 第1回目としては、各ソフトウェアのインストールについて記載します。

 「えー、とりあえず大事なとこだけ教えてよ~」と言う方、たぶん、Visual Studio 2015のオフライン用インストーラ作るところが一番盛り上がるところです。(身も蓋もない)

構築環境

 以下、構築端末のざっくりスペックです。

 OS:Microsoft Windows 10 64bit

 CPU:Core i7-7700 3.60GHz

 メモリ:32GB

 記憶装置:SSD 250GB(メイン)、HDD 1TB

インストールの順序

 以下の順番でソフトウェアのインストールを行いました。

  1. Visual Studio 2015 Express Edition
    1. Visual Studio 2015 Express Edition for Web インストール
    2. Nuget更新
    3. .Net Framework 4.6.2 Developer Pack インストール
  2. MySQL
    1. MySQL Community Server インストール
    2. MySQL Workbench インストール
    3. MySQL for VisualStudio インストール

 Nugetの更新を行ったのは、VS2015に付属していたNugetでは、一部パッケージのインストール時にエラーが発生したためです。

 VS2015 -> MySQL の順なのは、「MySQL for VisualStudio」は、VisualStudioが既にインストールされていることが条件であるためです。

Express 2015 for Web

 Expressとしては最後となるVisual Studio 2015。たろいもも当初は最新のVisual Studio 2017(2018年時点)にしようと思っていたのですが、2017にはCommunityしかありません。Communityのライセンス内容を確認した結果、今回の案件には不適切であったため、Expressが使える2015を選定しました。

1.インストーラ入手

 さて、ここで問題になるのは、今回の環境構築はオフライン端末であるということです。ネットで調べてみると、ISOを入手するであるとか、さまざまな情報がありますが、たろいもはオンラインインストーラを用いてインストーラ全体をダウンロードするという方法を実施しました。

 とりあえずやり方を。

 まずはインターネットに接続できる端末にて、オンラインインストーラを入手します。2019年10月現在でも、「Visual Studio Express - 今すぐ Visual Studio Community」で、Visual Studio 2015のインストーラを入手できます。画面下方にある「Express 2015 for Web」のリンクからダウンロードページへ遷移し、オンラインインストーラを入手してください。

Microsoft様のサイト構成は割と頻繁に変わるため、上記リンクが使用不可となっている可能性があります

 「ja_visual_studio_express_2015_for_web_x86_x64_web_installer_6846467.exe」というファイルが入手できたでしょうか。さて、このオンラインインストーラですが、実行すると

  1. インストーラ全体をダウンロード(Windowsのテンポラリなどに保存)
  2. ダウンロードしたインストーラを実行

 という手順を実施します。つまり、ただ実行するだけでも、インストーラ全体のダウンロードは裏側でやられているわけです。そして「どうせダウンロードするならフォルダ指定させてよ」ということで、例えばこんな感じに実行ファイルとフォルダを配置しまして、

f:id:dicen01:20191009212517p:plain

 このフォルダ階層で、下のコマンドを実行します。

ja_visual_studio_express_2015_for_web_x86_x64_web_installer_6846467.exe /layout ./FowWebDownload

 インストーラ実行ファイルの第一引数として「/layout」、第二引数として保存先フォルダの相対パス「/layout」を指定することで、「インストーラ全体のダウンロード」のみを実施します。第二引数はそのダウンロード先を指定しています。

 もしコマンドプロンプト開いて、上のコマンド打ち込んだりするのが面倒なら、

ja_visual_studio_express_2015_for_web_x86_x64_web_installer_6846467.exe /layout ./FowWebDownload
pause

 こんな感じでbatファイル作成して、

f:id:dicen01:20191009212522p:plain

 フォルダから実行してしまっても良いです。

 インストーラ全体は6GB以上ありますので、それだけのHD容量を空けておいてください。

2.インストール

 無事ダウンロードが完了しましたら、インターネットに接続できる端末からオフライン端末へ、ダウンロードしたインストーラ全体をコピーしてください。

f:id:dicen01:20191009212525p:plain

 ダウンロードフォルダ内にある「vns_full.exe」を実行すると、インストールが開始します。

f:id:dicen01:20191009212529p:plain

 既に「For Desktop」などをインストールしたことがある、と言うことでもない限りは、「再起動」が必要になるかと思います。

3.製品の登録

 インストールしたExpress 2015 for Webですが、初回起動時に「製品の登録」のためのサインインを聞いてきます。とりあえずスキップできてしまうのですが、「製品の登録」をしないと試用期間扱いになりまして、30日間の制限が付きます。

f:id:dicen01:20191010213944p:plain

 [ヘルプ]-[製品の登録]でも確認できます。

 無料で作れるMicrosoftのアカウントを登録し、サインインしてやるだけで解決なのですが、オフラインであるが故に、サインインできません

 あれこれ調べてもこれだけは回避できず、仕方なくスマートフォンからUSBテザリングでネットワークに接続しました

Nuget更新

 Visual Studio 2015初期状態のNugetだと、MySQL回りのパッケージインストールでエラーを出す場合がありました。ので、Nugetを更新しておきます。

 NuGet Package Managerから、「Nuget.Tools.vsix」を入手します。

 この「Nuget.Tools.vsix」は、管理者として実行してやる必要があります。しかしこのままでは「管理者として実行」できませんので、コマンドプロンプトを管理者実行し、そこから起動します。

f:id:dicen01:20191009212534p:plain

.Net Framework 4.6.2 Developer Pack

 Windows10では、「.Net Framework」は4.6.2以降が標準で搭載されていますが、Visual Studio 2015では初期状態で4.6.2を選択することが出来ません。

f:id:dicen01:20191009212546p:plain

 「.Net Framework 4.6.2 Developer Pack」を適用することで、選択できるようになります。

 Microsoft.NET Framework 4.6.2 開発者のパックおよび言語パック、ここの中段辺りにあるリンクからダウンロードページへ移動し、以下の2ファイルを入手してください。

  1. 「NDP462-DevPack-KB3151934-ENU.exe」

  2. 「NDP462-DevPack-KB3151934-JPN.exe」

 この2ファイルですが、必ず1->2の順で実行してください。これを適用することで、「.Net Framework 4.6.2」を選択可能となります。

f:id:dicen01:20191009212550p:plain

MySQL

 MySQLを設定するにあたり、たろいもはMySQLのサイトから以下3つのファイルをダウンロードしました。

  1. MySQL Community Server 8.0.12
  2. MySQL Workbench 8.0.13
  3. MySQL for VisualStudio 1.2.8

 Community Serverには、Workbenchが含まれるのですが、Workbench 8.0.12には、「一定時間経過するとSQL実行結果が表示されなくなる」というバグがあり、別途8.0.13をインストールしました。

 え、Communityも8.0.13を入れればよかったのにって? だって既に8.0.12で開発勧めちゃってたんだもの。今更DB本体変えたくなかったし・・・・・・。

1.MySQL Community Server

 さて、このCommunity Serverですが、ServerやらWorkbenchやらShellやらConnectorやら、いろいろとオールインワンなパッケージです。そのため、端末の状況によりインストール時のウイザード画面が割と変わります。

 とりあえずここでは、肝になりそうなサーバー設定辺りの画面を記載しておきます。

f:id:dicen01:20191009212553p:plain

f:id:dicen01:20191009212557p:plain

f:id:dicen01:20191009212600p:plain

f:id:dicen01:20191009212605p:plain

f:id:dicen01:20191009212613p:plain

 InnoDB Clusterは使用せず、認証も「Legacy」を選択しました。2015年相当の.Netとの連携でトラブりたくないなぁと、すみません、日和ました。

2.MySQL Workbench

 上でも書きましたが、Community 8.0.12 に付属したWorkbench 8.0.12 には、使用上で不便を強いられるバグがあり、後追いでWorkbench 8.0.13 をインストールしました。

 現在Communityの最新バージョンは8.0.17(2019年10月現在)のようです。同梱のWorkbenchに問題が無ければ、あえて別途Workbenchをインストールする必要はありません。

 こちらは別段設定などは無く・・・・・・、

f:id:dicen01:20191009212616p:plain

 完全インストールを選んだくらいでしょうか。

 Workbenchは安全対策として、初期状態では「UpdateやDeleteは、Whereに主キーを含まない場合には実行不可」という設定になっています。

 以下のように、[Edit]-[Preferences...]で表示される[Workbench Preferences]で設定が変更できます。

f:id:dicen01:20191009212620p:plain

3.MySQL for VisualStudio

 for VisualStudioのインストールは、必ずVisual Studio 2015と、MySQLのインストール後に行いましょう。

 こちらも特に設定はなく、

f:id:dicen01:20191009212625p:plain

 「Typical」もしくは「Complete」を選択しておけば良いかと。

おしまい

 なんとまぁ、第1回目はインストールだけで終わってしまいました。その上インストールの説明してるだけの割に長い。このシリーズ、どれだけの長さになるんでしょうかね・・・・・・。できるだけ簡潔になるように頑張ります。

【Excel,数式】数式でセルのマッチングと、指定要素を参照する

 初めての方は、はじめまして。再びご覧いただいた方はこんにちは。たろいもです。

 Excelさんは「表計算ソフト」です。「作表ソフト」でも、「方眼紙」でもありません。「表」で「計算」をするソフトなのです、「方眼紙」便利ですけど。

 なので、Excelさんはセル上で計算したり、セル同士の計算したりといった作業が得意です。他にもセルの内容を比較したり、特定のセルを探したり、セル内容の大小を判断したり、と、様々な能力を持っています。こういった様々な能力の多くは、「関数」という機能で実現できます。

 今回は、そんな「関数」の中でも、マッチング(特定の項目を探し出す)と、指定要素参照(指定位置にある要素を持ってくる)について、ご紹介しましょう。

 本日のメニューはこちらでございます!

 たろいものオススメメニューはMATCHとINDEXです。

マッチングして指定要素を持ってくる「VLOOKUP」

 「マッチングして指定要素を持ってくる」って言われても、何をどうするの? となることでしょう。

 たとえば、こんな一覧表があったとして、

f:id:dicen01:20191008211328p:plain

 「商品No:S1200の商品の名前は?」と聞かれれば、人間なら表から「あ、塩飴」って分かります。それをExcel上で自動的にやろうと思うと、

  1. 商品No:S1200 に対応する行を探す(マッチング)
  2. 探した行の商品の名前が記載されている列の情報を表示する(指定要素参照)

という、2つのステップが必要となります。「VLOOKUP」は、この「マッチング」と「指定要素参照」の2ステップを一気に行ってくれます

 たとえばこんな感じです。

f:id:dicen01:20191008211332p:plain

 と、これだけだと分かりづらいので、関数の解説を。

 = VLOOKUP(検索値, 範囲, 列番号, [検索方法])

f:id:dicen01:20191008211336p:plain

 「[検索方法]」項目は、"[]"で囲われていますが、これは「任意項目」です。指定してもいいし、しなくても既定の設定で処理されます。

 この検索方法ですが、「完全一致」と「近似一致」を選べます。既定では「完全一致」です。「近似一致」だと読んで字のごとく、「似通った値」でもひっかけることができるのですが、「範囲」で選ぶ表にも少々ルールがあるため、ここでは割愛します。

一覧から一致する項目の位置を探査する「MATCH」

 「VLOOKUP」が持つ2要素、「マッチング」と「指定要素参照」の内、「マッチング」だけを行ってくれる関数です。

 たとえばこんな感じです。

f:id:dicen01:20191008211339p:plain

 この関数は、下のような指定方法です。

 = MATCH(検査値, 検査範囲, [照合の種類])

f:id:dicen01:20191008211350p:plain

 MATCH関数は、「検査範囲」を検査して、「検査値」がある場所を教えてくれる関数なので、ある場所を示す番号が返ってきます。上の例だと3番目に同じ物があるので「3」ですね。

 「[照合の種類]」項目は"[]"で囲われており、「任意項目」です。が、指定しない場合の既定は「1:検査値以下の最大を探す」という少々面倒な設定です。普通に使用する場合には「0:完全一致」が分かりやすいので、必ず「0」を指定しましょう。

表から指定した行と列にある要素を持ってくる「INDEX」

 「VLOOKUP」が持つ2要素、「マッチング」と「指定要素参照」の内、「指定要素参照」だけを行ってくれる関数です。

 たとえばこんな感じです。

f:id:dicen01:20191008211354p:plain

 この関数は、下のような指定方法です。

 =INDEX(配列, 行番号, [列番号])

f:id:dicen01:20191008211358p:plain

 INDEX関数は、「配列」で指定した領域の、「行番号」「列番号」が示す位置にある要素を表示する関数です。上の例だと、4行目の3列目である「B社」という要素が表示されています。

 「[列番号]」が任意項目になっていますが、それは下みたいに「配列」で指定する先を1列だけにして、「行番号」だけで要素を参照するという使い方もできるためです。

f:id:dicen01:20191008211402p:plain

マッチングして指定要素を持ってくる「INDEX+MATCH」

 お待たせしました。ここまでの項目は「前菜」で、ここからが「メインディッシュ」です。マッチングして指定要素を持ってくるVLOOKUP関数に対し、マッチングだけのMATCH関数と指定要素を持ってくるだけのINDEX関数。このINDEX関数とMATCH関数を組み合わせることで、VLOOKUP関数と同じことができます

 たとえばこんな感じです。

f:id:dicen01:20191008211406p:plain

 中身はこんな感じになってます。

f:id:dicen01:20191008211411p:plain

 MATCH関数で調べた行数を、INDEX関数で使用するという構成です。

 「VLOOKUP関数1つでできるなら、その方がいいでしょ」という声が聞こえてきそうです。ですが、INDEX+MATCHには、VLOOKUPには無いメリットがあります。いやむしろ、VLOOKUPにはいくつかの欠点があると表現したほうが良いでしょうか。

1.VLOOKUP関数は「範囲」で指定する表の融通性が低い

 VLOOKUP関数の「範囲」指定する表には「一番左側に検査値を探すための要素が必要」という縛りがあります。このため、表示したい値がある列は、必ず検査値を探す列より右側に無くてはならないという制約が発生してしまいます。関数で利用するだけの表ならば、列を並べ替えてしまえばいいかもしれませんが、他の使用者とも共有している表などで、おいそれと列の並び順を変えられない場合にはVLOOKUPを使えないことになります。

2.VLOOKUP関数は処理速度が遅い

 VLOOKUP関数とINDEX関数+MATCH関数を比較した場合、複数の面で処理速度に差が出ます。まず、大前提として、VLOOKUP関数は、INDEX関数+MATCH関数の場合に比べて遅いです。ただし、数十件程度の探索では差を感じられるほどではないと思います。最低でも探査先が数千件レベルになった場合の話ですが。

 さらに、VLOOKUP関数は1つの関数で「マッチング」と「指定要素参照」の両方を行ってしまうため、複数の要素を参照したい場合に、余分な処理が行われることになります。

  • VLOOKUP関数の場合

f:id:dicen01:20191008211417p:plain

  • INDEX関数+MATCH関数の場合

f:id:dicen01:20191008211422p:plain

 INDEX関数+MATCH関数の場合には、MATCH関数で調べた位置を複数要素で利用できるため、MATCH関数は1回使用するだけで良いことになりますが、VLOOKUP関数の場合は関数内部に処理が含まれてしまうため、参照したい要素全てで「マッチング」と「指定要素参照」を行ってしまいます。

 「そう言われても、わざわざINDEX関数とMATCH関数で2セルも使いたくない!」という方、こんな感じで1セルに書くこともできます。

f:id:dicen01:20191008211426p:plain

 ちょっと複雑になりますけどね・・・・・・。

おしまい

 ここまでお読みいただいた方ならお分かりいただけるかと思いますが、たろいもはINDEX+MATCH"推し"です。というか「VLOOKUPなにそれ美味しいの?」レベルです。

 業務上でデータ整理を頻繁に行うのですが、項目増やしたり、途中処理を増やしたりで、列を指し込むことが頻繁になります。VLOOKUPはそういった表の変化にも弱い部分があります。なので、少々とっつきにくい部分もありますが、INDEXとMATCHの使い方に慣れるといろいろと便利です。

 INDEXやMATCHは更に応用的な使い方もできまして、例えば「不当定多数の人が行追加削除をやりたい放題してしまうシートをリンクしたい!」となった場合、普通のリンクでは行削除されたらリンク切れ起こします。が、INDEXとROWを用いることでリンク切れしないリンクを構築できます。MATCHは、検査範囲をOFFSETで指定することで、条件により探査先を変えるなんていう使い方もできます。

 はい、かなりニッチな使い方ですね。その辺を記事にする日がくるかどうか・・・・・・、たぶん無い気がします。

【マウスを使ってはいけないExcel】その4、キーボードショートカット3(ブック切り替え、ブック終了編)

 初めての方は、はじめまして。再びご覧いただいた方はこんにちは。たろいもです。

 マウスを使わずにExcel頑張ろうシリーズの4回目です。今回はExcelのファイルを切り替えたり、閉じたりするショートカットです。Excelの~とか言ってますが、今回の内容の3分の1くらいはExcelではなく、Windowsの機能だったりします。

 本日のメニューはこちら

ブックの切り替え

 ブックの切り替え、それはCtrl押しながらTabで出来ます!

 「そもそもブックって何? ブック切り替えってどういうこと?」という方、以下をご覧ください。

 ブックとは何か。それはExcelファイルのことです。

  • セルが集まってシート
  • シートが集まってブック

 2つ以上のブックを開き、内容を見比べたり、こっちのブックからそっちのブックへ内容をコピペしたり、Excelでは良く行うことです。

f:id:dicen01:20191007211958p:plain

 ブックが複数開いている場合、Windowsでは複数のアプリが開いているように表示されるため、下のタスクバーをマウスでポチポチすることで切り替えできます。

f:id:dicen01:20191007211951p:plain

 見比べている時に、マウスでポチポチ切り替えるのも面倒だし、コピペしている時も煩雑です。

 1画面で2つ分を並べて見る方法もありますが、どうしても大きさが狭くなります。

f:id:dicen01:20191007211955p:plain

 そんなあなたに「Ctrl押しながらTab」。このショートカットを使えれば、簡単にブックの切り替えができるのです!

f:id:dicen01:20191007212002p:plain

 2つのブックを開いた状態なら、「Ctrl押しながらTab」を押すたびに、ブックを行ったり来たりします。

 ちょっと細かい話になりますが、元々Excelって、アプリの中で複数のブックを開くことのできるMDI(Multiple Document Interface)という仕組みです。

f:id:dicen01:20191007212005p:plain

 このイメージって、Excel2010の頃だと、画面でもイメージ付きやすいです。

f:id:dicen01:20191007212010p:plain

 だったのですが、Excel2013からは、MDIウインドウ部分が無くなってしまい、

f:id:dicen01:20191007212013p:plain

 こんな感じに・・・・・・。ただ、Excel2013以降でも「Ctrl押しながらTab」でのブック切り替えはできます

 ちなみに、ブックが3つ以上開いている場合。

f:id:dicen01:20191007212017p:plain

 「Ctrl押しながらTab」を押すたびに、開いているブックを順に表示していきます。

 あ、そうそう、この図、Excel方眼紙で描いてます。

ブックの切り替えで高速見比べ

 「Ctrl押しながらTab」でのブックの切り替えを使った小技を1つ。

 ご用意いただくものは、見た目が似ていて、違いが分かり辛いExcelブックを2つ。開いているExcelブックはこの2つのみにしていただき、CtrlとTabを押しっぱなしにしてください。

 2つのブックが高速で切り替わり・・・・・・、ほら、2つのブックで違うところがチラチラと残像のように見えてきましたか? ひたすら目を凝らして探すよりは、多少簡単に違いを見つけられる小技です。

 MDIウインドウでなくなってしまったExcel2013以降をご使用の方、2つのExcelブックの画面を最大化していただけば、同じことができます。

ブックの終了とアプリの終了

 ブックを閉じるとき、アプリを閉じるときのキーボードショートカットをご紹介しましょう。

やること ショートカットキー
ブックを閉じる Ctrl押しながらF4
アプリを閉じる Alt押しながらF4

 「それ何が違うん?」という方、それはこういうことです。

f:id:dicen01:20191007212022p:plain

 Excel2010の画面で言うと、こうなります。

f:id:dicen01:20191007212025p:plain

 そろそろお分かりかと思いますが、「Alt押しながらF4」でアプリを閉じてしまうと、開いているブックが全て閉じます。だったのですが・・・・・・

f:id:dicen01:20191007212030p:plain

 Excel2013以降では、この2つのショートカットは同じ内容になってしまいました・・・・・・。

 仕方ないんです、たぶんMDI(Multiple Document Interface)が分かり辛いから廃止されたのだと思います。たろいも的には一抹の寂しさがありますが・・・・・・。

 Excel2010の頃には、全部ブック閉じてしまうと、「何もブックが無い画面」になったりしたのですが。

f:id:dicen01:20191007212035p:plain

 確かに、あまり意味の無い画面ですね・・・・・・。

 余談を1つ。「Ctrl押しながらF4」は、「Excelのブックを閉じる」という、Excelアプリ上でのショートカットですが、「Alt押しながらF4」は、「アプリを閉じる」という、Windows上でのショートカットです。なので、「Alt押しながらF4」は、Excel以外のアプリも閉じることができます

おしまい

 4回目となる本シリーズ。ここまで全てをお読みいただいた方、「指の動きが気持ち悪い」と言われる日も遠くないはず! え? そんなの求めてないって? こりゃ失敬。

 「CtrlとTabの押しっぱなし」でのブック高速切り替えは、ちょっと見比べたいときになかなか便利です。一度お試しあれ。

 今回、ブックやアプリを終了するショートカットを記載しましたが、ファイルを閉じる前には、必要に応じてしっかり保存しましょう。「お前が変なショートカット教えるから、うっかり消しちゃったじゃないか!」と言われても、たろいもは責任とれません。用法用量を守って、正しくご利用ください。

【マウスを使ってはいけないExcel】その3、キーボードショートカット2(シート、ブック操作編)

 初めての方は、はじめまして。再びご覧いただいた方はこんにちは。たろいもです。

 できるだけマウスを使わないでExcelしようというシリーズ3回目です。2回目はセルを操作するショートカットを中心にお伝えしましたが、今回はシートやブック(Excelのファイル)を操作するショートカットをご紹介です。

 それではお品書き

上書き保存と名前を付けて保存

 Excelさん左上のアレ(クイックアクセスツールバー)にある最後の一つ、「上書き保存」がついに登場です。

f:id:dicen01:20191005211204p:plain

 他の2個についてはこちらを参照してください。

 「上書き保存」とは、今開いているファイルに加えた変更を、そのままそのファイルを上書きすることで保存することです。

 このキーボードショートカットは有名かもしれませんが、「上書き保存」を行うには、Ctrl押しながら「s」です。

 Excelに限らずOfficeのソフトって、それまでサクサク動いていたのに、突然止まったり、何も言わずに落ちたりすることがあります。たろいもも唐突なエラーで半日作業がふっとび、血涙を流した記憶があります。いや、保存してないたろいもが悪いんですけどね、ええ、そうなんですけどね。

 Excelで作業をするときは、マメな保存を。さもないと、枕を涙で濡らすことになります。

 さて、保存は保存でも、「名前を付けて保存」。これは今開いているファイルを、「別のファイル」として保存することです。

 元のファイルとはちょっと違った傾向の資料を作るとか、元のファイルは"バックアップ"として残しておきたいとか、これも使う機会は中々に頻繁だと思います。

 このショートカットって案外マイナーな気がしますが、「名前を付けて保存」を行うには、F12です。なんとボタン一つです。「やり直し」のF4に続き、マイナーなワンボタンショートカット登場です。

 Microsoftさんが規定するFキー(ファンクションキー)の割り当てってどういう基準なんでしょうかね・・・・・・。いや、いいんです、便利なんで。いいんですけど、「名前を付けて保存」も、"Ctrl+~"なショートカットでも良かったんじゃないかと思うのですが。まあ、いいんですけどね、便利なんで。(2回目)

印刷

 はい、結論から行きます。印刷はCtrl押しながら「p」です。と、言いつつも、いきなり印刷するわけではなく、印刷プレビューの出る画面に移動するだけです。

f:id:dicen01:20191005211207p:plain

 実際に印刷するには、この印刷プレビュー画面で、プリンターの絵が付いている「印刷」ボタンを更に押してやる必要があります。

f:id:dicen01:20191005211216p:plain

 Excel2003の頃には、容赦なく印刷が始まるボタンがありまして。

f:id:dicen01:20191005211211p:plain

 このボタン、押した瞬間にプリンターが"うぃ~ん"と唸りを上げ始めます。ほんと容赦ない。そのおかげか、印刷レイアウトも碌に設定しない状態でいきなり印刷してしまい、「あっ! ちょっぴりだけはみ出した部分が2枚目になった!」なんてことは、たまによくありました。

 今は必ず「印刷プレビュー」を間に挟むようになったので、そういった事故は減ったと思います、思いたい。Excel2003当時を知る人の中では、印刷が面倒になったと思ってる人も居るかもしれませんが、たろいもとしては、やはり用紙を無駄にしないためにも、プレビューは見るべきだと思います。

シート切り替え、右へ左へ

 Excelでは、1ファイルに複数のシートを持つことができます。

f:id:dicen01:20191005211219p:plain

 シートの下に表示されている「タブ」をクリックすることで、シートの切り替えができるのです。が、頻繁に行き来する場合には、これがなかなかに面倒です。

 そんなあなたに朗報です! なんとシートの選択を左右に移動するショートカットがあるのです!

やること ショートカットキー
右(→)のシートに移動 Ctrl押しながらPageDown
左(←)のシートに移動 Ctrl押しながらPageUp

 はい、マイナーキーの登場です。PageUpとPageDown! そんなキー使ったことないという方。わかります。たろいももこのショートカット覚えるまでは一度も使ったことありませんでした!

 でも、これを知ってしまうと、PageUpキーとPageDownキーの表面が少しテカり出すくらいには使うこと間違いなし。

f:id:dicen01:20191005211222p:plain

 例えば、「Ctrl+PageDown」を続けて押していけば、次々右のシートへと切り替わっていきますし、「Ctrl+PageUp」を続けて押していけば、次々左のシートへと切り替わっていきます。

 ただ、このショートカットは左右どちらかの一つ隣にしか移動できません。たくさんシートがあるファイルの一番左から一番右へ移動したい場合などは逆に面倒になるかもしれません。

f:id:dicen01:20191005211225p:plain

 あまりにシートが多くて切り替えが煩雑な場合には、このようにマウスを使うことでシート一覧から行き先を選ぶこともできます。え? マウスを使わないんじゃなかったのかって? いい言葉があるじゃないですか、ほら、適者生存? じゃなくて適材適所。

新しいシートの追加

 これまたイキナリ結論を。Excelのファイルに新しいシートを追加するのはShift押しながらF11です。

f:id:dicen01:20191005211231p:plain

 図みたいにSheet1、Sheet2、Sheet3と並んでる状態だと、Sheet3の右側にSheet4が来てほしい感じがします。でも、シートの追加は左側なので、仮にSheet3で「Shift+F11」しても、Sheet3の左側にSheet4が来ます。 シート追加ボタンでシートを追加した場合には、新しいシートは右側に来るのに・・・・・・。

f:id:dicen01:20191005211234p:plain

新しいブックの作成

 「ブックってなんやねん?」という声が聞こえる気がします。幻聴ですか? そうですか。

 「ブック」というのは、そのままExcelのファイルです。Excelのファイルはザックリ言えば以下のような構成であると言えます。

  • セルが集まってシート

  • シートが集まってブック

 なので、ブックはそのものExcelのファイル自体を指します。Excelのファイルとは、たぶんマス目状のページがたくさんある本というイメージなのでしょう。厳密に言えば、シートはワークシート、ブックはワークブックと呼んだりもします。

 前置きが長くなりましたが、新しいブックの作成とは、新しいExcelファイルのことです。あー、こう言えばよかったですね、「新規作成」のショートカットはCtrl押しながら「n」です。前置きを自身で形骸化していくスタイルです。

 「新規作成」なので、まっさらなExcelファイルが1つ出来上がります。

おしまい

 3回目となりました「マウスを使ってはいけないExcel」シリーズ。とか言いながら、今回もマウス使う説明が1か所出て来てますが・・・・・・。いいんです、適者生ぞ・・・・・・適材適所です。

 Excelでデータの整理などを行っていると、どうしてもシートがだんだんと増殖していきます。そうなるとマウスでポチポチ切り替えるのはとても煩雑になってきます。Ctrl+PageUp,PageDownでの切り替えもさることながら、他にも複数シートの見比べなどをやりやすくする手段があったりします。が、それはまた別の機会にでも。