!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512
↑2行に減ってるけど、同じ内容を3行に増やして貼り付けるナリ
ExcelのVBAに関する質問スレナリ
コード書き込みや作成依頼もOKナリ
※前スレ
Excel VBA 質問スレ Part74
https://mevius.5ch.net/test/read.cgi/tech/1639932059/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
探検
Excel VBA 質問スレ Part75
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (スフッ Sd7f-wadS)
2022/02/09(水) 14:24:32.62ID:I0u44nFvd41デフォルトの名無しさん (アウアウウー Sac3-jv/I)
2022/02/12(土) 23:11:31.31ID:IAH9YCSPa 条件付き書式が一番いい気がする
42デフォルトの名無しさん (ワッチョイ 632f-TxqZ)
2022/02/12(土) 23:18:33.99ID:FD8BwyjM043デフォルトの名無しさん (アウアウウー Sac3-u+HJ)
2022/02/13(日) 00:20:49.39ID:hyUOgQwKa >>20
言語の問題より可読性が問題だな。ワラワラ
言語の問題より可読性が問題だな。ワラワラ
44デフォルトの名無しさん (スップ Sd32-rCQD)
2022/02/13(日) 00:34:59.07ID:TIGHqVMSd >>40
スレチだけど上の人が言ってるように条件式書式ならこんな感じのを使えばいいかと
=AND(TODAY()-10<=RC,RC<TODAY())
これは日付の入っているセルに対して質問にあるような条件で色付けたりできるよ
※R1C1形式になってるので注意
スレチだけど上の人が言ってるように条件式書式ならこんな感じのを使えばいいかと
=AND(TODAY()-10<=RC,RC<TODAY())
これは日付の入っているセルに対して質問にあるような条件で色付けたりできるよ
※R1C1形式になってるので注意
45デフォルトの名無しさん (ワッチョイ afd0-1uE6)
2022/02/13(日) 07:35:55.02ID:P798zPao046デフォルトの名無しさん (スップ Sd52-Qiwb)
2022/02/14(月) 12:57:56.87ID:wZ5OVHUFd この画像みたいなExcelファイル(1枚目)をデータベース化する為に、情報を抽出して横並びに整理したい(2枚目)のですが、アドバイスいただきたいです。
行数や列数がそれぞれ異なり、罫線の枠内でも、変に結合や分割されており、関数のみでは対応しきれませんでした。
※元々がPDFでしか入力できないデータの為、それをExcel変換しているせいで構成が崩れています。
罫線の枠構成は崩れていない為、マクロで処理するとしたら、各セルの罫線を判定して、囲われた範囲の値を順番に取得していくしかないのかな?と思っています。
枠内の左上隅(左と上に罫線があるセル)から、右下隅(右と下に罫線があるセル)までの値を取得して連結、次の枠へ進む、という処理しか思いつかないのですが、他にいい案はあるでしょうか?
https://i.imgur.com/oMaEhvs.png
https://i.imgur.com/gnZIoe7.png
行数や列数がそれぞれ異なり、罫線の枠内でも、変に結合や分割されており、関数のみでは対応しきれませんでした。
※元々がPDFでしか入力できないデータの為、それをExcel変換しているせいで構成が崩れています。
罫線の枠構成は崩れていない為、マクロで処理するとしたら、各セルの罫線を判定して、囲われた範囲の値を順番に取得していくしかないのかな?と思っています。
枠内の左上隅(左と上に罫線があるセル)から、右下隅(右と下に罫線があるセル)までの値を取得して連結、次の枠へ進む、という処理しか思いつかないのですが、他にいい案はあるでしょうか?
https://i.imgur.com/oMaEhvs.png
https://i.imgur.com/gnZIoe7.png
47デフォルトの名無しさん (ワッチョイ 16da-B80Q)
2022/02/14(月) 13:06:54.20ID:O4GcyUrK048デフォルトの名無しさん (ワッチョイ 5eda-K+wn)
2022/02/14(月) 13:10:47.83ID:ecmIkoYm0 一度全ての結合解除するとかは?
同じ項目に相当する入力値の行き先が泣き別れたら終わるけども
同じ項目に相当する入力値の行き先が泣き別れたら終わるけども
49デフォルトの名無しさん (ワッチョイ ebce-B80Q)
2022/02/14(月) 13:31:47.44ID:33Tyeh9C0 >>46
ID以外に空欄がないのなら、データの区切り、たとえばB列の水平の罫線の位置だけ検出すればいい
あとはその範囲を左上から舐めて、空白セルを無視しながらデータを取り出すだけ
結合は全部解除した方がロジックは簡単になると思う
そんなに難しくない
テスト用のデータを用意するのが面倒だから、そのサンプルをエクセル形式かスプレッドシートにでも入れて公開してよ
ID以外に空欄がないのなら、データの区切り、たとえばB列の水平の罫線の位置だけ検出すればいい
あとはその範囲を左上から舐めて、空白セルを無視しながらデータを取り出すだけ
結合は全部解除した方がロジックは簡単になると思う
そんなに難しくない
テスト用のデータを用意するのが面倒だから、そのサンプルをエクセル形式かスプレッドシートにでも入れて公開してよ
50デフォルトの名無しさん (ワッチョイ 6368-B80Q)
2022/02/14(月) 13:53:01.79ID:XTh2f6qa0 >>46
すげぇな!ここまでのは見たことないぞ
行数が同じなら、
C6:C11を文字列で結合すれば良いかと思ったけど
行数も違うのか
セル内改行したり、セルをわけたりで行数がバラバラなのね
やるなら、
C6 11111-11
c7 11111-12
C8 11111-21
C9 11111-22
・・・
みたいにすれば、まぁなんとか行けるかなと思う
今のままじゃ無理だ
すげぇな!ここまでのは見たことないぞ
行数が同じなら、
C6:C11を文字列で結合すれば良いかと思ったけど
行数も違うのか
セル内改行したり、セルをわけたりで行数がバラバラなのね
やるなら、
C6 11111-11
c7 11111-12
C8 11111-21
C9 11111-22
・・・
みたいにすれば、まぁなんとか行けるかなと思う
今のままじゃ無理だ
51デフォルトの名無しさん (ワッチョイ 6368-B80Q)
2022/02/14(月) 13:58:47.62ID:XTh2f6qa0 と思ったら罫線を基準にすればいいのか
52デフォルトの名無しさん (アウアウウー Sac3-jv/I)
2022/02/14(月) 14:07:53.31ID:deGbjwUIa CSVで吐き出して
それを加工したほうが早くね?
それを加工したほうが早くね?
53デフォルトの名無しさん (ワッチョイ 6368-B80Q)
2022/02/14(月) 14:16:38.09ID:XTh2f6qa0 csvにしたら大惨事だろう
54デフォルトの名無しさん (スップ Sd52-Qiwb)
2022/02/14(月) 14:28:40.98ID:wZ5OVHUFd いくつも返信ありがとうございます。
サンプルは後程公開しようと思います。
セル結合解除したらこうなります。
罫線範囲の左上に値があればまだマシなのですが、途中だったり分割されてたりがネックです。また、空白のセルも多々存在します。
VBA初心者の為、合理的な処理かは分かりませんが、今はこの矢印の順でセルを移動しながら、罫線の判定と値の取得する流れで考えています。
https://i.imgur.com/raK9Xyw.png
サンプルは後程公開しようと思います。
セル結合解除したらこうなります。
罫線範囲の左上に値があればまだマシなのですが、途中だったり分割されてたりがネックです。また、空白のセルも多々存在します。
VBA初心者の為、合理的な処理かは分かりませんが、今はこの矢印の順でセルを移動しながら、罫線の判定と値の取得する流れで考えています。
https://i.imgur.com/raK9Xyw.png
55デフォルトの名無しさん (ワッチョイ 12da-rCQD)
2022/02/14(月) 14:44:13.39ID:AWvjJcV30 https://atmarkit.itmedia.co.jp/ait/articles/2002/27/news011.html
↑ ここでは一旦Word経由で取り込めと勧めているが、果たして
にしても、 > ※元々がPDFでしか入力できないデータ とは?
PDFの原稿があって、その枠の中にテキスト貼り付ける方式なのか?
↑ ここでは一旦Word経由で取り込めと勧めているが、果たして
にしても、 > ※元々がPDFでしか入力できないデータ とは?
PDFの原稿があって、その枠の中にテキスト貼り付ける方式なのか?
56デフォルトの名無しさん (ワッチョイ ebce-B80Q)
2022/02/14(月) 14:53:57.21ID:33Tyeh9C057デフォルトの名無しさん (ワッチョイ ebce-B80Q)
2022/02/14(月) 14:55:08.92ID:33Tyeh9C0 >>55
最新のPDFには入力フォームを重ねる機能があるんよ
最新のPDFには入力フォームを重ねる機能があるんよ
58デフォルトの名無しさん (ワッチョイ ebce-B80Q)
2022/02/14(月) 14:59:16.98ID:33Tyeh9C059デフォルトの名無しさん (ワッチョイ 6368-B80Q)
2022/02/14(月) 15:02:51.71ID:XTh2f6qa0 >>56
J21セル
J21セル
60デフォルトの名無しさん (ワッチョイ 16da-B80Q)
2022/02/14(月) 15:14:55.89ID:O4GcyUrK0 >>51
罫線を検知するVBAは、このあたり使うのかしら?
例えば「実線の下線縛り」だと
If Range("A5").Borders(xlEdgeBottom).LineStyle = xlContinuous Then
MsgBox "下線あり"
Else
MsgBox "下線なし"
End If
セルの上下左右も調べることになる?
http://chaichan.lolipop.jp/vbtips/VBMemo2009-01-072.htm
罫線を検知するVBAは、このあたり使うのかしら?
例えば「実線の下線縛り」だと
If Range("A5").Borders(xlEdgeBottom).LineStyle = xlContinuous Then
MsgBox "下線あり"
Else
MsgBox "下線なし"
End If
セルの上下左右も調べることになる?
http://chaichan.lolipop.jp/vbtips/VBMemo2009-01-072.htm
61デフォルトの名無しさん (ワッチョイ ebce-B80Q)
2022/02/14(月) 15:21:11.73ID:33Tyeh9C0 >>59
見落としてたごめん
見落としてたごめん
62デフォルトの名無しさん (ワッチョイ b763-/qOU)
2022/02/14(月) 15:47:34.87ID:nf+c+LFy0 PDFからExel変換がまともに出来てないから元のPDFからテキストデータ抜き出して処理した方が早い気がするなぁ
63デフォルトの名無しさん (ワッチョイ 6368-B80Q)
2022/02/14(月) 15:52:40.41ID:XTh2f6qa0 >>60
下だけでいい
ってかはよサンプルくれ。サンプルなしでコード書くのあんまり好きやないんや
とりあえず下線の判定部分だけ置いとくぞ
Function 下線あり(target)
If target.Borders(xlEdgeBottom).LineStyle <> xlLineStyleNone Then
下線あり = True
Else
下線あり = False
End If
End Function
下だけでいい
ってかはよサンプルくれ。サンプルなしでコード書くのあんまり好きやないんや
とりあえず下線の判定部分だけ置いとくぞ
Function 下線あり(target)
If target.Borders(xlEdgeBottom).LineStyle <> xlLineStyleNone Then
下線あり = True
Else
下線あり = False
End If
End Function
64デフォルトの名無しさん (ワッチョイ 16da-B80Q)
2022/02/14(月) 16:25:13.19ID:O4GcyUrK065デフォルトの名無しさん (スップ Sd52-Qiwb)
2022/02/14(月) 16:50:56.63ID:wZ5OVHUFd >>55
word経由だったり、何種類かの変換ソフトを試したけど出来はほぼ変わりませんでした。
PDFの経緯ですが、他社のWEB上でのサービスにて個人情報等を登録管理しており、選択して出力する際にはPDF形式でしか出力できず、今回の悩みになっています。
word経由だったり、何種類かの変換ソフトを試したけど出来はほぼ変わりませんでした。
PDFの経緯ですが、他社のWEB上でのサービスにて個人情報等を登録管理しており、選択して出力する際にはPDF形式でしか出力できず、今回の悩みになっています。
66デフォルトの名無しさん (スップ Sd52-Qiwb)
2022/02/14(月) 16:52:00.24ID:wZ5OVHUFd サンプルです。
よろしくお願いします。
https://docs.google.com/spreadsheets/d/1KXHOGpa6GFBfFflosWycM_IsNS5P9gnk9m2eGG0uXLs/edit?usp=drivesdk
共有の仕方合ってるか不安ですが。。
よろしくお願いします。
https://docs.google.com/spreadsheets/d/1KXHOGpa6GFBfFflosWycM_IsNS5P9gnk9m2eGG0uXLs/edit?usp=drivesdk
共有の仕方合ってるか不安ですが。。
67デフォルトの名無しさん (ワッチョイ 1f8e-nldK)
2022/02/14(月) 17:08:51.74ID:xN/gSLrN068デフォルトの名無しさん (スップ Sd32-rCQD)
2022/02/14(月) 17:56:38.45ID:qxU338Vtd 画像見た感じだとそうめんどくさい話ではないかね
住所欄と連絡先欄の住所と電話番号をどういうルールで分解するかがわかれば変換は余裕かと
ただこの手の内容までこのスレで答えるのはいいように使われている感があっていやだなぁw
住所欄と連絡先欄の住所と電話番号をどういうルールで分解するかがわかれば変換は余裕かと
ただこの手の内容までこのスレで答えるのはいいように使われている感があっていやだなぁw
69デフォルトの名無しさん (ワッチョイ 6368-B80Q)
2022/02/14(月) 18:16:24.84ID:XTh2f6qa0 住所の下に下線ない事に気づき、無事死亡
70デフォルトの名無しさん (ワッチョイ 16da-B80Q)
2022/02/14(月) 18:16:43.53ID:O4GcyUrK071デフォルトの名無しさん (ワッチョイ 6368-B80Q)
2022/02/14(月) 18:19:08.21ID:XTh2f6qa0 更にこれ氏名でセルわかれてるんかーい
72デフォルトの名無しさん (スップ Sd52-Qiwb)
2022/02/14(月) 18:55:37.73ID:wZ5OVHUFd >>55
混乱させてすみません、PDFでしか「入手」できないデータの誤りでした。
サービス元からは、それ以外の形式での出力はできないとの回答の為、このExcelファイルをなんとか処理して使わざるを得ない状態です。
混乱させてすみません、PDFでしか「入手」できないデータの誤りでした。
サービス元からは、それ以外の形式での出力はできないとの回答の為、このExcelファイルをなんとか処理して使わざるを得ない状態です。
73デフォルトの名無しさん (ワッチョイ cbcc-piVT)
2022/02/14(月) 18:58:42.50ID:/RDvxF8W0 指定した日付から、その日付が1年間の第何週かを求めそれを引数にして、その週の月曜日と金曜日の日付を返す式を教えてください。
i = WeekNum(指定日)
date1 = 開始日(月曜日)
date2 = 終了日(金曜日)
i = WeekNum(指定日)
date1 = 開始日(月曜日)
date2 = 終了日(金曜日)
74デフォルトの名無しさん (スップ Sd32-rCQD)
2022/02/14(月) 19:33:13.83ID:qxU338Vtd >>73
・週の初めは何曜日基準?日曜日?月曜日?別の曜日?
・それを引数のそれって何?開始日(月曜日)の関数にiは使ってないのでは?指定日ではだめなの?
・仮に日曜日基準とした場合、2022年1月1日(土)の月曜日は2021年12月26日?それとも別の日?
・週の初めは何曜日基準?日曜日?月曜日?別の曜日?
・それを引数のそれって何?開始日(月曜日)の関数にiは使ってないのでは?指定日ではだめなの?
・仮に日曜日基準とした場合、2022年1月1日(土)の月曜日は2021年12月26日?それとも別の日?
75デフォルトの名無しさん (スップ Sd32-rCQD)
2022/02/14(月) 19:34:32.34ID:qxU338Vtd >>73
そもそもVBAの回答が知りたいの?それとも関数使ってなの?関数ならスレチですよ
そもそもVBAの回答が知りたいの?それとも関数使ってなの?関数ならスレチですよ
76デフォルトの名無しさん (ワッチョイ 6368-B80Q)
2022/02/14(月) 19:35:02.10ID:XTh2f6qa077デフォルトの名無しさん (ワッチョイ 6368-B80Q)
2022/02/14(月) 19:36:56.50ID:XTh2f6qa0 別に関数でもいいんじゃないの?
俺もコードの中にworksheetfunction使ってるし、気にしたらキリないわ
俺もコードの中にworksheetfunction使ってるし、気にしたらキリないわ
78デフォルトの名無しさん (ワッチョイ 6368-B80Q)
2022/02/14(月) 19:41:40.69ID:XTh2f6qa079デフォルトの名無しさん (ワッチョイ 16da-B80Q)
2022/02/14(月) 19:45:27.38ID:O4GcyUrK0 >>66
ひとまず
元ファイルのセル結合を解除しないまま、
別ファイルからPower Queryでsheetをそのまま読込んで、
不要な行/列、空白、改行コードを削除したり
列を合体したりして、ある程度整理してみた。
https://i.imgur.com/8wCdbbJ.png
https://i.imgur.com/LvCak5M.png
やっぱ、どの行までが1個体のデータなのか判別がつかないので、
ここから先は難しい。
それが特定できればsheet上のテーブルの右側に列足して
M言語でなく、使い慣れたExcelのIF関数や文字列関数使って
拾っていくことも出来そうなんだけど・・・
先にVBAで罫線判別して各行にフラグでも立てることが必要っぽい。
>>63 氏に期待
ひとまず
元ファイルのセル結合を解除しないまま、
別ファイルからPower Queryでsheetをそのまま読込んで、
不要な行/列、空白、改行コードを削除したり
列を合体したりして、ある程度整理してみた。
https://i.imgur.com/8wCdbbJ.png
https://i.imgur.com/LvCak5M.png
やっぱ、どの行までが1個体のデータなのか判別がつかないので、
ここから先は難しい。
それが特定できればsheet上のテーブルの右側に列足して
M言語でなく、使い慣れたExcelのIF関数や文字列関数使って
拾っていくことも出来そうなんだけど・・・
先にVBAで罫線判別して各行にフラグでも立てることが必要っぽい。
>>63 氏に期待
80デフォルトの名無しさん (ワッチョイ 16da-B80Q)
2022/02/14(月) 19:46:56.80ID:O4GcyUrK0 あ、
>>63 氏、出来たのね。
>>63 氏、出来たのね。
81デフォルトの名無しさん (ラクッペペ MMde-HxmU)
2022/02/14(月) 19:47:44.47ID:TbpPq1WHM pdfからの変換で毎回セル位置が変わるのか?
変わらないなら一回参照シート作るだけじゃね?
変わらないなら一回参照シート作るだけじゃね?
82デフォルトの名無しさん (ワッチョイ 6368-B80Q)
2022/02/14(月) 19:53:08.06ID:XTh2f6qa083デフォルトの名無しさん (アウアウウー Sac3-jv/I)
2022/02/14(月) 19:54:22.25ID:/oecZUEba84デフォルトの名無しさん (ワッチョイ 47da-gYPf)
2022/02/15(火) 02:26:45.53ID:yR4VR0Kt0 Excel板の住人が発狂して荒らしてくるから関数はダメかも
85デフォルトの名無しさん (ワッチョイ 92ad-waOb)
2022/02/15(火) 03:38:15.06ID:6BbZ47hN0 Fomuraでvbaでセルに
関数放り込んでやれば
関数放り込んでやれば
86デフォルトの名無しさん (スップ Sd52-Qiwb)
2022/02/15(火) 08:44:43.33ID:H1nNFxJWd87デフォルトの名無しさん (スップ Sd52-Qiwb)
2022/02/15(火) 08:49:44.20ID:H1nNFxJWd >>76
本当にありがとうございます。
サンプルの方では問題なく処理されるのを確認できました。
自身が書いたらもっと長々しくぐちゃぐちゃになっていたと思うので、すっきりまとまっていて素晴らしいと思います。
For Each 個人列 In Array(3, 4, 9, 10, 11, 15)
ここは列は固定の指定になっていたのですが、ファイルによっては列もバラバラなので、最初に文字列検索で列を調べてから処理に入るように変えていきたいと思います。
皆さん本当にありがとうございました。
本当にありがとうございます。
サンプルの方では問題なく処理されるのを確認できました。
自身が書いたらもっと長々しくぐちゃぐちゃになっていたと思うので、すっきりまとまっていて素晴らしいと思います。
For Each 個人列 In Array(3, 4, 9, 10, 11, 15)
ここは列は固定の指定になっていたのですが、ファイルによっては列もバラバラなので、最初に文字列検索で列を調べてから処理に入るように変えていきたいと思います。
皆さん本当にありがとうございました。
88デフォルトの名無しさん (スッップ Sd32-5szE)
2022/02/15(火) 13:36:45.93ID:mFkQACiCd レセコンのデータだろ
89デフォルトの名無しさん (ワッチョイ b707-75kg)
2022/02/15(火) 16:04:21.44ID:aiSHqaBU0 A〜K列にデータを入力しているシートで、C列にデータがある場合のみその行をコピーする、という動作をさせるには
どう記述すればいいでしょうか?
どう記述すればいいでしょうか?
90デフォルトの名無しさん (ブーイモ MM32-j2zp)
2022/02/15(火) 17:39:01.90ID:6Pf72uqdM if文でC列に入力があるかを判定すれば良い
コピーする行はC列に入力がある全ての行か?それとも一番最初のものだけか?またはカーソルがある位置だけを対象にするのか?
もう少し細かく仕様を書いてくれた方が導きやすいぞ
コピーする行はC列に入力がある全ての行か?それとも一番最初のものだけか?またはカーソルがある位置だけを対象にするのか?
もう少し細かく仕様を書いてくれた方が導きやすいぞ
91デフォルトの名無しさん (ワッチョイ ebce-B80Q)
2022/02/15(火) 17:39:49.61ID:zxh7HcNj0 >>89
If Range("C1").Text <> "" Then Range("A1:K1").Copy
If Range("C1").Text <> "" Then Range("A1:K1").Copy
92デフォルトの名無しさん (ワッチョイ 6368-B80Q)
2022/02/15(火) 18:55:31.55ID:MJaSxl0D0 >>89
オートフィルタで空白以外にして、コピーペースト
Sub Macro1()
最終行 = Cells(Rows.Count, 1).End(xlUp).Row
'オートフィルタの後にコピー
Range(Cells(1, 1), Cells(最終行, 11)).AutoFilter
ActiveSheet.Range("$A$1:$K$6").AutoFilter Field:=3, Criteria1:="<>"
Columns("A:K").Select
Selection.Copy
'mに貼り付けてフィルタ解除
Range("M1").PasteSpecial
Application.CutCopyMode = False
Selection.AutoFilter
End Sub
オートフィルタで空白以外にして、コピーペースト
Sub Macro1()
最終行 = Cells(Rows.Count, 1).End(xlUp).Row
'オートフィルタの後にコピー
Range(Cells(1, 1), Cells(最終行, 11)).AutoFilter
ActiveSheet.Range("$A$1:$K$6").AutoFilter Field:=3, Criteria1:="<>"
Columns("A:K").Select
Selection.Copy
'mに貼り付けてフィルタ解除
Range("M1").PasteSpecial
Application.CutCopyMode = False
Selection.AutoFilter
End Sub
93デフォルトの名無しさん (ワッチョイ b707-75kg)
2022/02/16(水) 09:01:55.23ID:r3Bj6a+b094デフォルトの名無しさん (ワッチョイ 0b30-v0o9)
2022/02/16(水) 21:42:26.46ID:jzL/oN3O0 選択した範囲のセルから、「セルの色」と「文字」で絞った数を調べたいのですが、どのように書けば宜しいでしょうか?
(色に関しては、指定したセルの色を参照したいです。)
例:A1〜D10の中で、E1と同じ色で、「テスト」と書かれているセルの数
みたいなことです。
出来ればグーグルのスプレッドシートでも使いたいです…
(色に関しては、指定したセルの色を参照したいです。)
例:A1〜D10の中で、E1と同じ色で、「テスト」と書かれているセルの数
みたいなことです。
出来ればグーグルのスプレッドシートでも使いたいです…
95デフォルトの名無しさん (ワッチョイ 6368-B80Q)
2022/02/16(水) 22:02:32.25ID:tqdkY3B80 >>94
GASは全然書けないんだよなぁ
Sub foo()
Set 検索範囲 = Range("a1:d10")
Set 検索 = Range("e1")
カウント = 0
For Each test In 検索範囲
If test.Interior.Color = 検索.Interior.Color And _
test.Value = 検索.Value Then
カウント = カウント + 1
End If
Next
MsgBox カウント
End Sub
GASは全然書けないんだよなぁ
Sub foo()
Set 検索範囲 = Range("a1:d10")
Set 検索 = Range("e1")
カウント = 0
For Each test In 検索範囲
If test.Interior.Color = 検索.Interior.Color And _
test.Value = 検索.Value Then
カウント = カウント + 1
End If
Next
MsgBox カウント
End Sub
96デフォルトの名無しさん (ワッチョイ 632f-TxqZ)
2022/02/16(水) 22:17:26.65ID:VM6eHjoj0 >>94
べたに指定範囲のセルをループ回して比較すればいいんじゃね
Sub test()
MsgBox CountX(Range("A1:D10"), Range("E1"), "テスト")
End Sub
Function CountX(target As Range, colorCell As Range, str As String)
Dim count As Integer
Dim c As Range
For Each c In target
Debug.Print c.Interior.color
If c.Text = str And c.Interior.color = colorCell.Interior.color Then
count = count + 1
End If
Next
CountX = count
End Function
こんな感じか
べたに指定範囲のセルをループ回して比較すればいいんじゃね
Sub test()
MsgBox CountX(Range("A1:D10"), Range("E1"), "テスト")
End Sub
Function CountX(target As Range, colorCell As Range, str As String)
Dim count As Integer
Dim c As Range
For Each c In target
Debug.Print c.Interior.color
If c.Text = str And c.Interior.color = colorCell.Interior.color Then
count = count + 1
End If
Next
CountX = count
End Function
こんな感じか
97デフォルトの名無しさん (ワッチョイ 632f-TxqZ)
2022/02/16(水) 22:19:34.63ID:VM6eHjoj0 ああ、ほぼ被った上にDebug消し忘れてる
98デフォルトの名無しさん (スップ Sd32-OUII)
2022/02/17(木) 15:22:29.06ID:BBg74W1Zd fileSystemObjetを使うときに下のコードのようにインスタンスを格納する変数を省略できるのはなぜですか?
ひょっとしてwithでくくるときに一時的に作られる変数にでもいれているのでしょうか?
with New fileSystemObject
ステートメント
End With
ひょっとしてwithでくくるときに一時的に作られる変数にでもいれているのでしょうか?
with New fileSystemObject
ステートメント
End With
99デフォルトの名無しさん (ワッチョイ 1201-iAv0)
2022/02/17(木) 15:49:10.52ID:Lj9EVaDX0100デフォルトの名無しさん (ワッチョイ ebce-B80Q)
2022/02/17(木) 16:14:35.03ID:8LWMZH0T0101デフォルトの名無しさん (ワッチョイ 6368-B80Q)
2022/02/17(木) 16:21:30.38ID:lbVsnXnA0 このwithが参照してるオブジェクトって確認する方法ありますか?
Sub foo()
With Cells(1, 1)
Debug.Print .Value
End With
End Sub
とりあえずウォッチ式に「.value」入れてみてもエラーで見れなかった
with と入れてもエラー
どこに格納されているんだろう
Sub foo()
With Cells(1, 1)
Debug.Print .Value
End With
End Sub
とりあえずウォッチ式に「.value」入れてみてもエラーで見れなかった
with と入れてもエラー
どこに格納されているんだろう
102デフォルトの名無しさん (ワッチョイ ebce-B80Q)
2022/02/17(木) 17:02:27.81ID:8LWMZH0T0 >>101
VBだとGetTypeで取得できるんだけど、VBAにはないね
VBだとGetTypeで取得できるんだけど、VBAにはないね
103デフォルトの名無しさん (ワッチョイ 632f-bORD)
2022/02/17(木) 19:16:24.68ID:uTvXTdo20104デフォルトの名無しさん (ワッチョイ 6368-B80Q)
2022/02/17(木) 20:01:56.20ID:lbVsnXnA0105デフォルトの名無しさん (スップ Sd52-Qiwb)
2022/02/17(木) 20:37:40.67ID:oZh0IyxXd 配列に値を保存しておいて、別シートの特定セル範囲に値を入れたいんだけど、
Worksheets("シート名").Range("A1:A10").Value =配列
だとエラーが出ます。
仕方なく、シート移動してから
Range("A1:A10").Value =配列
で値を入れてから元シートに戻る処理をしてるんですが、他にいい方法ありませんか?
Worksheets("シート名").Range("A1:A10").Value =配列
だとエラーが出ます。
仕方なく、シート移動してから
Range("A1:A10").Value =配列
で値を入れてから元シートに戻る処理をしてるんですが、他にいい方法ありませんか?
106デフォルトの名無しさん (ワッチョイ 03fd-j2zp)
2022/02/17(木) 20:39:35.05ID:rEGDS72/0 何てエラーが出る?
107デフォルトの名無しさん (ワッチョイ 335f-VJpi)
2022/02/17(木) 20:43:06.54ID:od7uaDdG0 なんのエラーか分からんから手っ取り早いのは
先にWorksheets("シート名").activateしておけば
先にWorksheets("シート名").activateしておけば
108デフォルトの名無しさん (スップ Sd52-Qiwb)
2022/02/17(木) 20:52:49.10ID:oZh0IyxXd 曖昧な情報ですみませんでした。
WorkSheets(”シート名”).Range(cell(変数,1),cell(変数,20)).Value =配列
だと
実行時エラー'1004':
アプリケーション定義またはオブジェクト定義のエラーです。
となります。
Worksheets("シート名").activate
Range以下同じ
だと正常に動作します。
数百のデータ取得転記なので、可能であればシート移動は減らしたいと考えています。
WorkSheets(”シート名”).Range(cell(変数,1),cell(変数,20)).Value =配列
だと
実行時エラー'1004':
アプリケーション定義またはオブジェクト定義のエラーです。
となります。
Worksheets("シート名").activate
Range以下同じ
だと正常に動作します。
数百のデータ取得転記なので、可能であればシート移動は減らしたいと考えています。
109デフォルトの名無しさん (テテンテンテン MMde-FK1Z)
2022/02/17(木) 20:56:15.04ID:4vzfA+8GM Rangeの後のCellsにもシート指定が必要
110デフォルトの名無しさん (ワッチョイ 9242-YeJ5)
2022/02/17(木) 21:03:41.49ID:lNAQUSmM0 それ案外忘れやすいよな
111デフォルトの名無しさん (ワッチョイ 1201-iAv0)
2022/02/17(木) 21:06:37.67ID:Lj9EVaDX0112デフォルトの名無しさん (ワッチョイ 6368-B80Q)
2022/02/17(木) 21:19:48.40ID:lbVsnXnA0113デフォルトの名無しさん (スップ Sd52-Qiwb)
2022/02/17(木) 21:56:36.84ID:bEhlAQ9Hd114デフォルトの名無しさん (ワッチョイ 1201-iAv0)
2022/02/17(木) 22:14:24.38ID:Lj9EVaDX0 >>113
シートへの読み書きはかなり遅いからデータが大量にある時は配列に一気に読出して配列上で処理して一気にシートに書出すのは定番の高速化手法
シートへの読み書きはかなり遅いからデータが大量にある時は配列に一気に読出して配列上で処理して一気にシートに書出すのは定番の高速化手法
115デフォルトの名無しさん (スップ Sd52-Qiwb)
2022/02/17(木) 22:24:21.56ID:bEhlAQ9Hd 1人30項目×数百人だったので、まずは1人分を配列に入れて転記するようにしただけで数倍早くなりました。
このようなケースだと、さらに30×人数全てまとめて配列に入れて転記するものなんでしょうか?
このようなケースだと、さらに30×人数全てまとめて配列に入れて転記するものなんでしょうか?
116デフォルトの名無しさん (ワッチョイ 1201-iAv0)
2022/02/17(木) 22:29:04.03ID:Lj9EVaDX0 ケースバイケースだけど30列×数百行程度なら全体を一気に読み書きしてもいいと思う
117デフォルトの名無しさん (ワッチョイ 6368-B80Q)
2022/02/17(木) 23:14:43.35ID:lbVsnXnA0 >>115
数倍といっても、1秒が0.1秒になっても、実質何も変わってないのと同じ
そのためになれない配列を使ってコードを書く時間が5分長くなるようなら、そんな最適化はせんでいいってことになる
30分が3分になるなら、やったほうが良いだろう
要は総合的に見て、全体的な時間が減るなら最適化したほうが良い
死ぬほど暇なら、暇なときにどんどんやっておけば、忙しくなったときに余裕が出る
数倍といっても、1秒が0.1秒になっても、実質何も変わってないのと同じ
そのためになれない配列を使ってコードを書く時間が5分長くなるようなら、そんな最適化はせんでいいってことになる
30分が3分になるなら、やったほうが良いだろう
要は総合的に見て、全体的な時間が減るなら最適化したほうが良い
死ぬほど暇なら、暇なときにどんどんやっておけば、忙しくなったときに余裕が出る
118デフォルトの名無しさん (ワッチョイ 9242-YeJ5)
2022/02/18(金) 00:01:31.11ID:kIxJDUOP0 1秒と0.1秒の体感時間の差は意外とでかいぞ
短くできるならしたほうがいいわ
短くできるならしたほうがいいわ
119デフォルトの名無しさん (ワッチョイ ebce-B80Q)
2022/02/18(金) 03:42:39.82ID:E/I/ujWM0 >>115
プログラムを大幅に書き換えなくても、再描画と再計算とイベントを止めるだけで速くなることもあるんでいっぺん試してみ
プログラムを大幅に書き換えなくても、再描画と再計算とイベントを止めるだけで速くなることもあるんでいっぺん試してみ
120デフォルトの名無しさん (ワッチョイ 124f-OO4B)
2022/02/18(金) 06:33:19.64ID:uvosISh90 >>104
Withはそういうもんだと割り切るしかない。
VB系以外で見たことないからVB系特有なもんだと思う。
昔、旧VB6のスレでWith NewってやるとC#のUsingみたいにEnd Withで勝手にObjectの開放してくれるので、
そういう使い方をするコードが書かれたとき賛否両論だったのを覚えてる。
Withも、もしVB系の言語が将来生き続けることになっていたら負の遺産みたいに言われていたかも知れないけど、
Visual Studio CoreでマイクロソフトもVB.Netはもう発展させないことを明言しているから
そっちの開発している人は適当なところで別言語やるようになるだろうね。
Withはそういうもんだと割り切るしかない。
VB系以外で見たことないからVB系特有なもんだと思う。
昔、旧VB6のスレでWith NewってやるとC#のUsingみたいにEnd Withで勝手にObjectの開放してくれるので、
そういう使い方をするコードが書かれたとき賛否両論だったのを覚えてる。
Withも、もしVB系の言語が将来生き続けることになっていたら負の遺産みたいに言われていたかも知れないけど、
Visual Studio CoreでマイクロソフトもVB.Netはもう発展させないことを明言しているから
そっちの開発している人は適当なところで別言語やるようになるだろうね。
121デフォルトの名無しさん (ワッチョイ 6368-B80Q)
2022/02/18(金) 08:19:03.35ID:v2iRKHri0122デフォルトの名無しさん (ワッチョイ 1201-iAv0)
2022/02/18(金) 09:18:41.84ID:k4bZDTy80123デフォルトの名無しさん (スッップ Sd32-OUII)
2022/02/18(金) 15:45:36.50ID:Sc8nOBZDd >>99>>100
すっきりしました。ありがとうございました
すっきりしました。ありがとうございました
124デフォルトの名無しさん (ラクッペペ MMde-HxmU)
2022/02/18(金) 16:04:07.81ID:+5TWcNgJM C++系でクラスメンバーに _ 付けたりするよりは . 強制のVB のがわかりやすい
125デフォルトの名無しさん (ワッチョイ 47da-gYPf)
2022/02/18(金) 16:12:26.42ID:mnS8isni0 VBとVBAを混同してしまう
126デフォルトの名無しさん (ワッチョイ 1610-0LUY)
2022/02/18(金) 17:12:34.16ID:9dJRbxWs0 VB更新止めるならビジュべー7作ったらVBAからの乗り換えで大人気になるかも
本職の人は発狂しそうだけど
本職の人は発狂しそうだけど
127デフォルトの名無しさん (ワッチョイ 6368-B80Q)
2022/02/18(金) 17:40:13.70ID:v2iRKHri0 ならんよ
128デフォルトの名無しさん (ワッチョイ 1610-0LUY)
2022/02/18(金) 18:34:46.08ID:9dJRbxWs0 >>127
4文字で撃破 笑
4文字で撃破 笑
129デフォルトの名無しさん (ワッチョイ 335f-VJpi)
2022/02/18(金) 21:31:15.96ID:/GJYcSex0 イベントでメッセージボックス起動するだけじゃ
進む戻るの履歴は消えないんだな
良かった良かった
進む戻るの履歴は消えないんだな
良かった良かった
130デフォルトの名無しさん (テテンテンテン MM7f-x/Go)
2022/02/19(土) 00:17:14.09ID:mx39evoXM RelaxTools AddinからTortoiseSVNに繋げる方法が
バージョン管理の手法としての最善策ですか?
バージョン管理の手法としての最善策ですか?
131デフォルトの名無しさん (ワッチョイ 7368-9yE7)
2022/02/19(土) 01:15:29.08ID:1GYJVttN0 そういやvbaでバージョン管理っていい方法あるのかな
ドロップボックスに丸投げしてるからよく知らないや
ドロップボックスに丸投げしてるからよく知らないや
132デフォルトの名無しさん (ワッチョイ 732f-mvUX)
2022/02/19(土) 02:51:28.34ID:evvGZLor0 昔はOFFICE DEVELOPERとかいうのがあって、たしかVSSだったと思うがバージョン管理できた
ACCESSとか2007ぐらいまではTFSにつなぐアドインもあった
この辺の仕組みって、基本的にはソース管理プロパイダで差し替えできるようになってたはずなんだがなぁ
あんまり情報もないんだよな
ACCESSとか2007ぐらいまではTFSにつなぐアドインもあった
この辺の仕組みって、基本的にはソース管理プロパイダで差し替えできるようになってたはずなんだがなぁ
あんまり情報もないんだよな
133デフォルトの名無しさん (ワッチョイ cfda-+91V)
2022/02/19(土) 05:57:33.40ID:GK0tMJPG0 Microsoft製バージョン管理システム
VSS(ソース管理はVSS)
↓
TFS(ソース管理はTFSまたはVSS)
↓
AzureDevOps(ソース管理はGitまたはTFS)
VSS(ソース管理はVSS)
↓
TFS(ソース管理はTFSまたはVSS)
↓
AzureDevOps(ソース管理はGitまたはTFS)
134デフォルトの名無しさん (ラクッペペ MM7f-xerH)
2022/02/19(土) 07:12:39.37ID:sDFYuIo+M TFS(TeamFoundationServer)は製品名
ソース管理はTFVC(TeamFoundationVersionControl)
ソース管理はTFVC(TeamFoundationVersionControl)
135デフォルトの名無しさん (ワッチョイ cfda-+91V)
2022/02/19(土) 07:37:52.31ID:GK0tMJPG0 >>134
間違った理解で適当なこと書き込んですまなかった
確かにTFVCと呼ぶ方が正しいな
https://i.imgur.com/m6FXGvC.png
https://docs.microsoft.com/ja-jp/azure/devops/repos/tfvc/comparison-git-tfvc?view=azure-devops-2020
間違った理解で適当なこと書き込んですまなかった
確かにTFVCと呼ぶ方が正しいな
https://i.imgur.com/m6FXGvC.png
https://docs.microsoft.com/ja-jp/azure/devops/repos/tfvc/comparison-git-tfvc?view=azure-devops-2020
136デフォルトの名無しさん (ワッチョイ 8363-W9j5)
2022/02/19(土) 09:03:14.67ID:5qKPM2PV0 SVNで間に合ってる
137デフォルトの名無しさん (ブーイモ MM7f-D0iV)
2022/02/19(土) 09:23:14.09ID:VKF1jqEnM 時々のマクロファイル保存で間に合ってる
138デフォルトの名無しさん (ワッチョイ 7368-9yE7)
2022/02/19(土) 10:11:08.00ID:1GYJVttN0 vbaでそんな巨大プロジェクト作らないから、ドロップボックスでいいかな・・・
139デフォルトの名無しさん (ワッチョイ cf10-E9Rx)
2022/02/19(土) 10:47:12.21ID:1AFURcFW0 マイクロソフト製品なんだから
One Driveでいいだろ
One Driveでいいだろ
140デフォルトの名無しさん (ワッチョイ cfda-mA98)
2022/02/19(土) 11:07:16.61ID:gdvHyp150 ちゃんとやるのは最初だけ
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 高市首相の答弁書に「台湾有事答えない」と明記 存立危機発言当時 [蚤の市★]
- 東京都「都民の税金1.5兆円が国に奪われている」「全国に分配されている」に地方民ブチギレ [Hitzeschleier★]
- 「もうキモくてキモくて…」29歳女性が語る“おぢアタック”の実態。「俺ならイケるかも」年下女性を狙う勘違い中年男性に共通点が★4 [Hitzeschleier★]
- JA全農が「新おこめ券」…来年9月末の有効期限を新設、必要経費のみ上乗せ [蚤の市★]
- 【おこめ券】鈴木憲和農相 小泉前農相の備蓄米放出を“反省”「備蓄の円滑な運営を図ってまいります」 [Hitzeschleier★]
- 1人3千円の食品高騰対策、何に使える? あいまいなまま衆院通過 [蚤の市★]
- 【悲報】麻生太郎さん、オムツをしていた。晋さん…ここにいたんだね… [731544683]
- 【悲報】新米、全く売れなくて倉庫が満杯になってしまうwwwwwwwwwwwwwwwwwwww [802034645]
- トランプ、G7に代わるcore 5を発表 [805596214]
- はいはい
- 【実況】博衣こよりのえちえちダンガンロンパ2🧪★5
- 【悲報】日本共産党、ツイッター速報にブチギレ法的措置WWWWWWWWWWWWWWWWWWWWWWWWWWWW [935793931]
