探検
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
232デフォルトの名無しさん (ブーイモ MM5b-qE1F)
2020/04/09(木) 12:31:40.44ID:veSARJt1M カレンダーのシートを作って、そこから選択させるとか
233デフォルトの名無しさん (ササクッテロラ Sp5f-zMEH)
2020/04/09(木) 13:01:14.59ID:wcbpQmosp >>231
早速参考にさせていただきました
ありがとうございます
ただ、これ起動すると、日付クリックした後、テキストボックスに日付挿入になるので
どこかのコードにテキストボックスではなくてセル挿入になるようにしたらいいと思うんですけれど、どこに記述するのがいいですかね?
まだvbaいじり始めた身としてはここまで複雑だといじりづらいというか
早速参考にさせていただきました
ありがとうございます
ただ、これ起動すると、日付クリックした後、テキストボックスに日付挿入になるので
どこかのコードにテキストボックスではなくてセル挿入になるようにしたらいいと思うんですけれど、どこに記述するのがいいですかね?
まだvbaいじり始めた身としてはここまで複雑だといじりづらいというか
234デフォルトの名無しさん (ワッチョイ bb7c-slfm)
2020/04/09(木) 20:27:14.43ID:PvaeZ0Ck0 >>224
BeforeRightClickイベント
BeforeRightClickイベント
235デフォルトの名無しさん (ワッチョイ f71f-nfbJ)
2020/04/09(木) 21:58:32.74ID:TQ3Lwxfd0 >>221
調べるとDXFはTextファイル形式で出来ているみたいでネットで調べながらやってみたけど、重い。まぁ俺の書き方が駄目な気もするけど。線の数が4万とか超えてる。
調べるとDXFはTextファイル形式で出来ているみたいでネットで調べながらやってみたけど、重い。まぁ俺の書き方が駄目な気もするけど。線の数が4万とか超えてる。
236デフォルトの名無しさん (ワッチョイ eb5e-AglQ)
2020/04/09(木) 23:05:01.47ID:vJBq1mcg0 作者不明のファイルを修正しているのですが、そのファイル自身を指定するのにファイル名で
記述してありました。これだと「●●Ver1.0.xlsm」→「●●Ver1.1.xlsm」のようにファイル名を
変える度にコードを修正しなくてはならないためThisWorkBookに変えようかと思っているのですが
その場合なにか弊害とかあるんでしょうか?
記述してありました。これだと「●●Ver1.0.xlsm」→「●●Ver1.1.xlsm」のようにファイル名を
変える度にコードを修正しなくてはならないためThisWorkBookに変えようかと思っているのですが
その場合なにか弊害とかあるんでしょうか?
237デフォルトの名無しさん (ワッチョイ e23e-1Ne1)
2020/04/10(金) 07:51:15.22ID:goOf5Ofq0 シートを全選択したら一括で変更できるのか
238デフォルトの名無しさん (オッペケ Sr5f-vH9a)
2020/04/10(金) 08:26:28.75ID:tq9uLSTsr >>236
弊害は無いよ
弊害は無いよ
239デフォルトの名無しさん (オッペケ Sr5f-q7V1)
2020/04/10(金) 09:37:44.73ID:Rte1PrgOr そのファイル自身だと完全に明確で揺らがないなら、thisworkbookでいんじゃね
240デフォルトの名無しさん (ワッチョイ c6da-AglQ)
2020/04/10(金) 19:23:44.82ID:LG9l2UEQ0 どこから参照されてるのか全部調べないとわからないんじゃないかそれ。
まあThisworkbookを知らないだけの可能性は高いが。
まあThisworkbookを知らないだけの可能性は高いが。
241デフォルトの名無しさん (ワッチョイ eb5e-AglQ)
2020/04/10(金) 19:27:26.52ID:f64Irgef0 >>238,239
ありがとうございます。
今日内容を確認してきましたが、マクロが記述されたブック(A.xlsm)上でシートを作成し、それをコピーして
新規ブック(B.xlsx)を作成してからもう一度A.xlsmの特定のシートをアクティブにする、という処理の中で
A.xlsmのブック名を明示してありました。
今日は時間がなくて試せなかったのですが、この場合でもマクロが記述されたブックはA.xlsmなので
ThisWorkBookで問題ないかなと思ったのですが、それであっていますでしょうか?
ありがとうございます。
今日内容を確認してきましたが、マクロが記述されたブック(A.xlsm)上でシートを作成し、それをコピーして
新規ブック(B.xlsx)を作成してからもう一度A.xlsmの特定のシートをアクティブにする、という処理の中で
A.xlsmのブック名を明示してありました。
今日は時間がなくて試せなかったのですが、この場合でもマクロが記述されたブックはA.xlsmなので
ThisWorkBookで問題ないかなと思ったのですが、それであっていますでしょうか?
242デフォルトの名無しさん (ワッチョイ eb5e-AglQ)
2020/04/10(金) 19:38:53.80ID:f64Irgef0 >>240
ThisWorkBookを知らないというかちゃんと理解していないのはその通りだと思います。
ThisWorkBookの主体がが変わる場合があるということでしょうか?
マクロ実行中にほかのブックに記述されたマクロを利用したりすると変わる、とかですかね?
ThisWorkBookを知らないというかちゃんと理解していないのはその通りだと思います。
ThisWorkBookの主体がが変わる場合があるということでしょうか?
マクロ実行中にほかのブックに記述されたマクロを利用したりすると変わる、とかですかね?
243デフォルトの名無しさん (ワッチョイ 62ad-JJvI)
2020/04/10(金) 20:30:11.90ID:oDKSQVIR0 ThisWorkBookはプログラムが記述されているワークブックを参照せよっていう意味だからブックAを実行中にアクティブがブックBに切り替わったりしてもブックAに記述されたThisWorkBookはブックAを参照する
244デフォルトの名無しさん (ワッチョイ e2b5-G6fV)
2020/04/11(土) 03:52:15.33ID:w8fV8nev0 エクセルテンプレートを開いた状態
↓
フォルダにある1つ目のtxtデータをエクセルテンプレにドラッグしてエクセル化
↓
エクセル化したC1:C8の範囲をコピー
↓
元々開いてあるエクセルのA1:A8に「数値」のみ貼り付け
↓
エクセル化されたデータは閉じて2つ目のtxtをドラッグしてエクセル化
↓
C1:C8の範囲をコピーしてテンプレのB1:B8に「数値」のみコピー
って感じでテンプレに測定機から出したデータをひたすら貼ってるんですが
これを簡単にするVBAとか可能ですか?
人によってはテキストをエクセル化はまとめて5つドラッグしたりして順番に貼ってく人もいます
エクセル化したデータの数値のみコピーしたいセルはC1:C8は固定
テンプレにはABCDと順番に貼って増やしていく
これをなんとかマクロかする案があればご教授お願いします。
↓
フォルダにある1つ目のtxtデータをエクセルテンプレにドラッグしてエクセル化
↓
エクセル化したC1:C8の範囲をコピー
↓
元々開いてあるエクセルのA1:A8に「数値」のみ貼り付け
↓
エクセル化されたデータは閉じて2つ目のtxtをドラッグしてエクセル化
↓
C1:C8の範囲をコピーしてテンプレのB1:B8に「数値」のみコピー
って感じでテンプレに測定機から出したデータをひたすら貼ってるんですが
これを簡単にするVBAとか可能ですか?
人によってはテキストをエクセル化はまとめて5つドラッグしたりして順番に貼ってく人もいます
エクセル化したデータの数値のみコピーしたいセルはC1:C8は固定
テンプレにはABCDと順番に貼って増やしていく
これをなんとかマクロかする案があればご教授お願いします。
245デフォルトの名無しさん (ワッチョイ 4f5f-791I)
2020/04/11(土) 07:25:04.87ID:+FpWMQNh0 可能です。
246デフォルトの名無しさん (ワッチョイ bbe6-CJtn)
2020/04/11(土) 08:08:50.84ID:X9U6v4B00 テンプレート(.xlt .xltx)は何に使うの?
247デフォルトの名無しさん (ワッチョイ e2b5-G6fV)
2020/04/11(土) 10:50:20.33ID:w8fV8nev0248デフォルトの名無しさん (アウアウエー Sa3a-d4/r)
2020/04/11(土) 10:56:04.79ID:DIdffniea >>244
txtデータは、例えばカンマで区切られてるとか、空白で区切られてるとか、決まってるの?
内容的にはVBAがある程度使える人なら難しくないと思うけど、ちょっとネットで聞いて作ろうとかいうのは難しいんじゃないかな。
txtデータは、例えばカンマで区切られてるとか、空白で区切られてるとか、決まってるの?
内容的にはVBAがある程度使える人なら難しくないと思うけど、ちょっとネットで聞いて作ろうとかいうのは難しいんじゃないかな。
249248 (アウアウエー Sa3a-d4/r)
2020/04/11(土) 11:19:08.65ID:DIdffniea txtファイルがどのくらいの数あるのかで、どういう手順が良いか違ってくると思います。
そんなにたくさんないなら、テンプレファイル(◯◯.xlsm )に、ボタンを用意。ボタンを押したらファイルを選択するダイアログが出て、該当のtxtファイルを選択してデータを読み込む。
txtファイルがたくさんあるとこの手順は面倒なので、同一フォルダに入れてなんらかの順番で読み込むようにするとか。
そんなにたくさんないなら、テンプレファイル(◯◯.xlsm )に、ボタンを用意。ボタンを押したらファイルを選択するダイアログが出て、該当のtxtファイルを選択してデータを読み込む。
txtファイルがたくさんあるとこの手順は面倒なので、同一フォルダに入れてなんらかの順番で読み込むようにするとか。
250デフォルトの名無しさん (ブーイモ MM3e-G6fV)
2020/04/11(土) 11:27:54.59ID:YvJJVii7M >>248
そこら辺の知識がなくてとにかくテキストを、開いてるエクセルにドラッグすると決まったセル範囲に例えばC1:C5に欲しいデータが出るのでそれをコピーしてるのが現状です
イメージ的にいつも
https://i.imgur.com/50VhJqS.jpg
テキスト入ったフォルダとエクセルを並べる
↓
https://i.imgur.com/8TiTDap.jpg
ドラッグしてエクセル化
↓
https://i.imgur.com/OrMUP1G.jpg
数値のみコピーしてテンプレに貼り付け
↓
https://i.imgur.com/htHvRLv.jpg
閉じた後、次のテキストをドラッグしてエクセル化
↓
https://i.imgur.com/1F89knY.jpg
テンプレの次の列に貼り付け
これを日によっては70くらいやったりしてます、、
そこら辺の知識がなくてとにかくテキストを、開いてるエクセルにドラッグすると決まったセル範囲に例えばC1:C5に欲しいデータが出るのでそれをコピーしてるのが現状です
イメージ的にいつも
https://i.imgur.com/50VhJqS.jpg
テキスト入ったフォルダとエクセルを並べる
↓
https://i.imgur.com/8TiTDap.jpg
ドラッグしてエクセル化
↓
https://i.imgur.com/OrMUP1G.jpg
数値のみコピーしてテンプレに貼り付け
↓
https://i.imgur.com/htHvRLv.jpg
閉じた後、次のテキストをドラッグしてエクセル化
↓
https://i.imgur.com/1F89knY.jpg
テンプレの次の列に貼り付け
これを日によっては70くらいやったりしてます、、
251デフォルトの名無しさん (ブーイモ MM3e-G6fV)
2020/04/11(土) 11:31:26.34ID:YvJJVii7M >>249
レスありがとです!!!そこです!
日によってデータ数が違って
5つの日もあれば30の日もあれば75の日もあります
ボタン作って該当するデータの数を任意で選べたりできないのかなぁと妄想してます
レスありがとです!!!そこです!
日によってデータ数が違って
5つの日もあれば30の日もあれば75の日もあります
ボタン作って該当するデータの数を任意で選べたりできないのかなぁと妄想してます
252デフォルトの名無しさん (ブーイモ MM3e-G6fV)
2020/04/11(土) 11:41:57.94ID:YvJJVii7M この貼り付けるエクセルはそもそもこんなのでテンプレなの?っていうは一応エクセルの関数で
他の何種類もあるシートに複数の関数で出せる紐付けしてあるので
テンプレというか自分なりのベースのようなものです
本当はその関数すら慣れてる人ならVBAで余裕で組むんだろうなと思うのですがそんな欲ばる資格がまだないのでまずはこの作業を…
他の何種類もあるシートに複数の関数で出せる紐付けしてあるので
テンプレというか自分なりのベースのようなものです
本当はその関数すら慣れてる人ならVBAで余裕で組むんだろうなと思うのですがそんな欲ばる資格がまだないのでまずはこの作業を…
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 でやらないといけないのか
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- オイルマッサージ施術中20代女性にわいせつ行為か セラピストの男(30)を再逮捕 余罪複数とみて警視庁が捜査 [どどん★]
- 【おこめ】「有能だったんじゃ」おこめ券で批判殺到の鈴木農水大臣…ネットでは前任の“進次郎再評価” ★2 [ぐれ★]
- 内閣支持、微減59.9% 5割超が補正予算評価 時事通信世論調査 [どどん★]
- 【中国外務省】日本への渡航自粛を再度呼びかけ 今度は「地震発生」を理由に [ぐれ★]
- 立憲・小宮山議員、「牛乳=白い水」投稿を削除 批判殺到で「大変失礼申し上げました」 [少考さん★]
- 日本語が話せない「外国籍」の子が急増中、授業がストップ、教室から脱走も…先生にも大きな負担「日本語支援」追いつかず★3 [七波羅探題★]
- 愛国者「徴兵されるのは嫌。でも敵が侵略してきたら考えます」 [834922174]
- Vtuber「人気アニメとコラボします!」←これでVが叩かれるの謎じゃね
- 【悲報】日中戦争5割が賛成、高市キッズたち徴兵へ [834922174]
- 【悲報】日本人のTikTok収益、ガチで剥奪中wwwwwwwwwwwwwwwwwwwwwwwww [279254606]
- 【速報】高市内閣支持率、下落WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
- 頭悪そうな奴がしてくるレス
