宿題を放っていてMS-XのDanteというRPGツクールでRPGを作って、登校日もサボっていたら、呼び出しをくらって先生と友達が迎えにきていました。やっかいな夏休みの宿題ですが、先にやっつけておけば、気分的にも安心でき、夏休みを心地よく過ごせるものです。そこで、今日のエクセルVBA日本語化の宿題もやっつけておきましょう。選択範囲内のセルに値が入っていたら、順番にテキストファイルに出力しようというお題です。これで、範囲選択しさえすれば、どんなデータも好きにテキストファイルへ出力できます。それでは、いってみましょう!ファイルを開いておくメインとなるサブルーチンまずは、サブルーチンの囲いを作っておきましょう。メインとなるサブルーチンメインとなるサブルーチン以下のコードをコピペされてもかまいません。Subファイルを開く次に、「io_入出力」という道具を使ってファイルを開きます。以下のように、「io_」まで入力してCTRL+スペースキーを押下すると、コードが補完され、「io_入出力」と補完されます。次に、「.(ピリオド)」を入力します。するとコード補完候補が表示されます。「io_入出力」のコード補完候補。「ファイル書込開く」を選択するコード補完候補が表示されたら、「ファイル書込開く」を選択し、TABキーを押下して補完を完了します。次に、「ファイル書込開く」の引数に、ファイル名や、フォルダ名を指定していきます。コードの下に、どのような引数があるかリスト表示されるので、ファイル名、フォルダ種別などを指定していくまず、ファイル名に、”セルの値.txt”と指定します。次に、「,(カンマ)」を入力します。次の引数へ移るという意味です。フォルダ種別の補完候補に「現在のフォルダ」を指定するすると、フォルダ種別の指定にコード補完候補が表示されます。フルパスで指定したり、マイドキュメントを指定できます。ここでは、「現在のフォルダ」を指定します。この指定により、“セルの値.txt”はエクセルブックのある現在のフォルダに作成されます。以上で、ファイルを書込用に開くコードは完成です。ファイルを書込用に開くコードの完成コードは以下のようになります。うまくいかない場合は、ここからコピペしてください。次に、選択範囲内のセルごとにブロックを呼び出すコードを書いてみましょう。ブロックとは、通常のサブルーチンのことなのですが、「セルごとにサブルーチン呼び出し」から呼び出される点が、通常のサブルーチンと違います。この「セルごとにサブルーチン呼び出し」から呼び出されるサブルーチンを、通常のサブルーチンとは違うよ、と意識するため、「ブロック」と称しています。(動作的にはRubyのブロックと似たようなものですので、Rubyのブロックから名称を拝借しました)まず、選択範囲を取得するコードを書く必要があります。そこで、まず、「g_道具」を呼び出します。「g_」と入力して、CTRL+スペースキーを押下して、「g_道具」とコード補完します。「g_」まで入力してからCTRL+スペースキーを押下してコード補完する「g_道具」とコード補完された。次に、「セル」を取得します。「選択範囲」は「セル」の配下にあるため、ここで「セル」を取得しなければいけません。「.(ピリオド)」を入力し、コード補完候補を表示させます。「.(ピリオド)」を押下してコード補完候補を表示させ、「セル」を選択するコード補完候補を表示させ、「セル」を選択し、TABキーを押下して、補完を完了します。続けて「.(ピリオド)」を入力し、コード補完候補を表示します。最後に「.(ピリオド)」を入力し、選択範囲のサブルーチン「セルごとにサブルーチン呼び出し」を選択します。選択範囲の「セルごとにサブルーチン呼び出し」サブルーチンを選択する次に、「セルごとにサブルーチン呼び出し」サブルーチンに呼び出すブロック”b_セルをファイルに出力”を指定します。「セルごとにサブルーチン呼び出し」にブロック”b_セルをファイルに出力”を指定するファイルを閉じる次に、ファイルを閉じるコードも加えておきましょう。「io_入出力.ファイル閉じる」と入力します。「.(ピリオド)」により補完コードを表示させ、「ファイル閉じる」を選択してください。以下のようなコードになります。Sub選択範囲のセルごとに呼び出すブロックを作成するブロックの囲い次にブロック”b_セルをファイルに出力”を作成します。ブロック”b_セルをファイルに出力”コードは以下のようになります。ここからコピペされてください。Sub第一引数は、「セルごとにサブルーチン呼び出し」から、選択範囲中のセルが1回の呼び出しごとに1つずつ順番に渡されます。ここでは第一引数の名前に「w_セル」(ワークセル)、型に「セル」を指定しています。型「セル」は日本語VBA独自のもので、セルに関するいろいろな操作やデータ取得が出来ます。If文でセルに値があるか判定ここでは、セルが空白でなく、値が存在していた場合にファイルに出力する、ということが目的でした。then」文で、セルに値があった場合のみ行う処理を書きましょう。Then」と書きます。ここでは、セルは「w_セル」、空白は「””」、両者が違っているという条件式は「<>」です。≠という文字がVBAでは使用できないため、「<>」とちょっとかわった記号が使用されています。次に、セルに値が存在する場合、テキストファイルにセルの値を書き込みます。If文の中で、セルの値をテキストファイルに出力するここでは、「io_入出力」の「ファイル1行出力」サブルーチンにw_セル.値のデータを指定して、テキストファイルに1行セルの値を出力しています。補完の仕方は、みなさん、もう了解されていると思いますので、省略しています。完成形の日本語VBAのコードは以下のようになります。日本語関数のもし系の関数で、セルの値の種類を判定することもできます。「F_もし」まで入力し、「CTRL+スペース」キーを押下して、出てくる補完候補を試されてみてください。以下に、日本語関数のもし系の関数で、セルの値の種類を判定し、ファイルにセルの値を出力するサンプルコードを記載します。Sub実際にファイルに出力してみよう元データ上記のようなデータがあったとします。これらのうち、値のあるセルの値をテキストファイルに出力してみましょう。「開発」タブの「マクロ」ボタンをクリックする先ほど作成した日本語VBAを実行するには、まず、「開発」タブの「マクロ」ボタンをクリックします。「開発」タブをエクセルに表示させる方法は、下記URLを参照してください。VBAを手軽に実行してみようhttps://cunning-pg.ringing-web.com/%E3%82%A8%E3%82%AF%E3%82%BB%E3%83%AB%E3%81%A7-%E3%80%8C%E9%96%8B%E7%99%BA%E3%80%8D%E3%82%BF%E3%83%96%E3%82%92%E9%96%8B%E3%81%8D-vba%E3%82%92%E6%89%8B%E8%BB%BD%E3%81%AB%E5%AE%9F%E8%A1%8C%E3%81%97/エクセルで「開発」タブを開きVBAを手軽に実行してみようはい。エクセルブックのリボンに「開発」タブを追加し、VBAを手軽に実行できるようエクセルを設定する方法を、解説します。エクセル関数日本語化のインストール方法は、以下の記事を参照してくださ...「マクロ」ダイアログすると、「マクロ」ダイアログが開き、サブルーチンの一覧が表示されます。ここで、先ほど作成した「選択範囲のセルをファイルに出力」サブルーチンを選択し、「実行」をクリックします。実行結果は、以下のようなテキストファイルになります。値のあるセルの値をテキストファイルに出力できていますね。値のないセルは無視されています。まとめお疲れ様でした。ここまで読んで頂いて、ありがとうございました。ブロックの概念は少し難しいものですが、応用すればこのように短いコードで、有益な実行処理を得られます。みなさんも使いこなされてくださいね。本日の学びを以下にまとめます。「io_入出力」変数から、ファイルを開くことができる。ファイルの場所は「現在のフォルダ」や「マイドキュメント」「フルパス」が指定できる。「選択範囲」からは、「セルごとにサブルーチン呼び出し」が実行でき、ここでブロックを指定できる。ブロックの指定はサブルーチン名の文字列。ブロックでは、第一引数に、現在の呼び出しの呼び出し元のセルが渡される。「io_入出力」で、テキストを1行出力できる。暑い日が続きますが、熱中症には注意して、有益な日々を過ごされてくださいね。最新の記事KaBA@フリーランス修行中こんにちは!IT業界で勤めて17年くらい務めています。プログラミング大好きやろーです。自分も独学でC言語を覚えIT会社に就職しました。その後紆余曲折を経て、VB6.0、VBA、Perl、C#、HTML、CSS、JavaScript、PHPなどを覚えていきました。全部C言語の独学時の経験がベースとなって、学習曲線が良いカーブを描いていました。頑張って覚えられてください!よろしくお願いします。さんの三国志などが好きです。第1行目のみ選択する。moneyテーマの改造を行っています。(8)AWHホスティング999円で8GBメモリのVPS。AWHホスティングがご提供。G-Toolsエクセル関数日本語化というエクセルの関数を日本語にする無料のアプリがあります。エクセルファイル単体で日本語化されていますので、PCの他のエクセルファイルには影響はありません。ワンコイン(1ドル)でご購入できます。エクセルの関数も日本語で覚えれば、意外と素直にわかりやすいです。G-Toolsエクセル関数日本語化というエクセルの関数を日本語にする無料のアプリがあります。エクセルファイル単体で日本語化されていますので、PCの他のエクセルファイルには影響はありません。ワンコイン(1ドル)でご購入できます。エクセルの関数も日本語で覚えれば、意外と素直にわかりやすいです。WordPress%d人のブロガーが「いいね」をつけました。