モーリーのメモ

アプリ開発等(プログラミング、CG作成)、興味を持ったことを実践してまとめるブログです。

モーリーのメモ

○×をテンキーで入力出来るようにする!:Excel

<今回やること!>
 Excelで、セルに数字の0を入力したら×、1を入力したら○が表示されるように設定します。↓こんな感じです。

    f:id:mmorley:20170510160352g:plain
 先日、大量にデータ入力をしたのですが、数値と○×の入力が混じっていたため、なかなか面倒なものでした。そこで、○×もテンキーで入力出来たらな~と思って探した方法を紹介します。
 
 マクロではなく、セルの書式設定を使用します。
 『○/×』以外にも『OK/NG』や『優/良/可』等、三択までなら同様に設定可能です。逆に言うと、三択までしか出来ません。これはExcelの仕様のためです。 
 
 以降で、詳しいやり方を説明します。

続きを読む

match()とreplace()を使ってファイル名を変更する!(ちょっと対話型):Node.js

mmorley.hatenablog.com
 ↑の記事のプログラムの派生版です。
 
 文字の検索(match())や文字の置換(replace()関数)を使って、ファイル名を変更します。
 フォルダ内の複数のファイルからmatch()を使って対象のファイルを絞り込み、replace()で新しいファイル名を作成します。
 変更前には、変更内容を確認します。
 ユーザーに確認を取るための対話型処理については、冒頭の記事で説明しています。

続きを読む

フォルダ内のファイル名に連番を付ける!(ちょっと対話型):Node.js

 フォルダ内のファイルを、ファイル作成日で昇順にソートして、ファイル名に連番を付けるプログラムを作ります。
 image01.jpg、image02.jpg、image03.jpg、、、みたいにします。
 
 データを消して飛び飛びになった番号を振り直したい時に使えます。
 元のファイル名はバラバラでもかまわないので、ファイル名を統一したい時にも使えます。
 
 ファイル名を変更する前に、変更内容を表示して、実行するか確認します。コマンドライン(ターミナル)で1度Yes/Noを聞くだけですが、一応対話型の処理です。
 
 今回行う処理は、全て標準モジュールだけで作成しています。

続きを読む

Visual Studio Codeでデバッグする!:Node.js

 Node.jsのデバッグ環境が欲しい!ということで調べると、Visual Studio Code(以下、VSCode)で簡単に出来ることがわかりました。
 VSCodeは既にエディタとして利用しているので、早速試してみました。

続きを読む

同期・非同期処理で、フォルダ内のファイルを列挙する!:Node.js

 ↓こちらの記事で、Node.jsの環境を作成しました。
mmorley.hatenablog.com
 Node.jsの使用例を見ていたら、ファイル操作が出来ることを発見!ここでのファイル操作とは、ファイルの名前変更、削除、ファイル情報の取得等です。
 
 ブラウザ上で動く従来のJavaScriptでは出来なかったので盲点でした。個人的には、不慣れなunixコマンドよりいろいろ出来そうです。
 
 ファイル操作に関する関数群は、Node.jsの標準モジュールに含まれています。Node.jsには使いたいライブラリをnpmで組み込んで使用する仕組みがありますが、標準モジュールは最初から組み込まれています。
 標準モジュールに含まれる関数群の詳細は、公式のAPIリファレンスで確認出来ます。
 
 ということで、今回は試しにファイル内のフォルダを列挙するプログラムを作成します。
 またNode.jsのプログラムでは、同期処理、非同期処理に注意する必要があります。今回は試しにそれぞれ作ってみます。

続きを読む

Node.jsをMacにインストール!(Homebrew→Nodebrew→Node.js順にインストール)

 <前置き>
 画像から文字を読み込むOCRについて調べていたら、Tessract.js(テッサラクト・ジェイエス)というライブラリを発見しました。
 なんと純粋なJavaScriptで書かれているとのこと。しかも60以上の言語を認識出来るらしいです。
 さっそく手順に従ってHTMLに組み込んでみましたが、ブラウザがローカルデータへのアクセスを制限されているため失敗しました。
 ブラウザにアクセス許可を与えるのは怖いなと思ったのですが、他に『Tesseract.jsをnpmでインストールして、requireして使う方法』が書いてありました。出てきた用語だいたいわかりません。
 npm?、require?、どういうこと?と思って調べると、まずはNode.jsを導入する必要があることがわかりました。
 Node.jsは、従来のHTMLに組み込むJavaScriptとは別物でしたが、調べるとBrowserifyという従来のJavaScriptと結びつける方法もあるようなので、中々おもしろそうです。
 ということで、名前は知っていたものの横目で見るだけだったNode.jsをこれを機に導入することにしました。
 <ここから本題>
 調べたところNode.jsを直接インストールするより、Homebrew→Nodebrew→Node.jsの順にインストールするのが後々を良いようです。
 その理由となるそれぞれの役割について、簡単にですがまとめました。
 また、YosemiteやEl Capitanで、Homebrew経由でインストールするとNodebrewがうまく動かないという記事がありましたが、私の環境(El Capitan)では問題は起きていません。
 実際にインストールした手順をまとめました。
 インストール後に、Node.jsで実際に、HelloWorldプログラムとTessract.jsを使った文字認識を実行しました。

続きを読む