!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:I0u44nFvd6デフォルトの名無しさん (スップ Sdbf-zD41)
2022/02/10(木) 15:50:58.22ID:M1zV1i+Cd >>4
これだとフォルダの日時も対象になってしまわない?
これだとフォルダの日時も対象になってしまわない?
7デフォルトの名無しさん (ワッチョイ bfe6-AiWJ)
2022/02/10(木) 16:04:20.32ID:nfSYASk10 >>4
ありがとうございます。
powershellだとそんなに短くなるんですね・・・
ただ私を含め、powershellに詳しい人が周りにいないのと、
私が死んでもメンテナンスできる状態にしておきたいので、今回はVBAで作成をしたいです。
(でもそのコードは保存させていただきます。)
勉強になります。ありがとうございます。
ありがとうございます。
powershellだとそんなに短くなるんですね・・・
ただ私を含め、powershellに詳しい人が周りにいないのと、
私が死んでもメンテナンスできる状態にしておきたいので、今回はVBAで作成をしたいです。
(でもそのコードは保存させていただきます。)
勉強になります。ありがとうございます。
8デフォルトの名無しさん (ワッチョイ bfe6-AiWJ)
2022/02/10(木) 16:09:01.41ID:nfSYASk109デフォルトの名無しさん (ワッチョイ bfe6-AiWJ)
2022/02/10(木) 16:10:41.24ID:nfSYASk1010デフォルトの名無しさん (ワッチョイ ff2c-2zGl)
2022/02/10(木) 16:25:27.01ID:J5PrGMnU0 Ruby のglob では、** で、フォルダ以下を再帰的に処理する
# 絶対パスのディレクトリ名の後ろに、* を付けること!
# . で始まる、隠し directory, file を除く
glob_pattern = "C:/Users/Owner/Documents/test/**/*"
puts Dir.glob( glob_pattern )
.select { |full_path| File.file?( full_path ) } # ファイルのみ
.max_by { |full_path| File.mtime( full_path ) } # 更新時刻が最も最近のファイルパス
# 絶対パスのディレクトリ名の後ろに、* を付けること!
# . で始まる、隠し directory, file を除く
glob_pattern = "C:/Users/Owner/Documents/test/**/*"
puts Dir.glob( glob_pattern )
.select { |full_path| File.file?( full_path ) } # ファイルのみ
.max_by { |full_path| File.mtime( full_path ) } # 更新時刻が最も最近のファイルパス
11デフォルトの名無しさん (ワッチョイ ff63-foD4)
2022/02/10(木) 16:53:52.57ID:jnAzFgRy0 前スレで「VBA内で今まで使えてたKillが急に使えなくなった」野郎ですが、システムの復元で先月に戻したら直った。
たぶんOfficeの最新のアップデートがクソ。
VBA内で作って使い終わったADODBを削除する部分。
10年くらい使い続けてるし、connectionとかちゃんとcloseしてるのに。
たぶんOfficeの最新のアップデートがクソ。
VBA内で作って使い終わったADODBを削除する部分。
10年くらい使い続けてるし、connectionとかちゃんとcloseしてるのに。
12デフォルトの名無しさん (ワッチョイ 372f-2zGl)
2022/02/10(木) 18:14:16.34ID:lf0ILJru0 >>7
そもそもVBAで作る意味がわからんが
自分で作れもしないものを俺が死んでもメンテしろとか...
なにをやるかだけをドキュメントなりコメントなりで残せよ
あとの人はそれ見て自分でできるやり方でやればいいだけ
そもそもVBAで作る意味がわからんが
自分で作れもしないものを俺が死んでもメンテしろとか...
なにをやるかだけをドキュメントなりコメントなりで残せよ
あとの人はそれ見て自分でできるやり方でやればいいだけ
13デフォルトの名無しさん (ワッチョイ bfe6-AiWJ)
2022/02/10(木) 18:19:09.16ID:nfSYASk10 >>10
Rubyでもそんなに短くなるんですね。
もしかしてVBAが一番大変なんじゃないかと思えてきます。
すみません。Rubyは私が全く使えないため、今回は見送らせていただきます。
コードまで記載していただいたのに申し訳ないです。
ありがとうございました。
Rubyでもそんなに短くなるんですね。
もしかしてVBAが一番大変なんじゃないかと思えてきます。
すみません。Rubyは私が全く使えないため、今回は見送らせていただきます。
コードまで記載していただいたのに申し訳ないです。
ありがとうございました。
14デフォルトの名無しさん (ワッチョイ 372f-2zGl)
2022/02/10(木) 18:22:09.15ID:lf0ILJru0 ふと思ったが、ファイル列挙を再帰で処理するときになにも考えずに
うっかり上位フォルダへのショートカットとか処理したらループするのな
素のVBAでやるならDir関数だろうけど、これショートカットとかどう処理するんだろ
うっかり上位フォルダへのショートカットとか処理したらループするのな
素のVBAでやるならDir関数だろうけど、これショートカットとかどう処理するんだろ
15デフォルトの名無しさん (ワッチョイ bfe6-AiWJ)
2022/02/10(木) 18:23:45.71ID:nfSYASk10 >>12
VBA(エクセル)であれば多少使える人が周りにいるため、メンテナンスが可能だと思いました。
自動化した処理はコード内のコメントでも残しますし、ドキュメントにも記載します。
>>自分で作れもしないものを俺が死んでもメンテしろとか...
これは確かに・・・自分で作れていない以上ぐうの音も出ません。
VBA(エクセル)であれば多少使える人が周りにいるため、メンテナンスが可能だと思いました。
自動化した処理はコード内のコメントでも残しますし、ドキュメントにも記載します。
>>自分で作れもしないものを俺が死んでもメンテしろとか...
これは確かに・・・自分で作れていない以上ぐうの音も出ません。
16デフォルトの名無しさん (ワッチョイ 1763-I0BZ)
2022/02/10(木) 18:27:43.99ID:Cq74F0AH0 こんな簡単な処理もできないのにVBAならできると言うか
17デフォルトの名無しさん (スップ Sdbf-zD41)
2022/02/10(木) 18:56:39.50ID:M1zV1i+Cd18デフォルトの名無しさん (ワッチョイ ffda-wadS)
2022/02/10(木) 19:15:17.51ID:tWYuVSEa0 >>3
Power Query で親のフォルダ指定すると、サブフォルダも含めた
ファイル名、拡張子、アクセス日時、更新日時、作成日時、パス
の一覧を作ってくれる。
作成日時か更新日時で降順して1から始まるインデックス付けて、
BinaryとかRecordの余計な列は削除して、クエリーテーブルとしてsheetに読込ませたら、
あとは外のセルからINDEX・MATCH関数で
「インデックスの列が1」の行のパス&"\"&ファイル名を表示させる。
VBAはこのbookを開いたときにクエリー更新させるとか、
ボタンでクエリー更新させるとか。
Power Query内にセルに指定したフォルダパスを取り込むときは
そのセルを名前定義しておいて、
let
定義名 = Excel.CurrentWorkbook(){[Name="定義名"]}[Content]{0}[Column1],
ソース = Folder.Files(定義名)
in
ソース
これが元ネタ
https://stackoverflow.com/questions/49281763/powerquery-use-a-cell-values-in-a-url
Power Query で親のフォルダ指定すると、サブフォルダも含めた
ファイル名、拡張子、アクセス日時、更新日時、作成日時、パス
の一覧を作ってくれる。
作成日時か更新日時で降順して1から始まるインデックス付けて、
BinaryとかRecordの余計な列は削除して、クエリーテーブルとしてsheetに読込ませたら、
あとは外のセルからINDEX・MATCH関数で
「インデックスの列が1」の行のパス&"\"&ファイル名を表示させる。
VBAはこのbookを開いたときにクエリー更新させるとか、
ボタンでクエリー更新させるとか。
Power Query内にセルに指定したフォルダパスを取り込むときは
そのセルを名前定義しておいて、
let
定義名 = Excel.CurrentWorkbook(){[Name="定義名"]}[Content]{0}[Column1],
ソース = Folder.Files(定義名)
in
ソース
これが元ネタ
https://stackoverflow.com/questions/49281763/powerquery-use-a-cell-values-in-a-url
19デフォルトの名無しさん (ワッチョイ ffda-zD41)
2022/02/10(木) 19:24:51.89ID:hZgX7eKD02010 (ワッチョイ ff2c-2zGl)
2022/02/11(金) 13:48:46.29ID:901NTZe+0 処理が複雑になるにつれて、より本格的なプログラミング言語に変えていかないといけない。
これを適材適所・目的別最適化と言う
小中高大学みたいなもの。
VBAが小学生の宿題なら、Rubyは大学生の宿題
VBA > PowerShell, Bash > Ruby
これが分からない会社は、すべてのシステムをVBAで作って、
色々なモジュールを共通化して、
会社の資産にしてみたいに発展させていって、最後には破綻する
維持・保守コストが膨大になって、おまけに低品質で、誰も修正できなくなる
システムみたいなものは修正・保守必須で本格的なものだから、
Rubyみたいなプロ用の言語じゃないとダメ
ちょっとした秀丸マクロとか、そういうのはダメ。
適材適所・目的別最適化みたいな事を分かっていない会社が多すぎる
これを適材適所・目的別最適化と言う
小中高大学みたいなもの。
VBAが小学生の宿題なら、Rubyは大学生の宿題
VBA > PowerShell, Bash > Ruby
これが分からない会社は、すべてのシステムをVBAで作って、
色々なモジュールを共通化して、
会社の資産にしてみたいに発展させていって、最後には破綻する
維持・保守コストが膨大になって、おまけに低品質で、誰も修正できなくなる
システムみたいなものは修正・保守必須で本格的なものだから、
Rubyみたいなプロ用の言語じゃないとダメ
ちょっとした秀丸マクロとか、そういうのはダメ。
適材適所・目的別最適化みたいな事を分かっていない会社が多すぎる
21デフォルトの名無しさん (スプッッ Sddf-wadS)
2022/02/11(金) 13:55:56.83ID:ZK+oZ0Mxd 不等号が逆な時点で説得力ゼロ
矢印のつもりなら、さらに頭が悪いとしか思わん
矢印のつもりなら、さらに頭が悪いとしか思わん
22デフォルトの名無しさん (ワッチョイ 9fda-zD41)
2022/02/11(金) 13:58:55.07ID:z1hZYaqu0 www
23デフォルトの名無しさん (ワッチョイ bfda-HF6V)
2022/02/11(金) 14:17:29.48ID:LtQN2K+P0 だってルビキチだもん
24デフォルトの名無しさん (ワッチョイ 1763-I0BZ)
2022/02/11(金) 14:33:23.73ID:uXHB2mBC0 無意味な喩えする奴頭悪いから嫌いなんだよね
25デフォルトの名無しさん (ワッチョイ b75f-6F+g)
2022/02/11(金) 14:47:23.80ID:4kl07p+n0 >>21
ほんとに逆なのお?
ほんとに逆なのお?
26デフォルトの名無しさん (スップ Sdbf-zD41)
2022/02/11(金) 14:48:15.45ID:AGDJERK+d そもそも自社開発するようなスキルを持ち合わせてるならそんな三択じゃない他のを選ぶだろうにw
RubyRuby言ってる人はそれしかできないのかね?w
RubyRuby言ってる人はそれしかできないのかね?w
27デフォルトの名無しさん (ブーイモ MM1b-wadS)
2022/02/11(金) 15:17:29.69ID:dkQ+i8pZM VBAもRubyもPwerShellもVSCodeも、片手間のちょっとしたツールを作るには便利だけど、がっつりアプリの開発には使えんわ
みんな同レベル
あとは適切に使い分けできるかという、使用者の頭脳レベルの問題
みんな同レベル
あとは適切に使い分けできるかという、使用者の頭脳レベルの問題
28デフォルトの名無しさん (スッップ Sdbf-HF6V)
2022/02/11(金) 15:23:45.94ID:+e4i5uLyd なんでVSCode出てきた
29デフォルトの名無しさん (ワッチョイ 1734-Iep5)
2022/02/11(金) 15:53:04.17ID:EfY4NLKC0 まだRubyキチガイ居るのか…
何年他の言語スレに粘着してるんだ
何年他の言語スレに粘着してるんだ
30デフォルトの名無しさん (ワッチョイ 9f01-gyD4)
2022/02/11(金) 16:07:37.46ID:1hOwJ8um0 お前らみたいに相手する奴居るからだろ…
31デフォルトの名無しさん (スップ Sdbf-zD41)
2022/02/11(金) 16:11:41.66ID:AGDJERK+d >>28
知ってるの並べただけでしょ
知ってるの並べただけでしょ
32デフォルトの名無しさん (ワッチョイ 9f7c-V4UE)
2022/02/11(金) 16:37:33.68ID:EYT5V/+O0 >>20
突っ走り過ぎ
何もできないとVBA出来るは違う
ないとあるはかなり違うんだよ
シロウトが自由にPCを動かせるようになるVBAには価値があると思うよ
VBAで不足と感じだしたら他言語化を模索するようになるんじゃないかな?
自分がそうだし
突っ走り過ぎ
何もできないとVBA出来るは違う
ないとあるはかなり違うんだよ
シロウトが自由にPCを動かせるようになるVBAには価値があると思うよ
VBAで不足と感じだしたら他言語化を模索するようになるんじゃないかな?
自分がそうだし
33デフォルトの名無しさん (ワッチョイ d78e-hIaH)
2022/02/11(金) 19:56:50.35ID:/HLRVZix0 オワコンRuby
34デフォルトの名無しさん (ワッチョイ 9f42-w6GL)
2022/02/11(金) 23:02:03.22ID:AZTvSWvg0 いつ始まってたの
35デフォルトの名無しさん (ワッチョイ 1610-OO4B)
2022/02/12(土) 10:46:52.90ID:TWE+IO3i0 C#、Python、Javascript、Rust辺りはともかく
Rubyはないわー
Rubyはないわー
36デフォルトの名無しさん (ワッチョイ 1f8e-ebC9)
2022/02/12(土) 12:29:03.80ID:zSrTwFpP0 Perlと同じく消えるRuby
37デフォルトの名無しさん (ワッチョイ 6368-B80Q)
2022/02/12(土) 18:19:04.47ID:rN9arOXg0 >>34
10-15年ぐらい前は結構盛り上がってた気がする
PHPの代わりにサーバーはruby、pythonの代わりにrubyで計算、ゲームは・・・苦手だった気がする
色々できて便利な言語という触れ込みだった
で、総意は「ロクなライブラリもないし、器用貧乏な言語に変える必要がない」だった
10-15年ぐらい前は結構盛り上がってた気がする
PHPの代わりにサーバーはruby、pythonの代わりにrubyで計算、ゲームは・・・苦手だった気がする
色々できて便利な言語という触れ込みだった
で、総意は「ロクなライブラリもないし、器用貧乏な言語に変える必要がない」だった
38デフォルトの名無しさん (ワッチョイ 6368-B80Q)
2022/02/12(土) 18:19:52.19ID:rN9arOXg0 しかし最後にこんなキチガイに言語を潰されるのは、さすがにちょっと不憫かなーとは思う
39デフォルトの名無しさん (ワッチョイ d6da-rCQD)
2022/02/12(土) 18:47:01.50ID:J0OyCaZ00 使いたければ黙って使っていればいいのにここに書くことじゃない
よそでやれ
よそでやれ
40デフォルトの名無しさん (ワッチョイ afd0-1uE6)
2022/02/12(土) 23:09:11.76ID:8DXM8GTy0 すみません、スレみて質問していいのかと思いましたが、相談に乗ってください。
予定の10日前になったらセルの色変え、
(予定日前まで色変えで)予定日、予定日以降は色無しとしたいのですが
どうすればいいでしょうか?
よろしくお願いします
予定の10日前になったらセルの色変え、
(予定日前まで色変えで)予定日、予定日以降は色無しとしたいのですが
どうすればいいでしょうか?
よろしくお願いします
41デフォルトの名無しさん (アウアウウー 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 =配列
で値を入れてから元シートに戻る処理をしてるんですが、他にいい方法ありませんか?
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 「もうキモくてキモくて…」29歳女性が語る“おぢアタック”の実態。「俺ならイケるかも」年下女性を狙う勘違い中年男性に共通点が★4 [Hitzeschleier★]
- ミス・ユニバース フィンランド代表の「つり目」写真が波紋… 本人釈明も批判やまず 協会謝罪「徹底的に検証」へ [冬月記者★]
- 【おこめ券】鈴木憲和農相 小泉前農相の備蓄米放出を“反省”「備蓄の円滑な運営を図ってまいります」 [Hitzeschleier★]
- 自民・麻生太郎副総裁 石破政権の1年は「どよーん」 高市政権発足で「何となく明るくなった」「世の中のことが決まり動いている」★2 [Hitzeschleier★]
- 1人3千円の食品高騰対策、何に使える? あいまいなまま衆院通過 [蚤の市★]
- 【27歳会社員】「自慰行為に使うために」コインランドリーの乾燥機から24歳女性の下着など計11点(時価8万2080円相当)盗んだ疑い [nita★]
- トランプ、G7に代わるcore 5を発表 [805596214]
- 【悲報】新米、全く売れなくて倉庫が満杯になってしまうwwwwwwwwwwwwwwwwwwww [802034645]
- 皇室に娘を嫁がせて外戚として権勢を振るいたい。皇室の権威を傘に着て悪逆の限りを尽くすのだ。可能か?
- 【悲報】日本共産党、ツイッター速報にブチギレ法的措置WWWWWWWWWWWWWWWWWWWWWWWWWWWW [935793931]
- 木曜日のんなっしょい❗(・o・🍬)仕放題スレ🏡
- grok制限されたからチャッピーとかジェミニ使ってるけどこいつらおもんなさすぎ
