探検
Excel VBA 質問スレ Part65
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 3bda-drwQ)
2020/03/17(火) 16:27:20.88ID:hh8LiIgR0ExcelのVBAに関する質問スレです
コード書き込みや作成依頼もOK
※前スレ
Excel VBA 質問スレ Part64
https://mevius.5ch.net/test/read.cgi/tech/1575297834/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
253デフォルトの名無しさん (アウアウエー Sa3a-d4/r)
2020/04/11(土) 11:45:20.84ID:DIdffniea GetOpenFilenameメソッドでダイアログで複数のtxtファイルを選択するか、「転記前フォルダ」とかに対象のtxtファイル入れておいて、フォルダ内をfor eachですべて読み込むか。読み込み済みのtxtは自動で「転記済フォルダ」に入れるか削除。
どちらにしてもtxtファイルの名前順に読み込むようになるだろうから、そこを一工夫する必要があるかも。
どちらにしてもtxtファイルの名前順に読み込むようになるだろうから、そこを一工夫する必要があるかも。
254デフォルトの名無しさん (ワッチョイ 43ce-AglQ)
2020/04/11(土) 12:37:41.59ID:9V4Tv9yv0 >>252
とりあえず、フォルダ内の全テキストを一気に読み込むやつを作った
専用のフォルダに必要なデータだけ入れて、フォルダ名を2行目に書いて
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
とりあえず、フォルダ内の全テキストを一気に読み込むやつを作った
専用のフォルダに必要なデータだけ入れて、フォルダ名を2行目に書いて
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
255デフォルトの名無しさん (ワッチョイ bb7c-slfm)
2020/04/11(土) 12:48:46.57ID:7ipBnOPU0 >>247
マクロ記録してそれを加工すればいい
マクロ記録してそれを加工すればいい
256デフォルトの名無しさん (ワッチョイ 27aa-G6fV)
2020/04/11(土) 12:55:48.43ID:Zf+aIjAZ0257デフォルトの名無しさん (アウアウウー Sabb-Fqhg)
2020/04/11(土) 18:21:57.90ID:jjkr4EqGa 個人的にはCHDIRと#1ってのが
気になった
気になった
258デフォルトの名無しさん (ワッチョイ 6242-jz5X)
2020/04/11(土) 20:11:07.53ID:Lp6A5Woc0 恋だな
259デフォルトの名無しさん (ワッチョイ 47ac-q7V1)
2020/04/11(土) 20:18:04.56ID:7YQkqL610 6月て
こんなんIT系の仕事じゃなくても普通に1日で理解するやろ。。
多分セルごとに書き込むからファイル数とデータによっては遅くなるな
こんなんIT系の仕事じゃなくても普通に1日で理解するやろ。。
多分セルごとに書き込むからファイル数とデータによっては遅くなるな
260デフォルトの名無しさん (ワッチョイ bb33-HwJg)
2020/04/11(土) 21:02:43.27ID:Mh4soJ8e0 クリップボードに整形したデータ入れてペーストでもいいのよ
タブで右のセル
改行で次の行
タブで右のセル
改行で次の行
261デフォルトの名無しさん (ワッチョイ c28b-KRXG)
2020/04/12(日) 05:51:52.52ID:2Kcsozov0 VBAについて詳しい方に質問です。
現在VBAでオートフィルタの自動プログラムを組んでいます。
そこで質問があります。以下の様なデータがあったとします。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
私の名前は、太郎です。
私の名前は、岩崎です。
あなたの名前は、太郎です。
あなたの名前は、岩崎です。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
検索ワードとしてスペース区切りで「あなた 太郎」と入力された場合
「あなた」と「太郎」を同時に含む行のみをフィルタリングするには
どういう記述を Criteriaにすれば良いのでしょうか?
Criteria1:="*" & [検索ワード] & "*"
現在こんな感じで記述してますがうまく動きません。
AND条件、そしてOR条件で指定する方法を教えてくださいm(_)m
現在VBAでオートフィルタの自動プログラムを組んでいます。
そこで質問があります。以下の様なデータがあったとします。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
私の名前は、太郎です。
私の名前は、岩崎です。
あなたの名前は、太郎です。
あなたの名前は、岩崎です。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
検索ワードとしてスペース区切りで「あなた 太郎」と入力された場合
「あなた」と「太郎」を同時に含む行のみをフィルタリングするには
どういう記述を Criteriaにすれば良いのでしょうか?
Criteria1:="*" & [検索ワード] & "*"
現在こんな感じで記述してますがうまく動きません。
AND条件、そしてOR条件で指定する方法を教えてくださいm(_)m
262デフォルトの名無しさん (ワッチョイ c6da-AglQ)
2020/04/12(日) 08:05:06.29ID:YDpAYAt+0263デフォルトの名無しさん (ワッチョイ bb7c-slfm)
2020/04/12(日) 11:41:12.47ID:QKHzDSq80 >>261
シート上でオートフィルタかける時にできること以外のことはできない
シート上でオートフィルタかける時にできること以外のことはできない
264デフォルトの名無しさん (ワッチョイ bb7c-slfm)
2020/04/12(日) 11:45:08.44ID:QKHzDSq80 どうしてもその記述でやりたいならワードをスペースで分割してから条件2つ指定する
265デフォルトの名無しさん (ワッチョイ c28b-KRXG)
2020/04/12(日) 13:12:18.32ID:2Kcsozov0 ありがとうございます。
アドバンスフィルタとやらを調べてみます。
アドバンスフィルタとやらを調べてみます。
266デフォルトの名無しさん (ワッチョイ 43ce-AglQ)
2020/04/12(日) 13:17:20.10ID:bBYC6g030267デフォルトの名無しさん (ワッチョイ c28b-KRXG)
2020/04/12(日) 13:39:43.30ID:2Kcsozov0 >>266
ありがとうございます!!
ありがとうございます!!
268デフォルトの名無しさん (ワッチョイ 47ac-q7V1)
2020/04/12(日) 17:59:57.23ID:Vvo4XdlE0 いえいえ
269デフォルトの名無しさん (ワッチョイ e2b5-L0r9)
2020/04/13(月) 01:44:02.35ID:sGzWGZEv0270デフォルトの名無しさん (ワッチョイ 4f5f-791I)
2020/04/13(月) 07:29:10.31ID:aaxqX2kx0 >>269
ヒント 変数 r
ヒント 変数 r
271デフォルトの名無しさん (ブーイモ MM5b-qE1F)
2020/04/13(月) 08:13:39.61ID:q00oGNOiM >ヒント
ウザっ
ウザっ
272デフォルトの名無しさん (ワッチョイ 43ce-AglQ)
2020/04/13(月) 11:51:14.39ID:V+m1zN0B0274デフォルトの名無しさん (ワッチョイ 06cc-zfCe)
2020/04/13(月) 13:27:32.03ID:kcz/TGUB0 S列の2行目以降で、0.05以上でかつ、0.98以下の値の行を行ごと削除したいのですが、コードを教えてください
(最終行はA列から取得)
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
(最終行はA列から取得)
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
275デフォルトの名無しさん (ワッチョイ 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
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
276デフォルトの名無しさん (ワッチョイ 47ac-q7V1)
2020/04/13(月) 14:20:29.76ID:6KK4qS560 ワークシート機能とか使わないなら、
・その表を全て一気にもにょっと2次元配列(tableA)にいれる(コンマ数秒)
・2次元配列(tableB)を一旦定義
・tableAの各行(イメージね)をforeachする。++カウントする変数をつくる。これはtableBの行数。
・foreachのなかで、tableAのS列がその条件に合致しなければ、tableBに行のそれぞれの要素を代入する(redim preserveしながら)
・できたtableBをどこかにペタッと貼る
Excelぽくやるなら
・オートフィルタする
・2次元配列に一旦もにょっとコピーする(可視セルのみ、CurrentRegionかな)
・シートをクリアするか他のシートにコピーした2次元配列をペタっと貼る
・その表を全て一気にもにょっと2次元配列(tableA)にいれる(コンマ数秒)
・2次元配列(tableB)を一旦定義
・tableAの各行(イメージね)をforeachする。++カウントする変数をつくる。これはtableBの行数。
・foreachのなかで、tableAのS列がその条件に合致しなければ、tableBに行のそれぞれの要素を代入する(redim preserveしながら)
・できたtableBをどこかにペタッと貼る
Excelぽくやるなら
・オートフィルタする
・2次元配列に一旦もにょっとコピーする(可視セルのみ、CurrentRegionかな)
・シートをクリアするか他のシートにコピーした2次元配列をペタっと貼る
277デフォルトの名無しさん (ワッチョイ 47ac-q7V1)
2020/04/13(月) 14:21:50.93ID:6KK4qS560 ちなみに行をforeachしながら行を消すとズレが生じるんじゃね、しらんが
278デフォルトの名無しさん (ブーイモ MM3e-G6fV)
2020/04/13(月) 16:10:06.75ID:7RR5m+brM >>254
色々いじっていますがこれをどう手直ししていいかわからず…
たとえばこれをテキストを変換したときにF2:F13にくるデータを
エクセルにはB5:B16、C5:C16と順番になるよるに出力するようになるにはどう調整すればいいのか、がんばって調べてます
色々いじっていますがこれをどう手直ししていいかわからず…
たとえばこれをテキストを変換したときにF2:F13にくるデータを
エクセルにはB5:B16、C5:C16と順番になるよるに出力するようになるにはどう調整すればいいのか、がんばって調べてます
280デフォルトの名無しさん (ラクッペペ MM8e-CJtn)
2020/04/13(月) 18:33:52.63ID:xh/6KDMeM >>278
ヒント: F1キー
ヒント: F1キー
281デフォルトの名無しさん (ワッチョイ 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
猿には荷が重すぎるわ
せっかくここで凄いの貰ったのに頭が。
テキストをエクセル化したときのC列をF列に変更しようと思ったらすでにfが存在してて
どこを今度は変えたらいいかわかりません
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
猿には荷が重すぎるわ
せっかくここで凄いの貰ったのに頭が。
テキストをエクセル化したときのC列をF列に変更しようと思ったらすでにfが存在してて
どこを今度は変えたらいいかわかりません
282デフォルトの名無しさん (ワッチョイ 43ce-AglQ)
2020/04/13(月) 19:44:03.37ID:V+m1zN0B0283デフォルトの名無しさん (ワッチョイ bb7c-slfm)
2020/04/13(月) 19:48:23.00ID:V6BYDDPb0 猿とか以前にそもそも基本知識すら身に付けてないのでは…
284デフォルトの名無しさん (ワッチョイ e2b5-G6fV)
2020/04/13(月) 19:54:15.29ID:sGzWGZEv0 そう、変数なんだというとこまではぎりぎり何とかわかったんです
ただ、引っ張ってくるテキスト側の列をどこで制御してるのかがわからず
>>283
完全にその通り
単純に勉強不足
ネットでかじってばかりじゃダメだと古いけど本も借りました
ただ本当にマジで難しい…
https://i.imgur.com/7Ujyfqa.jpg
ただ、引っ張ってくるテキスト側の列をどこで制御してるのかがわからず
>>283
完全にその通り
単純に勉強不足
ネットでかじってばかりじゃダメだと古いけど本も借りました
ただ本当にマジで難しい…
https://i.imgur.com/7Ujyfqa.jpg
285デフォルトの名無しさん (ワッチョイ 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
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
286デフォルトの名無しさん (ワッチョイ e2b5-G6fV)
2020/04/13(月) 19:58:56.72ID:sGzWGZEv0 うお、変数の宣言をあらかじめわかりやすくしてくれて馬鹿な俺を誘導してくれようとする人が!!絶対そんな感じのありがたい人だ!
今から車に乗って帰ったら速攻PC開きます!−−!!
今から車に乗って帰ったら速攻PC開きます!−−!!
287デフォルトの名無しさん (ワッチョイ d7ad-LdNq)
2020/04/13(月) 20:19:57.09ID:Kp4LtUp30288デフォルトの名無しさん (ワッチョイ e2b5-G6fV)
2020/04/13(月) 22:05:23.75ID:sGzWGZEv0 >>287
全くその通りです。
とりあえず
ほぼ意味わからないまま上の人達のおかげで自分の今の業務が10倍以上余裕で速くなるであろうマクロボタンをベースになるxlsmのシートに一つ登録したらたった今完成してしまいました…
隣のシートの正式フォームに数値のみコピーするのだけはマクロで追加しました
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
何度やっても一瞬で完璧に処理が終わる…
だがさっぱり意味がわからん、、
本読みます。。
全くその通りです。
とりあえず
ほぼ意味わからないまま上の人達のおかげで自分の今の業務が10倍以上余裕で速くなるであろうマクロボタンをベースになるxlsmのシートに一つ登録したらたった今完成してしまいました…
隣のシートの正式フォームに数値のみコピーするのだけはマクロで追加しました
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
何度やっても一瞬で完璧に処理が終わる…
だがさっぱり意味がわからん、、
本読みます。。
289デフォルトの名無しさん (ワッチョイ e2b5-G6fV)
2020/04/13(月) 22:52:20.74ID:sGzWGZEv0 ああ、ダメだ。'でメモりまくったけど
出力する側のエクセルシートの列の指定はわかったけど行の指定がわからなかった。勉強ですね。。
みなさんありがとうございました。
出力する側のエクセルシートの列の指定はわかったけど行の指定がわからなかった。勉強ですね。。
みなさんありがとうございました。
290デフォルトの名無しさん (ワッチョイ c68f-AglQ)
2020/04/13(月) 23:09:41.81ID:nLvmNP810 ちらっちらっ
291デフォルトの名無しさん (ワッチョイ e2b5-G6fV)
2020/04/13(月) 23:14:07.84ID:sGzWGZEv0 ごめん、ダメだ。助けてください。
混乱しまくってます。全然違った
読み込むテキスト側の行指定がわからない、、
ベースの方にテキスト2行目8行目からを指示、
とかそれをしないと会社で対応できないです…
混乱しまくってます。全然違った
読み込むテキスト側の行指定がわからない、、
ベースの方にテキスト2行目8行目からを指示、
とかそれをしないと会社で対応できないです…
292デフォルトの名無しさん (ワッチョイ bb7c-slfm)
2020/04/13(月) 23:21:22.07ID:V6BYDDPb0 そりゃ変数すら知らない知識レベルならこんな短時間じゃなんもできんだろう…
293デフォルトの名無しさん (ワッチョイ e2b5-G6fV)
2020/04/13(月) 23:39:16.20ID:sGzWGZEv0 先輩曰くとりあえずわからなくても1つ何か作ってそっから覚えていけと言われ…
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
'テキストを任意の行から読むのが課題4月13日
毎日勉強しないとなぁ。ほんと
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
'テキストを任意の行から読むのが課題4月13日
毎日勉強しないとなぁ。ほんと
294デフォルトの名無しさん (ワッチョイ f71f-nfbJ)
2020/04/13(月) 23:57:52.26ID:k2GojJ+U0 PDFファイル(画像)をEXCELに貼り付ける際の画像の素の大きさってどうやって取得できます?
295デフォルトの名無しさん (アウアウエー Sa3a-d4/r)
2020/04/14(火) 00:02:13.22ID:A2P11e7ma いきなり別ファイル(txtファイル)読み込んだり、配列変数あったりで難しいよ。
本来はもっと基礎からやらないと。
本来はもっと基礎からやらないと。
296デフォルトの名無しさん (ワッチョイ 43ce-AglQ)
2020/04/14(火) 00:02:49.64ID:PthiGcDI0 >>293
テキストファイルは1行ずつ順番しか読み込むことができないから、3行目が必要な時は最初の2行を読み飛ばさないといけない
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
テキストファイルは1行ずつ順番しか読み込むことができないから、3行目が必要な時は最初の2行を読み飛ばさないといけない
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
297デフォルトの名無しさん (ワッチョイ 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
'本当にありがとうございました4月14日
本当に本当にありがとう、
上の人たちも本当にありがとう
無知のド素人の俺でも超完璧に動かせました
感謝しかないです。本当に勉強します
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
'本当にありがとうございました4月14日
298デフォルトの名無しさん (ワッチョイ c68f-AglQ)
2020/04/14(火) 16:20:04.61ID:BhIp9WlU0 >>296
Tekist ワロタ
Tekist ワロタ
299デフォルトの名無しさん (スップ Sd02-AglQ)
2020/04/14(火) 18:14:44.01ID:srMYTcHJd TekisutoでもTextでもTexteでもないのな
300デフォルトの名無しさん (ワッチョイ e2b5-G6fV)
2020/04/14(火) 19:13:19.46ID:Ua5gdcz00 今日、神懸かり的に職場の測定機のPCのツールとして産声を上げました
あとは起動と同時に出るユーザーフォームにボタン4くぐらい作って割り当ててとりあえず完成しそうです
そして今日から本を愛読して変数について基礎から学んできます
自分で変えたのがわかるように誤記ぐらいにしとかないと何かのコマンドやコードがわからないので
textって打ったら先頭が大文字に変わるから
こりゃいかんと
あとは起動と同時に出るユーザーフォームにボタン4くぐらい作って割り当ててとりあえず完成しそうです
そして今日から本を愛読して変数について基礎から学んできます
自分で変えたのがわかるように誤記ぐらいにしとかないと何かのコマンドやコードがわからないので
textって打ったら先頭が大文字に変わるから
こりゃいかんと
301デフォルトの名無しさん (ワッチョイ bb7c-slfm)
2020/04/14(火) 19:29:23.49ID:2/fcFDaL0 なんでもいいから一つ作れってのは作ってもらえって意味じゃないと思うな
302デフォルトの名無しさん (ブーイモ MM5b-L0r9)
2020/04/14(火) 19:39:44.23ID:5O9c120iM 活気が出てええやん
過疎スレやし
過疎スレやし
303デフォルトの名無しさん (ワッチョイ e2b5-G6fV)
2020/04/14(火) 21:50:12.98ID:Ua5gdcz00 変数の定義や宣言をとにかく最初にする癖をつければ
後でわかりやすいことが本でわかり
そして英字じゃなくてもいいことに驚きました
慣れてるたち人のサイトだと
Dim Folderpass As String
Dim FileInt As Long
とか英字だけど
Dim フォルダ場所 As String
Dim ファイル数 As Long
とか和文字だと支障でますかねこれ
後でわかりやすいことが本でわかり
そして英字じゃなくてもいいことに驚きました
慣れてるたち人のサイトだと
Dim Folderpass As String
Dim FileInt As Long
とか英字だけど
Dim フォルダ場所 As String
Dim ファイル数 As Long
とか和文字だと支障でますかねこれ
304デフォルトの名無しさん (アウアウエー Sa3a-d4/r)
2020/04/14(火) 21:58:17.78ID:A2P11e7ma 個人的には変数名で日本語は避けてる。
逆に読みにくいので。
逆に読みにくいので。
305デフォルトの名無しさん (ワッチョイ 23da-AglQ)
2020/04/14(火) 22:06:22.29ID:4z3IdTPt0 拙者も日本語はコメントで書くようにしてコードは英数字で書くようにしている
306デフォルトの名無しさん (ワッチョイ e2b5-G6fV)
2020/04/14(火) 22:20:28.98ID:Ua5gdcz00 なるほど、俺も英字で作る癖つけた方が良さそうですかね
字の色でわかるだろ…とは言え、なんかの関数やコマンドと似てるとやはり最初は難しいですね
Tekist
Fname
Fpass
shseeet
とかにしてこれ俺の宣言した変数だわ
って最初は作ってみます
あざす!
字の色でわかるだろ…とは言え、なんかの関数やコマンドと似てるとやはり最初は難しいですね
Tekist
Fname
Fpass
shseeet
とかにしてこれ俺の宣言した変数だわ
って最初は作ってみます
あざす!
307デフォルトの名無しさん (アウアウエー Sa3a-d4/r)
2020/04/14(火) 22:37:22.88ID:A2P11e7ma 変数の付け方とかで、書いた人の実力が分かるという説もあるから。
私は小文字で始めるキャメル式が見やすいと思って大体統一してる。
私は小文字で始めるキャメル式が見やすいと思って大体統一してる。
308今度はビルドとはとか言い出すんだろうか? (ドコグロ MMaf-Y19k)
2020/04/14(火) 22:38:37.96ID:e6NkXt+SM > とか和文字だと支障でますかねこれ
今時C/C++ですら変数名に漢字使えたりするぐらいだから問題ない
特にフォルダーパスをFolderpassとか書くような人は積極的に使うべき
今時C/C++ですら変数名に漢字使えたりするぐらいだから問題ない
特にフォルダーパスをFolderpassとか書くような人は積極的に使うべき
309デフォルトの名無しさん (ワッチョイ 43ce-AglQ)
2020/04/14(火) 22:53:49.36ID:PthiGcDI0 VBAだとそんなに困ることはないんだけど、.netはライブラリが膨大すぎて、既存のメソッドやプロパティと名前が被るかどうかの確認が面倒
あと、語彙力が足りなくてユニークな英単語が思いつかないとか、辞書で調べて付けた変数名があとから見返すと意味がわからないとかある
あと、語彙力が足りなくてユニークな英単語が思いつかないとか、辞書で調べて付けた変数名があとから見返すと意味がわからないとかある
310デフォルトの名無しさん (ワッチョイ 67e5-LdNq)
2020/04/14(火) 23:05:59.10ID:wBIN668P0311デフォルトの名無しさん (ワッチョイ f709-zfCe)
2020/04/14(火) 23:20:30.80ID:1uq460ot0 最近プログラム自体始めた初心者です。
日々勉強ばかりですので、汎用性が高くなるよう目指し、
知識を入れてはコードを改良し、それを外部保存、そして
実行するブックで呼び出して使っています。
ついこないだ引数という便利なものを知り、さっそく使っているのですが、
ひとつ疑問が。
「特定セルに、作成したリストの上から順に内容を書き込む」という
簡単なfor〜nextループマクロを使いまわしたいのですが、そのループ処理内容を
callなどから設定することはできるのでしょうか?
(たとえば、あるブックでは印刷処理したい、けどこっちではシートコピー処理したい、
など)
引数で、特定セルやリストの開始行は設定できたのですが。。。
宜しくお願いいたします。
日々勉強ばかりですので、汎用性が高くなるよう目指し、
知識を入れてはコードを改良し、それを外部保存、そして
実行するブックで呼び出して使っています。
ついこないだ引数という便利なものを知り、さっそく使っているのですが、
ひとつ疑問が。
「特定セルに、作成したリストの上から順に内容を書き込む」という
簡単なfor〜nextループマクロを使いまわしたいのですが、そのループ処理内容を
callなどから設定することはできるのでしょうか?
(たとえば、あるブックでは印刷処理したい、けどこっちではシートコピー処理したい、
など)
引数で、特定セルやリストの開始行は設定できたのですが。。。
宜しくお願いいたします。
312デフォルトの名無しさん (ワッチョイ f709-zfCe)
2020/04/14(火) 23:23:30.52ID:1uq460ot0313デフォルトの名無しさん (ワッチョイ 068e-f9/D)
2020/04/14(火) 23:30:42.95ID:ps8T64zC0 馬鹿が一気に出てきたのはコロナウイルスで脳炎や痴呆症でも発症するのか?
314デフォルトの名無しさん (ワッチョイ 43ce-AglQ)
2020/04/14(火) 23:31:29.82ID:PthiGcDI0 >>311
サブルーチンの中にブック名を判定するIfを入れるとか、引数を増やして処理を切り替えるとか、方法はいくつもある
サブルーチンの中にブック名を判定するIfを入れるとか、引数を増やして処理を切り替えるとか、方法はいくつもある
315デフォルトの名無しさん (ワッチョイ e2b5-G6fV)
2020/04/14(火) 23:44:19.27ID:Ua5gdcz00 Sub データ数の確認()
Dim FoPath As String
Dim Fname As String
Dim Fnum As Long
Dim SetPath As String FoPath = "C:\Users\user\Desktop\測定機"
'フォルダのパスを指定する
Fname = "*.txt" 'ファイル名と拡張子指定 Fnum = 0
'ファイル数を一度0にする
'指定したフォルダパスとファイル名をセット
SetPath = Dir(FoPath & "\" & Fname)
Do While SetPath <> ""
'ファイル名が取得出来なくなるまでループ Fnum = Fnum + 1
SetPath = Dir()
Loop
MsgBox Fnum & "つデータが入っています。"
End Sub
見様見真似というかネットからパクってユーザーフォームのボタンに追加できました。
このスレの人たち凄いです
Dim FoPath As String
Dim Fname As String
Dim Fnum As Long
Dim SetPath As String FoPath = "C:\Users\user\Desktop\測定機"
'フォルダのパスを指定する
Fname = "*.txt" 'ファイル名と拡張子指定 Fnum = 0
'ファイル数を一度0にする
'指定したフォルダパスとファイル名をセット
SetPath = Dir(FoPath & "\" & Fname)
Do While SetPath <> ""
'ファイル名が取得出来なくなるまでループ Fnum = Fnum + 1
SetPath = Dir()
Loop
MsgBox Fnum & "つデータが入っています。"
End Sub
見様見真似というかネットからパクってユーザーフォームのボタンに追加できました。
このスレの人たち凄いです
316デフォルトの名無しさん (ワッチョイ 068e-f9/D)
2020/04/14(火) 23:55:34.54ID:ps8T64zC0 いい加減に馬鹿は消えろ
317デフォルトの名無しさん (ラクッペペ MM8f-AKYr)
2020/04/15(水) 00:06:27.34ID:IBkk3oxvM318デフォルトの名無しさん (ワッチョイ ffda-Ho7r)
2020/04/15(水) 01:14:25.80ID:vPyadW120 ナウい変数名を考えようと思って色々試したら、結構いけるじゃん。
Dim ヽ, 卍, ¶, , f, , , ≒, ♪
♪ = 1
Debug.Print ♪
Dim ヽ, 卍, ¶, , f, , , ≒, ♪
♪ = 1
Debug.Print ♪
319デフォルトの名無しさん (ワッチョイ ffda-Ho7r)
2020/04/15(水) 01:17:01.85ID:vPyadW120 あ、普通にこれでいいか。
Dim 骸骨剣士, 死霊の騎士, 幽霊, 死神
Dim 骸骨剣士, 死霊の騎士, 幽霊, 死神
320デフォルトの名無しさん (ワッチョイ 77ce-Ho7r)
2020/04/15(水) 01:24:08.40ID:Ikiffowr0 For 愛 = 1 To 10
321デフォルトの名無しさん (ワッチョイ 77ce-Ho7r)
2020/04/15(水) 01:34:17.76ID:Ikiffowr0322デフォルトの名無しさん (ワッチョイ 57ad-LzhE)
2020/04/15(水) 02:43:11.14ID:zLal5e060 >>311
初心者なら具体的な処理を抽象化していく
ボトムアップのやり方が分かりやすいと思う
たとえばかけ算の九九を求める関数に
引数でXを渡してXxX(12×12など)を
求める関数に抽象化すると使い道が広がる
あるいは5行6列目のセルを処理する関数を
X行Y列目を処理するように拡張するだとか
関数の引数は数学の変数のように考える
そして関数(やクラス)を自作する時のポイントは
なるべく関数を小分けにして組み合わせて使うこと
関数が大きくなると理解するのも難しくなるから
印刷やシートのコピーとか別の処理を
ひとつの関数で全部やろうとしないで
別々の関数に書いておく
それで呼び出し元の関数から
実行する関数をIF文で切り替えたりする
Excel VBAに限らずプログラミングの定石
初心者なら具体的な処理を抽象化していく
ボトムアップのやり方が分かりやすいと思う
たとえばかけ算の九九を求める関数に
引数でXを渡してXxX(12×12など)を
求める関数に抽象化すると使い道が広がる
あるいは5行6列目のセルを処理する関数を
X行Y列目を処理するように拡張するだとか
関数の引数は数学の変数のように考える
そして関数(やクラス)を自作する時のポイントは
なるべく関数を小分けにして組み合わせて使うこと
関数が大きくなると理解するのも難しくなるから
印刷やシートのコピーとか別の処理を
ひとつの関数で全部やろうとしないで
別々の関数に書いておく
それで呼び出し元の関数から
実行する関数をIF文で切り替えたりする
Excel VBAに限らずプログラミングの定石
323デフォルトの名無しさん (ワッチョイ ffcc-Ho7r)
2020/04/15(水) 08:51:03.63ID:7yJWhPoQ0 個人的な意見だけど
変数を日本語にする事の欠点は、目立ちすぎて、他が見にくくなる事だと思う
ループカウンタの様な頻出する変数には、制御構造が見にくくなるので避けるべき
ルーチンの目的的なものとか、あまり使わないような変数については、場合によっては推奨
変数を日本語にする事の欠点は、目立ちすぎて、他が見にくくなる事だと思う
ループカウンタの様な頻出する変数には、制御構造が見にくくなるので避けるべき
ルーチンの目的的なものとか、あまり使わないような変数については、場合によっては推奨
324デフォルトの名無しさん (ワッチョイ d7ac-DNPS)
2020/04/15(水) 10:07:54.93ID:fYr2Vm730 いいたいことはわかる
なでしこみたいに構造もそうなってれば、比較して自然に見えるしね
まあでも英語で慣れちゃってると、気になっちゃうから可読性低いと評価してしまうわ
なでしこみたいに構造もそうなってれば、比較して自然に見えるしね
まあでも英語で慣れちゃってると、気になっちゃうから可読性低いと評価してしまうわ
325デフォルトの名無しさん (ワッチョイ 1791-N0vN)
2020/04/15(水) 11:57:43.10ID:qO0uVKDC0 >>303
絶対に止めた方が良い。
今、他人のそういうコードで四苦八苦してる。
しかもプロシージャも日本語だから
If 測定結果 Then
などとあって、"測定結果"が変数なのかBooleanを返すプロシージャなのかすら直ぐには分からない。
絶対に止めた方が良い。
今、他人のそういうコードで四苦八苦してる。
しかもプロシージャも日本語だから
If 測定結果 Then
などとあって、"測定結果"が変数なのかBooleanを返すプロシージャなのかすら直ぐには分からない。
326デフォルトの名無しさん (ラクッペペ MM8f-AKYr)
2020/04/15(水) 12:04:59.54ID:tJWgJTOGM それはエーゴでもかわらなくなくね?
327デフォルトの名無しさん (オッペケ Sr8b-HcDg)
2020/04/15(水) 12:43:22.36ID:9r3ObWq4r >>32
「定義」ですぐわかる
「定義」ですぐわかる
328デフォルトの名無しさん (オッペケ Sr8b-HcDg)
2020/04/15(水) 12:47:51.20ID:9r3ObWq4r 325の間違い
329デフォルトの名無しさん (ワッチョイ 77ce-Ho7r)
2020/04/15(水) 13:14:16.12ID:Ikiffowr0 がっつり英語だと、こんどは辞書を引く作業が待ってることもある
発音がわからないと会話で困るし
発音がわからないと会話で困るし
330デフォルトの名無しさん (ワッチョイ 778f-Eg7/)
2020/04/15(水) 13:39:00.87ID:zDLD/Qb60 特定のURLのソースに任意の文字列が記載されているかどうかを判断したい。
https://auctions.yahoo.co.jp/seller/abcdfgh
https://auctions.yahoo.co.jp/seller/zakattas
https://auctions.yahoo.co.jp/seller/zafect789
というページのリストがあったとして、ソースに"停止中"もしくは"無効"の文字列が
あるURLにはB列に"NG"と吐き出す、ということをやりたいです。
https://okwave.jp/qa/q6120067.html
が近いんですが「2)一般的な文字列の場合」はエラーが出て動きませんでした。
VBAに詳しい人、よろしくお願いします。
https://auctions.yahoo.co.jp/seller/abcdfgh
https://auctions.yahoo.co.jp/seller/zakattas
https://auctions.yahoo.co.jp/seller/zafect789
というページのリストがあったとして、ソースに"停止中"もしくは"無効"の文字列が
あるURLにはB列に"NG"と吐き出す、ということをやりたいです。
https://okwave.jp/qa/q6120067.html
が近いんですが「2)一般的な文字列の場合」はエラーが出て動きませんでした。
VBAに詳しい人、よろしくお願いします。
331デフォルトの名無しさん (アウアウエー Sadf-Ho7r)
2020/04/15(水) 13:51:28.81ID:5mkkxmmPa grep なら一行でできるのに VBA でやらないといけないのか
332デフォルトの名無しさん (ワッチョイ bff7-pwY/)
2020/04/15(水) 13:53:51.50ID:VtNtlccy0 人に送ったら日本語フォントない海外PCで全く動かなくなったりしたな
333デフォルトの名無しさん (ワッチョイ 77ce-Ho7r)
2020/04/15(水) 14:13:32.74ID:Ikiffowr0 >>330
参考リンク先のどのプログラムを試して、どの行でどんなエラーが出たか書いて
エラーが出たままでCtrl+Cを押せば、エラーメッセージがクリップボードに入るから、それをコピペして
あと、目的のWEBサイトの文字コードはちゃんと確認した?
参考リンク先のどのプログラムを試して、どの行でどんなエラーが出たか書いて
エラーが出たままでCtrl+Cを押せば、エラーメッセージがクリップボードに入るから、それをコピペして
あと、目的のWEBサイトの文字コードはちゃんと確認した?
334デフォルトの名無しさん (ワッチョイ 77ce-Ho7r)
2020/04/15(水) 14:16:13.29ID:Ikiffowr0 >>331
まあ wget | nkf | grep のが簡単かもね
まあ wget | nkf | grep のが簡単かもね
335330 (ワッチョイ 778f-o1R8)
2020/04/15(水) 14:42:43.03ID:zDLD/Qb60 >>333
すいません。
コピペ繰り返してたらなんとか行けました。
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
すいません。
コピペ繰り返してたらなんとか行けました。
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
336デフォルトの名無しさん (スップ Sdbf-N0vN)
2020/04/15(水) 14:43:10.74ID:dyZQaRRHd337デフォルトの名無しさん (アウアウウー Sa1b-4fgg)
2020/04/15(水) 15:14:20.64ID:4idtb0t/a かわらなくね?かわらなくなくね?
338デフォルトの名無しさん (ドコグロ MMbf-A2g6)
2020/04/15(水) 19:27:28.55ID:DRi90/CyM339デフォルトの名無しさん (ワッチョイ 9f42-thIy)
2020/04/15(水) 21:47:05.33ID:vXo73Hp80 辞書で調べても馴染みのない単語でかえってわかりにくくて結局日本語にしてみたりね
340デフォルトの名無しさん (ワッチョイ 5709-xa8R)
2020/04/15(水) 22:13:27.05ID:qXjFLib20 311です。
>>314,317,322
私がやろうとしていたことが、まず効率の悪いことだったんですね・・・
細かく分けて関数作って、それを組み合わせて作る方法を取りたいと思います。
(ただ、どこまで細かく分ければいいのか、まだ要領を掴んでおりませんが)
ありがとうございました。
>>314,317,322
私がやろうとしていたことが、まず効率の悪いことだったんですね・・・
細かく分けて関数作って、それを組み合わせて作る方法を取りたいと思います。
(ただ、どこまで細かく分ければいいのか、まだ要領を掴んでおりませんが)
ありがとうございました。
341デフォルトの名無しさん (ブーイモ MMcf-IW4T)
2020/04/15(水) 22:29:20.66ID:bRq9+Y6qM 初心者ですがご教授下さい
サンプルの工程能力で1個につき6項目の測定値をソフトがエクセルにデータ出力してくれるけど、日によっては23個だったり25個だったりしか測定できず
残りの記入方法は人によって様々で
ある人は測定値のバラつきに近い値をテンキーで手打ち
ある人はエクセルのrandbetween関数で
各項目の測定値のMAXとMINで乱数だしてそれをコピぺ
サンプル1 サンプル2 〜サンプル30
項目1
項目2
項目3
項目4
項目5
項目6
こんな並びで全項目測定後に出力されるから項目の途中で止まることはないです
「サンプル1〜30の間の項目1の行に空白があった場合、それより前(左)にある全ての測定値を参考に乱数でサンプル30の項目6まで埋める」
これは難易度かなり高いですか?
サンプルの工程能力で1個につき6項目の測定値をソフトがエクセルにデータ出力してくれるけど、日によっては23個だったり25個だったりしか測定できず
残りの記入方法は人によって様々で
ある人は測定値のバラつきに近い値をテンキーで手打ち
ある人はエクセルのrandbetween関数で
各項目の測定値のMAXとMINで乱数だしてそれをコピぺ
サンプル1 サンプル2 〜サンプル30
項目1
項目2
項目3
項目4
項目5
項目6
こんな並びで全項目測定後に出力されるから項目の途中で止まることはないです
「サンプル1〜30の間の項目1の行に空白があった場合、それより前(左)にある全ての測定値を参考に乱数でサンプル30の項目6まで埋める」
これは難易度かなり高いですか?
342デフォルトの名無しさん (ブーイモ MMcf-IW4T)
2020/04/15(水) 22:33:03.58ID:bRq9+Y6qM 誤記というか間違えました
「サンプル1〜30の間の項目1の列、又はセルに空白があった場合、それより前(左)にある全ての測定値を参考に乱数でサンプル30の項目6まで埋める」
です
すみませんがどういったアプローチがあるのか
そもそもできるのかご教授下さい
「サンプル1〜30の間の項目1の列、又はセルに空白があった場合、それより前(左)にある全ての測定値を参考に乱数でサンプル30の項目6まで埋める」
です
すみませんがどういったアプローチがあるのか
そもそもできるのかご教授下さい
343デフォルトの名無しさん (アウアウエー Sadf-fVbL)
2020/04/15(水) 22:49:03.78ID:xz8oNroja344322 (ワッチョイ 57ad-LzhE)
2020/04/15(水) 23:00:46.12ID:zLal5e060 >>340
>どこまで細かく分ければいいのか
基本的に処理は関数名に沿って分ける
関数名から逸脱した処理があれば
別の関数に分けて整理していく
だから関数や変数の
適切な命名が重要になってくる
面倒でも名前と処理を対応させた方が
後でメンテナンスしやすくなる
>どこまで細かく分ければいいのか
基本的に処理は関数名に沿って分ける
関数名から逸脱した処理があれば
別の関数に分けて整理していく
だから関数や変数の
適切な命名が重要になってくる
面倒でも名前と処理を対応させた方が
後でメンテナンスしやすくなる
345デフォルトの名無しさん (ブーイモ MMcf-IW4T)
2020/04/15(水) 23:19:56.30ID:bRq9+Y6qM >>343
いや、俺の説明力がなくて、、
というか行列が逆でした
再度説明させてください
https://i.imgur.com/D4MOqky.jpg
こんな感じで機械がエクセルに出力してくれるけど
残りのサンプルの数字は上の測定値を見てみんなそれぞれランダムにテンキーで入力したりと、いわゆる数値を適当にバラして打ち込んでます。(偽装というほど重要ではないので)
日によって測定できるサンプルが数が違います。
参考になるか程度のスクショになりますが
「サンプル1から30までで空白の行列があったらそれまで測った上のサンプルの測定値を元に乱数でサンプル30の項目6までVBAが全て記入してくれないかなと、
こんな感じです
いや、俺の説明力がなくて、、
というか行列が逆でした
再度説明させてください
https://i.imgur.com/D4MOqky.jpg
こんな感じで機械がエクセルに出力してくれるけど
残りのサンプルの数字は上の測定値を見てみんなそれぞれランダムにテンキーで入力したりと、いわゆる数値を適当にバラして打ち込んでます。(偽装というほど重要ではないので)
日によって測定できるサンプルが数が違います。
参考になるか程度のスクショになりますが
「サンプル1から30までで空白の行列があったらそれまで測った上のサンプルの測定値を元に乱数でサンプル30の項目6までVBAが全て記入してくれないかなと、
こんな感じです
346デフォルトの名無しさん (アウアウエー Sadf-fVbL)
2020/04/15(水) 23:34:48.80ID:xz8oNroja 「列、又はセルに空白があった場合、それより前(左)にある全ての測定値を参考に」というのは?
その例でいうと、
・項目1のサンプル8、9、10が空欄なので、1から7の数値を元にして適当な数値で埋める。
・残りの項目についても同様
ということですか?つまり上の数値を元にしてるけど。
処理自体は難しくないとは思います。
その例でいうと、
・項目1のサンプル8、9、10が空欄なので、1から7の数値を元にして適当な数値で埋める。
・残りの項目についても同様
ということですか?つまり上の数値を元にしてるけど。
処理自体は難しくないとは思います。
347デフォルトの名無しさん (ブーイモ MMcf-IW4T)
2020/04/15(水) 23:57:01.64ID:bRq9+Y6qM >>346
その例でいうと、というか今の職場の手間になってる仕事がまさにその通りです
上の数値を元に残りの項目を誰かが埋めてます
どんなアプローチで行ったらよさそうかアドバイスいただませんか
Rnd関数Int関数、Loop、Offset
調べてもなかなかわからずです‥
その例でいうと、というか今の職場の手間になってる仕事がまさにその通りです
上の数値を元に残りの項目を誰かが埋めてます
どんなアプローチで行ったらよさそうかアドバイスいただませんか
Rnd関数Int関数、Loop、Offset
調べてもなかなかわからずです‥
348デフォルトの名無しさん (ワッチョイ 77ce-Ho7r)
2020/04/15(水) 23:58:14.63ID:Ikiffowr0 >>345
数字を偽装するルールが人によって違うのはわかったけど、あなたはどういうルールでやりたいのか、もうちょっと厳密に書いて
「それまでの数値を参考に」という表現では曖昧すぎてプログラミングできない
例として、サンプルが7個しかなかった場合は、その7個の数字をどう使って30個に増やすのか?
数字を偽装するルールが人によって違うのはわかったけど、あなたはどういうルールでやりたいのか、もうちょっと厳密に書いて
「それまでの数値を参考に」という表現では曖昧すぎてプログラミングできない
例として、サンプルが7個しかなかった場合は、その7個の数字をどう使って30個に増やすのか?
349デフォルトの名無しさん (ブーイモ MMcf-IW4T)
2020/04/16(木) 00:23:27.26ID:WB3hiXkKM >>348
数式と一覧を削りましたが普段はここの赤矢印に測定したデータのMax値とMin値を入れて
EXCELの関数でこのような数式で乱数を
出しています
数年前に自力で作ったけどもはや覚えていないレベルです
https://i.imgur.com/eglO3Ph.jpg
数式と一覧を削りましたが普段はここの赤矢印に測定したデータのMax値とMin値を入れて
EXCELの関数でこのような数式で乱数を
出しています
数年前に自力で作ったけどもはや覚えていないレベルです
https://i.imgur.com/eglO3Ph.jpg
350デフォルトの名無しさん (ブーイモ MMcf-IW4T)
2020/04/16(木) 00:25:05.62ID:WB3hiXkKM あとスクショ取りたいが故に行数の抜けやズレが、、、すみません
351デフォルトの名無しさん (ワッチョイ 9f85-i57j)
2020/04/16(木) 00:30:19.56ID:eKixqxFQ0 最低値+rnd×最大最低の差で乱数になるよ
352デフォルトの名無しさん (ワッチョイ 77ce-Ho7r)
2020/04/16(木) 00:35:38.28ID:YY8HOOMA0 とりあえず行と列の位置は>>345の画像に合わせて作ったから、あとは適当に修正して
Sub Macro1()
For 項目 = 1 To 6
列 = 項目 + 2
最小 = Application.WorksheetFunction.Min(Cells(6, 列).Resize(30)) * 1000
最大 = Application.WorksheetFunction.Max(Cells(6, 列).Resize(30)) * 1000
For サンプル = 1 To 30
行 = サンプル + 5
If Cells(行, 列) = "" Then
Cells(行, 列).NumberFormatLocal = "0.000"
Cells(行, 列) = Application.WorksheetFunction.RandBetween(最小, 最大) / 1000
End If
Next
Next
End Sub
Sub Macro1()
For 項目 = 1 To 6
列 = 項目 + 2
最小 = Application.WorksheetFunction.Min(Cells(6, 列).Resize(30)) * 1000
最大 = Application.WorksheetFunction.Max(Cells(6, 列).Resize(30)) * 1000
For サンプル = 1 To 30
行 = サンプル + 5
If Cells(行, 列) = "" Then
Cells(行, 列).NumberFormatLocal = "0.000"
Cells(行, 列) = Application.WorksheetFunction.RandBetween(最小, 最大) / 1000
End If
Next
Next
End Sub
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 国民 居住目的でない住宅所有者に「空室税」課せる法案を提出 [少考さん★]
- 「働いて働いて」の流行語大賞に懸念 「言葉が独り歩き」 過労自殺遺族 [尺アジ★]
- アメリカ、入国時に「日本人を含む外国人観光客の最大5年分のSNS履歴の提出」義務化へ 過去10年間に使用のメールアドレスや電話番号等も★3 [Hitzeschleier★]
- 【画像】消えた美人女優 上原多香子さん(42)、沖縄で目撃される [牛丼★]
- 「暖房が使えない」「食費が高くて子どもの栄養が…」 物価高に苦しむ子育て世帯、政府に期待する支援は ★2 [蚤の市★]
- バイク事故で入院ゆたぼん、見舞金「1円」振り込みの名義に衝撃「悲しい人ですね」「こういう人がいるから…」 [muffin★]
- 【高市朗報】中国、歴史上日本に一度も侵攻したことがない親日国だった [931948549]
- 【実況】博衣こよりのえちえちダンガンロンパ2🧪★1
- 高市早苗、森元総理の愛人だった [347751896]
- (´・ω・`)派遣社員だけどボーナス無いから会社のアイスパクるね
- 躁鬱病って甘えじゃね?
- 【声優】亡くなった人で好きだった声優👈誰を思いつく?? [519998392] [839143615]
