Sub Macro1() ChDir "c:\tmp" f = Dir("*.txt") c = 1 Do While f <> "" Open f For Input As #1 For r = 1 To 6 Line Input #1, s Cells(r, c) = Split(s, vbTab)(2) Next Close #1 f = Dir c = c + 1 Loop End Sub 0255デフォルトの名無しさん (ワッチョイ bb7c-slfm)2020/04/11(土) 12:48:46.57ID:7ipBnOPU0>>247 マクロ記録してそれを加工すればいい 0256デフォルトの名無しさん (ワッチョイ 27aa-G6fV)2020/04/11(土) 12:55:48.43ID:Zf+aIjAZ0>>254 うおおおお マジでありがとうございます! いま外出中なので帰ったら速攻でVBE開いて取りかかります!! 他のこんな猿にアドバイスくれる人達に感謝のみ 批判されて当然のスキルしかないのでそういう覚悟もして相談させてもらってます
Dim tag As Variant Dim a As Long tag = Range("S1:S" & Cells(Rows.Count, 19).End(xlUp).Row).Value For a = Cells(Rows.Count, 19).End(xlUp).Row To 2 Step -1 If tag(a, 19) <= 0.98 And tag(a, 19) >= 0.05 Then Rows(a).Delete End If Next 0275デフォルトの名無しさん (ワッチョイ 43ce-AglQ)2020/04/13(月) 14:19:37.44ID:V+m1zN0B0>>274 Dim a As Long For a = Cells(Rows.Count, 1).End(xlUp).Row To 2 Step -1 If 0.05 <= Cells(a, 19) And Cells(a, 19) <= 0.98 Then Rows(a).Delete End If Next 0276デフォルトの名無しさん (ワッチョイ 47ac-q7V1)2020/04/13(月) 14:20:29.76ID:6KK4qS560 ワークシート機能とか使わないなら、 ・その表を全て一気にもにょっと2次元配列(tableA)にいれる(コンマ数秒) ・2次元配列(tableB)を一旦定義 ・tableAの各行(イメージね)をforeachする。++カウントする変数をつくる。これはtableBの行数。 ・foreachのなかで、tableAのS列がその条件に合致しなければ、tableBに行のそれぞれの要素を代入する(redim preserveしながら) ・できたtableBをどこかにペタッと貼る
たとえばこれをテキストを変換したときにF2:F13にくるデータを エクセルにはB5:B16、C5:C16と順番になるよるに出力するようになるにはどう調整すればいいのか、がんばって調べてます 0279274 (ワッチョイ 06cc-zfCe)2020/04/13(月) 16:10:57.06ID:kcz/TGUB0>>275 ありがとうございます。 0280デフォルトの名無しさん (ラクッペペ MM8e-CJtn)2020/04/13(月) 18:33:52.63ID:xh/6KDMeM>>278 ヒント: F1キー 0281デフォルトの名無しさん (ワッチョイ e2b5-G6fV)2020/04/13(月) 19:37:09.96ID:sGzWGZEv0 Sub テキストから引っ張る() ChDir "C:\Users\user\Desktop\マクロ勉強" 'フォルダ指定 f = Dir("*.txt") c = 2 'テンプレの開始する列の変更 Do While f <> "" Open f For Input As #1 For r = 2 To 13 'テキストの引っ張ってくる行を指定 Line Input #1, s Cells(r, c) = Split(s, vbTab)(2) Next Close #1 f = Dir c = c + 1 Loop End Sub
https://i.imgur.com/7Ujyfqa.jpg0285デフォルトの名無しさん (ワッチョイ 43ce-AglQ)2020/04/13(月) 19:55:45.77ID:V+m1zN0B0 Sub テキストから引っ張る() Dim ファイル名 As String Dim 行 As Integer Dim 列 As Integer Dim 配列() As String Dim 文字列 As String
ChDir "C:\Users\user\Desktop\マクロ勉強" ' フォルダ指定 ファイル名 = Dir("*.txt") 列 = 2 'テンプレの開始する列の変更 Do While ファイル名 <> "" Open ファイル名 For Input As #1 For 行 = 2 To 13 ' テキストの引っ張ってくる行を指定 Line Input #1, 文字列 配列 = Split(文字列, vbTab) Cells(行, 列) = 配列(2) Next Close #1 ファイル名 = Dir() 列 = 列 + 1 Loop End Sub 0286デフォルトの名無しさん (ワッチョイ e2b5-G6fV)2020/04/13(月) 19:58:56.72ID:sGzWGZEv0 うお、変数の宣言をあらかじめわかりやすくしてくれて馬鹿な俺を誘導してくれようとする人が!!絶対そんな感じのありがたい人だ! 今から車に乗って帰ったら速攻PC開きます!−−!! 0287デフォルトの名無しさん (ワッチョイ d7ad-LdNq)2020/04/13(月) 20:19:57.09ID:Kp4LtUp30>>281 >>284 まずVBAの入門書を読んで基礎知識を 整理するといい(するみたいだけど)
Sub テキストファイルをベースに読み込む() ChDir "C:\Users\ikuzo\Desktop\測定データ" 'フォルダ指定 FILE = Dir("*.txt") c = 2 'ベースの開始する列の変更 Do While FILE <> "" Open FILE For Input As #1 For r = 2 To 13 'セルに展開する行を指定 Line Input #1, s Cells(r, c) = Split(s, vbTab)(5) Next Close #1 FILE = Dir c = c + 1 Loop Range("B2:L13").Select Selection.Copy Sheets("測定結果報告書").Select Range("D5:N16").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False End Sub
Sub 指定フォルダの全テキスト絞り読み込み() ChDir "C:\Users\user\Desktop\測定機データ" 'フォルダ指定 FILE = Dir("*.txt") retu = 2 'ベース列決定でAは1から Do While FILE <> "" Open FILE For Input As #1 For Tekist = 3 To 12 'ベース任意行決めでテキストは1行目から Line Input #1, s Cells(Tekist, retu) = Split(s, vbTab)(5) 'テキスト初列を()で決めるがAは0から Next Close #1 FILE = Dir retu = retu + 1 'この数だけ列飛ばしにベースに読み込む Loop End Sub
Open FILE For Input As #1 Line Input #1, s ' 1行目を読み込むだけで何も処理をしない Line Input #1, s ' 2行目以下略 For Tekist = 3 To 12 Line Input #1, s ' 3行目以降 Cells(Tekist, retu) = Split(s, vbTab)(5) Next 0297デフォルトの名無しさん (ワッチョイ e2b5-G6fV)2020/04/14(火) 00:29:53.49ID:Ua5gdcz00>>296 本当に本当にありがとう、 上の人たちも本当にありがとう 無知のド素人の俺でも超完璧に動かせました 感謝しかないです。本当に勉強します
Sub 指定フォルダの全テキスト絞り読み込み() ChDir "C:\Users\ikuzo\Desktop\測定機" 'フォルダ指定 FILE = Dir("*.txt") retu = 2 'ベース列を決定でAは1から Do While FILE <> "" Open FILE For Input As #1 'Line Input #1, s ' 1行目を読むだけで何もしない(テキスト1行目からで良ければ普段は封印 'Line Input #1, s ' 2行目以下略 For Tekist = 3 To 12 'ベース初行〜任意行決めでテキストは1行目からだが封印の解放により連動 Line Input #1, s Cells(Tekist, retu) = Split(s, vbTab)(5) 'テキスト初列を()で決めるがAは0から Next Close #1 FILE = Dir retu = retu + 1 'この数字を変えた分だけ列飛ばしにベースに読み込む Loop End Sub
Sub YouTube_Search() Dim objIE As Object Dim i As Long Dim j As Long Set objIE = CreateObject("InternetExplorer.Application") With objIE For i = 1 To Range("A1").End(xlDown).Row .navigate Cells(i, 1).Value While .Busy Or .ReadyState <> 4: DoEvents: Wend For j = 1 To .document.all.Length If InStr(.document.all(j - 1).outerText, "Yahoo! JAPAN IDが無効です") > 0 Then Cells(i, 2).Value = "*" Exit For End If Next Next End With objIE.Quit Set objIE = Nothing End Sub 0336デフォルトの名無しさん (スップ Sdbf-N0vN)2020/04/15(水) 14:43:10.74ID:dyZQaRRHd>>326 確かに。 でも日本語フィールドが多いSQL文の中で、一部の変数も日本語だったりするのとか、変数と気付かなかったりするのもあるし、最悪だよ。 0337デフォルトの名無しさん (アウアウウー Sa1b-4fgg)2020/04/15(水) 15:14:20.64ID:4idtb0t/a かわらなくね?かわらなくなくね? 0338デフォルトの名無しさん (ドコグロ MMbf-A2g6)2020/04/15(水) 19:27:28.55ID:DRi90/CyM>>325 なんの測定なのか知らんけど測定結果がBooleanな時点で知能の足らない職場と言うことがわかる コードレビューなんてしたこと無いだろ 0339デフォルトの名無しさん (ワッチョイ 9f42-thIy)2020/04/15(水) 21:47:05.33ID:vXo73Hp80 辞書で調べても馴染みのない単語でかえってわかりにくくて結局日本語にしてみたりね 0340デフォルトの名無しさん (ワッチョイ 5709-xa8R)2020/04/15(水) 22:13:27.05ID:qXjFLib20 311です。