itLINELINEFeedlyCopy文字列の分割30日間1日1本マクロ生活、記念すべき1日目です。マクロを書く準備は、0日目に記事を書きました。言っても今日なんですけど。マクロを書く準備をしよう【30日間1日1本マクロ生活】マクロを書く準備早速マクロを書こうと思ったんですが、マクロって何?食えんの?って人もいると思うんで、丁寧に行こうかな、と。マクロってのは、通常は人間の手でやるような作業を、プログラムを書くことで機械に自動的にやらせるってことです。Excelの場合はVBA(...今日のネタは、文字列の分割です。こんなデータがあるんです。Valentin人の名前なんですが、左から3文字は国名なんです。このままじゃ使えないんです。A列に入っているこのデータ、B列に名前、C列に国名と分割して出力したいんです。手作業でやってもできないことはありません。これが2600人だったら絶対にやりたくないですよね。そこでマクロなんです。Subでは、解説します。三文字目で分割()」は第0回でも書いたように、マクロの1行目のお約束です。このマクロの名前は「三文字目で分割」です。c」と対応しています。繰り返し処理といって、「For」と「Next」の間を何度も何度も繰り返して実行させる命令です。Selection」について。「Selection」というのは「選択している範囲」という意味です。c」ですから、選択範囲の中の全てのcという意味。選択範囲の中の全てのセルについて繰り返しますよ、という命令です。Selection」の意味に含まれます。c.Row」の「c」は今対象にしているセルのことですよね。「c」の後ろの「.(ピリオド)」は、日本語で言う「の」ですね。「Row」は上から何段目にあるかという数字の意味。「c『の』段」と読み取ってもらえればいいです。それを「y」という変数に入れるんです。Amiran」のセルを対象にしていますから、「1段目」ですよね。「y=1」が入ります。「x」についても同じ。「Column」は左から何列目かを意味しています。「Cells」はワークシートのセルです。カッコの中で「段」「列」の順に指定します。「Mid」は文字列の中から指定した部分を取り出す関数です。「Mid(文字列,開始位置,文字数)」で指定します。5行目は国名を取り出そうとしているので、開始位置は1文字目、文字数は3文字です。6行目は名前を取り出そうとしています。開始位置は4文字目から、文字数は最後まで。大きい数字を入れてます。このマクロでは120文字とか130文字の名前の人は途中で切れちゃいます。データのあるセルの1つ右のセルに名前を入れるので、6行目は「Cells(y,x+1)」とxに1を足したセルに入れます。2つ右のセルに国名を入れるので、5行目はx+2です。Sub」の間にカーソルを置いて、画面上方の再生ボタン的なアイコン(右向きの三角形)をクリックするか、[F5]キーを押します。はい、このようにデータが入っているセルの右2つの列に名前と国名が分割されました。1日目はこんな感じで。ちなみに、このデータが何なのかは分かる人には分かるはずです。悔しいですが、Excelは便利です。Microsoftにお金を払うのは癪でしょうがないんですが、Excelばかりは仕方がない。マクロを書くようになると、Excelからは離れられないですね。30日間、頑張ります。データの下に空白行を1行ずつ挿入【30日間1日1本マクロ生活】30日間1日1本マクロ生活、29日目です。30日間1日1本マクロ生活、7日目です。素数を判定する関数を作ろう【30日間1日1本マクロ生活】30日間1日1本マクロ生活、15日目です。30日間1日1本マクロ生活、4日目です。「あ」の中の「め」【30日間1日1本マクロ生活】30日間1日1本マクロ生活、25日目です。viewsひい、ふう、みい。福岡の県立高校で数学を教えながら、放課後は柔道部の顧問として、得意技の口車で指導。3匹の息子がお世話になっている波多江柔道スポーツ少年団で指導員として親子共々お世話になっています。