入力処理・ループ処理・選択処理・文字列操作・転記処理


エクセル表計算関数ではできない処理として
多分オートフィルターでは工夫すればできるかもしれませんが・・
手順が面倒なので・・

入力処理・ループ処理・選択処理・文字列操作・転記処理

<目的>
ショートカットのキー種別に別の表に転記したい。

ショートカット一覧表のエクセルを作成し・・

Alt とか CtrlとかWindowsとかの、各キーの
目的の文字が先頭から記載されているものだけを
Sheet1から選択し、Sheet2へ
VBAで転記をする
 

<入力処理>(InputBox)
<ループ処理>(For~ Next)
<選択処理> (Select case~Case ~End Select)
<文字列操作> (Mid())

‘以下コード

‘———————————————-
‘ループ処理を行う
‘今回の処理は、Sheet1からSheet2へ転記
‘入力した文字が先頭にある場合の転記を行う
‘———————————————-

Sub Tenki()
‘———————————————-
‘変数の宣言

Dim LastRow As Long ‘最終行を取得する変数
Dim LastColumn As Long ‘最終列を取得する変数
Dim Row0 As Long ‘繰り返し処理を行う為の変数
Dim Row1 As Long ‘書込するシートの行番号
Dim Kstr As String ‘検索する文字
Dim Ksms As Integer ‘検索する文字数

‘———————————————-

‘変数に対する値の取得とセット
LastRow = Cells(Rows.Count, 5).End(xlUp).Row ‘最終行
LastColumn = Cells(2, Columns.Count).End(xlToLeft).Column ‘最終列
Row1 = 2 ‘最初にスタートするSheet2の行番号 2行目からスタート

‘———————————————-
‘<入力処理>
‘インプットボックスによる文字の入力と長さ取得

Kstr = InputBox(“検索する先頭文字列を入力してください”, “検索文字入力”, “Alt”)
Ksms = Len(Kstr)

‘———————————————-

‘<ループ処理>

For Row0 = 5 To LastRow

‘<選択処理>

Select Case Mid(Cells(Row0, 5).Value, 1, Ksms) ‘Sheet1の該当行の値の先頭から指定した文字数の文字が

Case Kstr ‘入力した文字だった場合

‘列のループ処理

For Col0 = 5 To LastColumn ‘5列目から最終列までの値を

‘Sheet1からSheet2へ転記する

Sheets(“Sheet2”).Cells(Row1, Col0 – 3).Value = Cells(Row0, Col0) ‘Sheet2には2列目から書き込む 5-3=2

Next Col0
 

Row1 = Row1 + 1 ‘次に書き込む為、行の値を1加えておく

End Select

Next Row0

‘———————————————-

End Sub
 

‘ここまでコード

 

あとは実行する場合は三角形の実行ボタンを押すか
ショートカット F5 実行
F6 ステップイン

 


2021年1月
 123
45678910
11121314151617
18192021222324
25262728293031
最近の記事
カテゴリ
月別アーカイブ