Page 126 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 通常モードに戻る ┃ INDEX ┃ ≪前へ │ 次へ≫ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ▼教えてくださいm(_ _)m VB初心者 02/9/23(月) 16:13 ┗Re:教えてくださいm(_ _)m ぴかる 02/9/23(月) 20:11 ┗Re:教えてくださいm(_ _)m VB初心者 02/9/23(月) 22:25 ┗Re:教えてくださいm(_ _)m よろずや 02/9/23(月) 23:24 ┗Re:教えてくださいm(_ _)m ぴかる 02/9/24(火) 19:40 ┗Re:教えてくださいm(_ _)m こうちゃん 02/9/24(火) 20:36 ─────────────────────────────────────── ■題名 : 教えてくださいm(_ _)m ■名前 : VB初心者 ■日付 : 02/9/23(月) 16:13 -------------------------------------------------------------------------
最近VBを仕事ではじめたました 質問なんですけれども 氏名コード 氏名 出勤 3019 平野 24 3269 川島 21 (空行) 5150 馬渕 19 というエクセルファイルから 氏名コードが数字のもの(3019、3269、5150) を抽出するにはどのようにしたらよろしいでしょうか 先頭行と空行を読み飛ばしたいのです わかる方がおりましたら回答お願いいたしますm(_ _)m |
VB初心者さん、こんばんは。 状況があまり理解できていないので的外れかもしれませんが、一般操作のオートフィルタにて氏名コードを抽出するのはどうでしょう?。数値コードが入っている部分すべてを抽出ならオプションにて「0より大きい」、空白以外なら「空白以外のセル」を選択すればOKです。また、この操作をマクロ記録してちょっち、編集してみるのもおもしろいかもネ!。 |
ぴかるさん早速のレスありがとうございます。 僕の説明不足ですいませんが また質問させてください。 Private Sub Command1_Click() Dim xlApp As Excel.Application Dim xlBook As Excel.Workbook Dim xlSheet As Excel.Worksheet Dim strFileName As String Set xlApp = CreateObject("Excel.Application") Set xlBook = xlApp.Workbooks.Open("C:\浜松CC勤怠.xls") Set xlSheet = xlBook.Worksheets("勤怠報告") strFileName = "C:\浜松CC勤怠.csv" xlBook.SaveAs strFileName, xlCSV xlBook.Close End Sub というPGを作りました。 浜松cc勤怠の勤怠報告のシートが 氏名コード 氏名 出勤 3019 平野 24 3269 川島 21 (空行) 5150 馬渕 19 で、エクセルシートの内容はかえないで、 3019 平野 24 3269 川島 21 5150 馬渕 19 というデータを抽出してCSVファイルで保存したいのです。 先頭行の見出しと 空行を読み飛ばす方法がわかりません セルの1番目が数字だったら読み込むというふうにしたいのですが・・・ 今のままだと 氏名コード, 氏名, 出勤 3019 , 平野, 24 3269 , 川島, 21 ,, 5150 , 馬渕, 19 になってしまいます もしわかりましたら回答よろしくお願いいたしますm(_ _)m |
>で、エクセルシートの内容はかえないで、 別に変えたっていいんじゃないですか?保存しなけりゃ。 |
VB初心者さん、よろずやさん、こんばんは。 エクセルの内容を変えるなら、こんなんでOK?。(やり方は、色々あると思います。) Sub TEST() Dim 最終行 As Long Dim 移動行 As Long Dim フラグ As Integer Dim I As Long Dim J As Integer 最終行 = Range("A65536").End(xlUp).Row フラグ = 0 For I = 1 To 最終行 If (フラグ = 0) And (Range("A" & I) = "") Then 移動行 = I フラグ = 1 ElseIf (フラグ = 1) And (Range("A" & I) <> "") Then For J = 1 To 3 Cells(移動行, J) = Cells(I, J) Next Range(Cells(I, 1), Cells(I, 3)).ClearContents 移動行 = 移動行 + 1 End If Next Rows("1:1").Delete Shift:=xlUp End Sub |
ぴかる さん、VB初心者さん、よろずやさん、こんばんは。 >エクセルの内容を変えるなら、こんなんでOK?。(やり方は、色々あると思います。) 色々のうちひとつ:ABC列にデータがあるとして、範囲を選択して空白行を削除します。 Range(Cells(1, 1), Cells(Range("A65536").End(xlUp).Row, 3)). _ SpecialCells(xlCellTypeBlanks).Delete Shift:=xlUp |