[VBA]メモ帳を読み込み、行の先頭に任意の文字列があればエクセルのシート1へ。無ければシート2へ貼り付けするマクロ。

VBA学習まとめ VBA

 

ソースコード

 

 

※追記

まずエクセルを起動し”sheet2”を作成する。”sheet2″がなかった場合、エラーが出る。

ExcelのVBAでsheet2がなければsheet2を作成し、sheet2があればシートを作らないプログラム

 

メモ帳の情報を取得する方法・メッソッドなどまとめ

 

FileSystemObject オブジェクト

FileSystemObject オブジェクト

コンピューターのファイル システムへのアクセスを提供

→オブジェクト変数を使用し、インスタンスを作成する。

Set fs = CreateObject(“Scripting.FileSystemObject”)

 

OpenTextFile メソッド

OpenTextFile メソッド

指定したファイルを開き、開いたファイルの読み取り、書き込み、または追加書き込みに使用できる TextStream オブジェクトを返します。

構文
object.OpenTextFile (filename, [ iomode, [ create, [ format ]]])

 

ReadAll メソッド

ReadAll メソッド

TextStream ファイル全体を読み取って、結果の文字列を返します。

構文
オブジェクト.Readall

ReadAll…全体を取得

ReadLine…1行(改行手前まで)を取得

 

Split関数

Split関数

Split(文字列,区切り文字)

区切った文字列を一次元配列で返す。

 

ReadAllで一括取得したデータを、(Split関数で)改行で区切り、行を要素とした配列を作成。

 

(文字列の長さを取得するLen関数と)文字を取り出すLeft関数で、行の先頭と検索文字列が一致するかどうかを判定。

 

Constステートメント

・定数を宣言する。定義した値は変更できない。定数は(VBAでは)宣言時に初期化しなければならない。

 

メモ帳からエクセルへ貼付け時の文字化け解消

メモ帳の保存形式を「ANSI」にするのが手っ取り早い

 

その他・参考

ネットでよく見る変数「buf」の意味

 

VBAでループのcontinueを疑似的に行う方法

リーダブルコードなどの本にも書いてありますが、一般的には処理を途中で抜けられる場合はその場で抜けた方がよいとされているため、大きなIf文よりもCONTINUEラベルを用意した方がよいと思われます。

たまに、「GoTo=スパゲッティコード」というイメージが強いのかGoToを嫌悪する方がいらっしゃいますが、それはおかしなGoToの使い方をするからおかしくなる話であって、GoToが悪いわけではありませんし、そもそもC言語などのbreakやcontinueもやっていることはルール化されたGoToです。

親身な指導で実力をつけるプログラミングスクール | CodeVillage

 

タイトルとURLをコピーしました