事務処理・バッチ処理のための「なでしこ3」PC版について

# 日本語プログラミング言語「なでしこ」について

日本語プログラミング言語「なでしこ」は、事務処理を自動化するために開発されました。そのため、文字列処理、整形処理なども得意中の得意です。ここでは、なでしこで簡単な事務処理やバッチ処理を書く方法を紹介します。

 - [→日本語プログラミング言語「なでしこ」のWebサイト](https://nadesi.com)

![スクリーンショット 2021-11-14 0.34.51.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/33180/03660c54-8d1c-6f4a-9a2d-f8f0bae49053.png)




# なでしこv1とv3について

なでしこには、Windowsに特化した「なでしこv1」と、Webブラウザでの実行に特化した「なでしこv3」があります。
ローカルで手軽に事務処理したい場合には「なでしこv1」を選ぶことも多いのですが、今回は「なでしこv3」を使ってみましょう。

# PC版(Node.jsランタイム)について

なでしこv3で事務処理をする場合、PC版(Node.jsランタイム)を使うと便利です。 なお、Node.jsというのは、JavaScriptの実行エンジンで、バッチ処理やサーバーアプリ作成など、かなり高性能な機能を持ったやつです。なでしこ3は内部でJavaScriptに変換されて実行される仕組みなので、Node.jsの力を借りることができるのです。Node.js版を使う事で、かなりいろいろな処理が可能になります。なお、なでしこ3の開発でも、このPC版(Node.js)が大々的に使われています。

とは言え、Node.jsをインストールしたり、セットアップしたりするのは、それなりに面倒な作業です。そこで、Windowsに関しては、Node.jsを同梱して自動セットアップしてくれる[nadesiko3win32](https://github.com/kujirahand/nadesiko3win32/releases)を提供しています。これを使うと、手軽に、なでしこ3PC版を実行できます。

## なでしこ3配布パッケージ(nadesiko3webkit)では駄目なの？

ちなみに、Windows版のなでしこ3のパッケージには、[Windowsのなでしこ3配布パック](https://github.com/kujirahand/nadesiko3webkit/releases)もあります。
これはWeb版のなでしこ3を配布するためのもので、GUIを持ったアプリを利用したいときに使います。基本的にWebの機能をローカルPCで使うためのものなので、使える命令が限られます。その代わり、配布サイズが小さいのが特徴です。

なお、使える命令の違いは、以下のマニュアルを見比べると良いでしょう。

- [ブラウザ版の命令一覧](https://nadesi.com/v3/doc/index.php?wnako&show)
- [PC版(Node.jsランタイム)の命令一覧](https://nadesi.com/v3/doc/index.php?cnako&show)

そのため、事務処理メインなら、PC版(Node.js)を使うと便利です。華やかなGUIはなく、コマンドラインかブラウザからプログラムを実行することになりますが機能が豊富です。

# PC版のダウンロードとセットアップ(Windowsにて)

Node.jsを梱包したパッケージが、Windows向けの[nadesiko3win32](https://github.com/kujirahand/nadesiko3win32/releases)からダウンロードできます。

アーカイブをダウンロードしたら解凍します。そして、以下の図の「setup.vba」をダブルクリックすると、Node.jsランタイムをセットアップします。

![スクリーンショット 2021-11-13 23.48.59.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/33180/2264d2b6-bbc9-30c9-1091-84279c0ee996.png)

そして、「nako3edit.vba」をクリックすると、Node版のなでしこ3を手軽に実行する画面がでます。

![nako3edit.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/33180/a32c6dbe-5d8e-82d6-8f83-86b1fa29e6ca.png)

ちなみに、以下は、macOSの手順ですが、WindowsでもPowerShellを利用して同じようにコマンドラインからなでしこ3を使うこともできます。

# PC版のダウンロードとセットアップ(macOSにて)

macOSでは、ターミナル.appを利用してセットアップしましょう。

- 最初に[Node.js](https://nodejs.org/ja/)をインストールします。
- 続いて、[Homebrew](https://brew.sh/index_ja)をインストールします。

その後、ターミナルで以下のように記述します。

```
git clone https://github.com/kujirahand/nadesiko3.git
cd nadesiko3
npm install
```

そして、なでしこ3のNode.js版エディタを起動するには、以下のコマンドを実行します。

```
npm run nako3edit
```

あるいは、環境変数PATHになでしこのbinディレクトリを登録し、プログラムを好きなエディタで書いて以下のコマンドで実行できます。

```
cnako3 (なでしこのプログラム).nako3
```

# ファイルのコピーなど

さて、なでしこ3ＰＣ版では、ファイルのコピーなどのバッチ処理も簡単に記述できます。

```ファイルコピー.nako3
「aaa.txt」から「bbb.txt」にファイルコピー。
```

見たまま、読んだままに実行されるのが日本語プログラミング言語の良いところですね。


#　ファイル列挙など

ファイルの列挙などは、以下の連載が参考になるでしょう。

- [マイナビ連載より、Windows/macOS/Linuxで「なでしこ3」](https://news.mynavi.jp/article/nadeshiko-27/)

# テキストファイルの内容を読んで整形する

例えば、テキストファイルの内容を読んで整形するなんて処理も、事務処理をやっていると、よく出てくる物です。

よくあるのが、CSVファイルの内容を整形しつつ、複数ファイルを結合するなんて感じです。例えば、各月のクレジットカード明細などをCSVファイルでダウンロードしておいて、それを一つのまとめて1年分の明細を作る場合などです。

以下はとりあえずCSVファイルを読んで結合し「all.csv」という名前で保存する例です。

```
「*.csv」の全ファイル列挙して反復
　　　　対象を開く
　　　　それをSに代入。
　　　　Sをトリムして表示。
ここまで
表示ログを「all.csv」へ保存。
```

(メモ) 最近では、CSVもUTF-8で出力されますので、上記のように書いていますが、もし、CSVファイルが、Shift_JISの場合は、二行目を「対象のSJISファイル読む」、末尾を「表示ログを「all.csv」へSJISファイル保存」と書き換えると良いでしょう。

# まとめ

以上、簡単になでしこ3PC版(Node.js)のインストールから簡単なバッチ処理を行う方法を紹介しました。

まだまだ、なでしこv1の方が命令数は多いのですが、基本的なバッチ処理であれば、なでしこv3もそれなりに命令が揃ってきました。便利な命令がたくさんあるので、試してみてください。