さて、今日は、生徒さんの要望を取り上げます。
友人から、以下のようなデータを受け取るらしいのですが、
気温と湿度が交互になっているとのこと。
そこで、気温のデータのセルを簡単に選択できないか、とのリクエストです。
「なるほど、それなら、ひとつおきにセルを選択できれば、気温だけを選択できるし、
湿度だけを選択することもできますね。」
「選択したら、コピーをして、どこかに貼り付けると、データが連続するんですよ。」
「そうすると、気温のデータと湿度のデータにきちんとわけられますね。」
「何とかなりますか。手動では、手間がかかるんですよね。」
「分かりました。こんな時は、やはり、VBAを使いましょう。」
そんなわけで、さっそくコードを書いてみましょう。
ALT + F11 で、VisualBasicEditorを起動します。
「挿入」→「標準モジュール」をクリックします。
これで、コードを記述する準備が整いました。
それでは、次のようにコードを書いてみてください。
一応画像も載せておきます。
セルを選択するだけなのに、コードは苦労しました。
なお、今回は、選択されたセルを基準に、下方向に一つ飛びにセルを選択するようにしました。
したがって、まず基準のセルを選択してから、コードを実行してください。
それでは、Excelに切り替えてください。
C2を選択してください。このセルを基準として、下方向にひとつおきにセルを選択します。
それでは、プログラムを実行してみましょう。
Excel2003までは、「ツール」→「マクロ」→「マクロ」とクリックします。
Excel2007は、Altキーを押しながらF8キーを押してください。
今回記述したマクロ(プロシージャ)を選択して、実行ボタンをクリックします。
すると、気温のデータだけ、選択できました。
C3を選択してからこのプロシージャを実行すると、湿度のデータだけを選択することができます。
※データ以外のセルを選択してから実行すると、エラーとなります。
エラー対策は、各自考えてみてくださいね。
だい
友人から、以下のようなデータを受け取るらしいのですが、
気温と湿度が交互になっているとのこと。
そこで、気温のデータのセルを簡単に選択できないか、とのリクエストです。
「なるほど、それなら、ひとつおきにセルを選択できれば、気温だけを選択できるし、
湿度だけを選択することもできますね。」
「選択したら、コピーをして、どこかに貼り付けると、データが連続するんですよ。」
「そうすると、気温のデータと湿度のデータにきちんとわけられますね。」
「何とかなりますか。手動では、手間がかかるんですよね。」
「分かりました。こんな時は、やはり、VBAを使いましょう。」
そんなわけで、さっそくコードを書いてみましょう。
ALT + F11 で、VisualBasicEditorを起動します。
「挿入」→「標準モジュール」をクリックします。
これで、コードを記述する準備が整いました。
それでは、次のようにコードを書いてみてください。
Sub 飛び石選択() Dim a() As Variant Dim TargetColumn As Integer Dim StartRow As Integer Dim LastRow As Integer Dim s As String Dim i As Integer '選択された列の番号をアルファベットに変換するための配列 a = Array("0", "A", "B", "C", "D", "E") '列番号を取得 TargetColumn = Selection.Column '開始の行番号を取得 StartRow = Selection.Row '終了位置の行番号を取得 LastRow = Selection.End(xlDown).Row '一つおきにセル位置を文字列として設定 For i = StartRow To LastRow Step 2 s = s & a(TargetColumn) & i & "," Next '文字列の最後のコンマを削除 s = Left(s, Len(s) - 1) '下の行頭のコンマを削除すると、 '生成された文字列を確認できます。 'MsgBox s '文字列をセル範囲として使います Range(s).Select End Sub
一応画像も載せておきます。
セルを選択するだけなのに、コードは苦労しました。
なお、今回は、選択されたセルを基準に、下方向に一つ飛びにセルを選択するようにしました。
したがって、まず基準のセルを選択してから、コードを実行してください。
それでは、Excelに切り替えてください。
C2を選択してください。このセルを基準として、下方向にひとつおきにセルを選択します。
それでは、プログラムを実行してみましょう。
Excel2003までは、「ツール」→「マクロ」→「マクロ」とクリックします。
Excel2007は、Altキーを押しながらF8キーを押してください。
今回記述したマクロ(プロシージャ)を選択して、実行ボタンをクリックします。
すると、気温のデータだけ、選択できました。
C3を選択してからこのプロシージャを実行すると、湿度のデータだけを選択することができます。
※データ以外のセルを選択してから実行すると、エラーとなります。
エラー対策は、各自考えてみてくださいね。
だい