◎正当な理由による書き込みの削除について:      生島英之とみられる方へ:

Excel VBA 質問スレ Part75 ->画像>10枚


動画、画像抽出 || この掲示板へ 類似スレ 掲示板一覧 人気スレ 動画人気順

このスレへの固定リンク: http://5chb.net/r/tech/1644384272/
ヒント:5chスレのurlに http://xxxx.5chb.net/xxxx のようにbを入れるだけでここでスレ保存、閲覧できます。

1デフォルトの名無しさん (スフッ Sd7f-wadS)2022/02/09(水) 14:24:32.62ID:I0u44nFvd
!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512
↑2行に減ってるけど、同じ内容を3行に増やして貼り付けるナリ

ExcelのVBAに関する質問スレナリ
コード書き込みや作成依頼もOKナリ

※前スレ
Excel VBA 質問スレ Part74
http://2chb.net/r/tech/1639932059/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured

2デフォルトの名無しさん (アウアウウー Sa9b-4tZW)2022/02/10(木) 10:32:50.12ID:NHAjzQuTa
>>1

3デフォルトの名無しさん (ワッチョイ bfe6-AiWJ)2022/02/10(木) 15:15:12.01ID:nfSYASk10
時々お世話になっています。

方針を確認したいです。
やりたい事は、特定のフォルダを指定して、その中にあるフォルダ・ファイルの中から最新の更新日を取得する
です。

今考えているやり方は、
@特定のフォルダを取得する(エクセル内にパスの指定あり)
Aサブフォルダを含むすべてのフォルダパスを取得
Bサブフォルダを含むすべてのファイルパスを取得
C取得したフォルダパスとファイルパスの最新更新日時を取得
Dその中から一番最新の日時を取得
です。

他に簡単な手順ってあるでしょうか?
ヒントでもいただけるとうれしいです。
よろしくお願いします。

4デフォルトの名無しさん (ワッチョイ 17b0-5flp)2022/02/10(木) 15:37:12.23ID:x6E7pXvm0
powershellならこれだけなんだが

ls -recurse|sort-object -property LastWriteTime -Descending|select-object -First 1|%{$_.LastWriteTime}

VBAからpowershell呼び出せば?

5デフォルトの名無しさん (スップ Sdbf-zD41)2022/02/10(木) 15:44:08.91ID:M1zV1i+Cd
>>3
一般的だと思うけどフォルダ内の検索はそれ自身を一つの関数Aにしてその関数の中で関数Aを呼び出すと思う
関数は例えばこんな感じ Sub ProcA(ByVal pFolder As String, ByRef pDate as Date)
中はこんな感じどっちが先でも構わない
pFolder内のフォルダ一覧を取得してフォルダ分ProcAを呼ぶ
pFolder内のファイル一覧を取得して最新日時をpDateに戻す

なので手順は
@特定のフォルダを取得する(エクセル内にパスの指定あり)
AProcAを呼ぶ(これでサブフォルダ内も含めて全部検索してくれる)
BpDateが最新日時

6デフォルトの名無しさん (スップ 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で作成をしたいです。
(でもそのコードは保存させていただきます。)

勉強になります。ありがとうございます。

8デフォルトの名無しさん (ワッチョイ bfe6-AiWJ)2022/02/10(木) 16:09:01.41ID:nfSYASk10
>>5
ありがとうございます。
処理時間が短くなって良さそうですね!
こちらの方向で考えてみます!

ありがとうございます!

9デフォルトの名無しさん (ワッチョイ bfe6-AiWJ)2022/02/10(木) 16:10:41.24ID:nfSYASk10
>>6
今回はフォルダの更新日時も取得したかったので、
powershellが使えればこのコードが有効だったと思います。

私の勉強不足で残念ですが・・・

10デフォルトの名無しさん (ワッチョイ 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 ) } # 更新時刻が最も最近のファイルパス

11デフォルトの名無しさん (ワッチョイ ff63-foD4)2022/02/10(木) 16:53:52.57ID:jnAzFgRy0
前スレで「VBA内で今まで使えてたKillが急に使えなくなった」野郎ですが、システムの復元で先月に戻したら直った。
たぶんOfficeの最新のアップデートがクソ。

VBA内で作って使い終わったADODBを削除する部分。
10年くらい使い続けてるし、connectionとかちゃんとcloseしてるのに。

12デフォルトの名無しさん (ワッチョイ 372f-2zGl)2022/02/10(木) 18:14:16.34ID:lf0ILJru0
>>7
そもそもVBAで作る意味がわからんが
自分で作れもしないものを俺が死んでもメンテしろとか...


なにをやるかだけをドキュメントなりコメントなりで残せよ
あとの人はそれ見て自分でできるやり方でやればいいだけ

13デフォルトの名無しさん (ワッチョイ bfe6-AiWJ)2022/02/10(木) 18:19:09.16ID:nfSYASk10
>>10
Rubyでもそんなに短くなるんですね。
もしかしてVBAが一番大変なんじゃないかと思えてきます。

すみません。Rubyは私が全く使えないため、今回は見送らせていただきます。
コードまで記載していただいたのに申し訳ないです。

ありがとうございました。

14デフォルトの名無しさん (ワッチョイ 372f-2zGl)2022/02/10(木) 18:22:09.15ID:lf0ILJru0
ふと思ったが、ファイル列挙を再帰で処理するときになにも考えずに
うっかり上位フォルダへのショートカットとか処理したらループするのな

素のVBAでやるならDir関数だろうけど、これショートカットとかどう処理するんだろ

15デフォルトの名無しさん (ワッチョイ bfe6-AiWJ)2022/02/10(木) 18:23:45.71ID:nfSYASk10
>>12
VBA(エクセル)であれば多少使える人が周りにいるため、メンテナンスが可能だと思いました。
自動化した処理はコード内のコメントでも残しますし、ドキュメントにも記載します。

>>自分で作れもしないものを俺が死んでもメンテしろとか...
 これは確かに・・・自分で作れていない以上ぐうの音も出ません。

16デフォルトの名無しさん (ワッチョイ 1763-I0BZ)2022/02/10(木) 18:27:43.99ID:Cq74F0AH0
こんな簡単な処理もできないのにVBAならできると言うか

17デフォルトの名無しさん (スップ Sdbf-zD41)2022/02/10(木) 18:56:39.50ID:M1zV1i+Cd
>>14
VBA内のコードだけならそうだろうけど今風だとFileSystemObject使うかもね
自分はフォルダ検索とか嫌って程使うツールを作ってるから検索用のライブラリずっと使いまわしてるわ

>>15
VBAなんて所詮俺ツールぐらいの気持ちで考えて自分が死んだら使わないでねぐらいでいいと思うけどね

18デフォルトの名無しさん (ワッチョイ 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

19デフォルトの名無しさん (ワッチョイ ffda-zD41)2022/02/10(木) 19:24:51.89ID:hZgX7eKD0
>>15
たとえばエクスプローラー開いて
フォルダ指定してから右上の枠に 更新日時:>2022/1/1
って入力すると2022/1/1 以降のファイル一覧とか見れるよ

2010 (ワッチョイ ff2c-2zGl)2022/02/11(金) 13:48:46.29ID:901NTZe+0
処理が複雑になるにつれて、より本格的なプログラミング言語に変えていかないといけない。
これを適材適所・目的別最適化と言う

小中高大学みたいなもの。
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

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で不足と感じだしたら他言語化を模索するようになるんじゃないかな?
自分がそうだし

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はないわー

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で計算、ゲームは・・・苦手だった気がする
色々できて便利な言語という触れ込みだった

で、総意は「ロクなライブラリもないし、器用貧乏な言語に変える必要がない」だった

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日前になったらセルの色変え、
(予定日前まで色変えで)予定日、予定日以降は色無しとしたいのですが
どうすればいいでしょうか?

よろしくお願いします

41デフォルトの名無しさん (アウアウウー Sac3-jv/I)2022/02/12(土) 23:11:31.31ID:IAH9YCSPa
条件付き書式が一番いい気がする

42デフォルトの名無しさん (ワッチョイ 632f-TxqZ)2022/02/12(土) 23:18:33.99ID:FD8BwyjM0
>>40
条件付き書式でいいんじゃね
VBAいらんだろ。どっかエクセルの使い方のスレで聞け

43デフォルトの名無しさん (アウアウウー 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形式になってるので注意

45デフォルトの名無しさん (ワッチョイ afd0-1uE6)2022/02/13(日) 07:35:55.02ID:P798zPao0
>>44
Excelの総合で質問もして教えて頂けました。
解説ありがとうございます。
勉強になりました。

46デフォルトの名無しさん (スップ Sd52-Qiwb)2022/02/14(月) 12:57:56.87ID:wZ5OVHUFd
この画像みたいなExcelファイル(1枚目)をデータベース化する為に、情報を抽出して横並びに整理したい(2枚目)のですが、アドバイスいただきたいです。
行数や列数がそれぞれ異なり、罫線の枠内でも、変に結合や分割されており、関数のみでは対応しきれませんでした。
※元々がPDFでしか入力できないデータの為、それをExcel変換しているせいで構成が崩れています。

罫線の枠構成は崩れていない為、マクロで処理するとしたら、各セルの罫線を判定して、囲われた範囲の値を順番に取得していくしかないのかな?と思っています。
枠内の左上隅(左と上に罫線があるセル)から、右下隅(右と下に罫線があるセル)までの値を取得して連結、次の枠へ進む、という処理しか思いつかないのですが、他にいい案はあるでしょうか?
Excel VBA 質問スレ Part75 ->画像>10枚
Excel VBA 質問スレ Part75 ->画像>10枚

47デフォルトの名無しさん (ワッチョイ 16da-B80Q)2022/02/14(月) 13:06:54.20ID:O4GcyUrK0
>>46
Power Queryでも、このセル結合だらけ(結合されてたりされてなかったり・・・)の
データクレンジングは厳しいかも知れない。
ステップが100超えるかも・・・

48デフォルトの名無しさん (ワッチョイ 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列の水平の罫線の位置だけ検出すればいい
あとはその範囲を左上から舐めて、空白セルを無視しながらデータを取り出すだけ
結合は全部解除した方がロジックは簡単になると思う
そんなに難しくない

テスト用のデータを用意するのが面倒だから、そのサンプルをエクセル形式かスプレッドシートにでも入れて公開してよ

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
・・・
みたいにすれば、まぁなんとか行けるかなと思う
今のままじゃ無理だ

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初心者の為、合理的な処理かは分かりませんが、今はこの矢印の順でセルを移動しながら、罫線の判定と値の取得する流れで考えています。
Excel VBA 質問スレ Part75 ->画像>10枚

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の原稿があって、その枠の中にテキスト貼り付ける方式なのか?

56デフォルトの名無しさん (ワッチョイ ebce-B80Q)2022/02/14(月) 14:53:57.21ID:33Tyeh9C0
>>50
この画像の範囲にはセル内改行はないぞ
よく見ると背景と同じ色の白い罫線が隠れてる

57デフォルトの名無しさん (ワッチョイ ebce-B80Q)2022/02/14(月) 14:55:08.92ID:33Tyeh9C0
>>55
最新のPDFには入力フォームを重ねる機能があるんよ

58デフォルトの名無しさん (ワッチョイ ebce-B80Q)2022/02/14(月) 14:59:16.98ID:33Tyeh9C0
>>54
基本それでいいと思うよ
いちいち判定せずとも空白セルも含めてどんどん文字列を足してくだけで目的のデータが自動的に残る

59デフォルトの名無しさん (ワッチョイ 6368-B80Q)2022/02/14(月) 15:02:51.71ID:XTh2f6qa0
>>56
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

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

64デフォルトの名無しさん (ワッチョイ 16da-B80Q)2022/02/14(月) 16:25:13.19ID:O4GcyUrK0
>>63
>>>>60
>>下だけでいい

2個分入っている「例 参考3・4」と
1個分だけの「例 参考5」を
どう見分けるか、嫌らしいなぁ・・・
と思って。

65デフォルトの名無しさん (スップ Sd52-Qiwb)2022/02/14(月) 16:50:56.63ID:wZ5OVHUFd
>>55
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

共有の仕方合ってるか不安ですが。。

67デフォルトの名無しさん (ワッチョイ 1f8e-nldK)2022/02/14(月) 17:08:51.74ID:xN/gSLrN0
>>65
そのサービスを提供している会社に相談しろよ
馬鹿なの?

68デフォルトの名無しさん (スップ Sd32-rCQD)2022/02/14(月) 17:56:38.45ID:qxU338Vtd
画像見た感じだとそうめんどくさい話ではないかね
住所欄と連絡先欄の住所と電話番号をどういうルールで分解するかがわかれば変換は余裕かと
ただこの手の内容までこのスレで答えるのはいいように使われている感があっていやだなぁw

69デフォルトの名無しさん (ワッチョイ 6368-B80Q)2022/02/14(月) 18:16:24.84ID:XTh2f6qa0
住所の下に下線ない事に気づき、無事死亡

70デフォルトの名無しさん (ワッチョイ 16da-B80Q)2022/02/14(月) 18:16:43.53ID:O4GcyUrK0
>>66
DL出来たよ。
Power Queryでどこまで出来るか
やってみる。

71デフォルトの名無しさん (ワッチョイ 6368-B80Q)2022/02/14(月) 18:19:08.21ID:XTh2f6qa0
更にこれ氏名でセルわかれてるんかーい

72デフォルトの名無しさん (スップ Sd52-Qiwb)2022/02/14(月) 18:55:37.73ID:wZ5OVHUFd
>>55
混乱させてすみません、PDFでしか「入手」できないデータの誤りでした。
サービス元からは、それ以外の形式での出力はできないとの回答の為、このExcelファイルをなんとか処理して使わざるを得ない状態です。

73デフォルトの名無しさん (ワッチョイ cbcc-piVT)2022/02/14(月) 18:58:42.50ID:/RDvxF8W0
指定した日付から、その日付が1年間の第何週かを求めそれを引数にして、その週の月曜日と金曜日の日付を返す式を教えてください。

i = WeekNum(指定日)
date1 = 開始日(月曜日)
date2 = 終了日(金曜日)

74デフォルトの名無しさん (スップ Sd32-rCQD)2022/02/14(月) 19:33:13.83ID:qxU338Vtd
>>73
・週の初めは何曜日基準?日曜日?月曜日?別の曜日?
・それを引数のそれって何?開始日(月曜日)の関数にiは使ってないのでは?指定日ではだめなの?
・仮に日曜日基準とした場合、2022年1月1日(土)の月曜日は2021年12月26日?それとも別の日?

75デフォルトの名無しさん (スップ Sd32-rCQD)2022/02/14(月) 19:34:32.34ID:qxU338Vtd
>>73
そもそもVBAの回答が知りたいの?それとも関数使ってなの?関数ならスレチですよ

76デフォルトの名無しさん (ワッチョイ 6368-B80Q)2022/02/14(月) 19:35:02.10ID:XTh2f6qa0
>>46
2時間半、思ったより早くできたけど、まぁキツイな
変数名も終わってる

https://jsfiddle.net/5vuatdrq/1/

77デフォルトの名無しさん (ワッチョイ 6368-B80Q)2022/02/14(月) 19:36:56.50ID:XTh2f6qa0
別に関数でもいいんじゃないの?
俺もコードの中にworksheetfunction使ってるし、気にしたらキリないわ

78デフォルトの名無しさん (ワッチョイ 6368-B80Q)2022/02/14(月) 19:41:40.69ID:XTh2f6qa0
>>76に追記

「シート1」というシートに元データ
「転記先」というシートを作っておいて下さい

79デフォルトの名無しさん (ワッチョイ 16da-B80Q)2022/02/14(月) 19:45:27.38ID:O4GcyUrK0
>>66
ひとまず
元ファイルのセル結合を解除しないまま、
別ファイルからPower Queryでsheetをそのまま読込んで、
不要な行/列、空白、改行コードを削除したり
列を合体したりして、ある程度整理してみた。

Excel VBA 質問スレ Part75 ->画像>10枚
Excel VBA 質問スレ Part75 ->画像>10枚

やっぱ、どの行までが1個体のデータなのか判別がつかないので、
ここから先は難しい。
それが特定できればsheet上のテーブルの右側に列足して
M言語でなく、使い慣れたExcelのIF関数や文字列関数使って
拾っていくことも出来そうなんだけど・・・

先にVBAで罫線判別して各行にフラグでも立てることが必要っぽい。

>>63 氏に期待

80デフォルトの名無しさん (ワッチョイ 16da-B80Q)2022/02/14(月) 19:46:56.80ID:O4GcyUrK0
あ、
>>63 氏、出来たのね。

81デフォルトの名無しさん (ラクッペペ MMde-HxmU)2022/02/14(月) 19:47:44.47ID:TbpPq1WHM
pdfからの変換で毎回セル位置が変わるのか?
変わらないなら一回参照シート作るだけじゃね?

82デフォルトの名無しさん (ワッチョイ 6368-B80Q)2022/02/14(月) 19:53:08.06ID:XTh2f6qa0
>>73
関数の方が早い
Excel VBA 質問スレ Part75 ->画像>10枚

vbaに落とし込むなら、worksheetfunctionを使ってくれ

83デフォルトの名無しさん (アウアウウー Sac3-jv/I)2022/02/14(月) 19:54:22.25ID:/oecZUEba
>>73
DatePart("ww", Date, vbMonday, vbFirstFullWeek)

あとはその日が何曜日が調べて
プラスマイナスすれば月金も出るよ

84デフォルトの名無しさん (ワッチョイ 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:H1nNFxJWd
>>79
powerqueryである程度処理は可能なんですね。ありがとうございます。
実際は1000件以上のデータで項目も更に多く、行も列もバラバラなので手作業はやはり限界がありそうです。

87デフォルトの名無しさん (スップ Sd52-Qiwb)2022/02/15(火) 08:49:44.20ID:H1nNFxJWd
>>76
本当にありがとうございます。
サンプルの方では問題なく処理されるのを確認できました。
自身が書いたらもっと長々しくぐちゃぐちゃになっていたと思うので、すっきりまとまっていて素晴らしいと思います。

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列に入力がある全ての行か?それとも一番最初のものだけか?またはカーソルがある位置だけを対象にするのか?
もう少し細かく仕様を書いてくれた方が導きやすいぞ

91デフォルトの名無しさん (ワッチョイ ebce-B80Q)2022/02/15(火) 17:39:49.61ID:zxh7HcNj0
>>89
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

93デフォルトの名無しさん (ワッチョイ b707-75kg)2022/02/16(水) 09:01:55.23ID:r3Bj6a+b0
>>90
確かにそうですね 別ファイルにC列にデータがある行のみをエクスポートするようなものを作ろうとしていたので
C列にデータがあるかの判断→あればコピー→エクスポート先との差分のみを貼り付け
としようとしています
差分の貼り付けは参考になりそうなコードがあったのでそれと組み合わせて考えようと思っていました

>>91
ありがとうございます、シンプルで応用が利きそうで助かります

>>92
その発想はありませんでした、ありがとうございます

94デフォルトの名無しさん (ワッチョイ 0b30-v0o9)2022/02/16(水) 21:42:26.46ID:jzL/oN3O0
選択した範囲のセルから、「セルの色」と「文字」で絞った数を調べたいのですが、どのように書けば宜しいでしょうか?
(色に関しては、指定したセルの色を参照したいです。)

例: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

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
こんな感じか

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

99デフォルトの名無しさん (ワッチョイ 1201-iAv0)2022/02/17(木) 15:49:10.52ID:Lj9EVaDX0
>>98
> ひょっとしてwithでくくるときに一時的に作られる変数にでもいれているのでしょうか?
まあそう言うこと
RegExp とかでも使える

100デフォルトの名無しさん (ワッチョイ ebce-B80Q)2022/02/17(木) 16:14:35.03ID:8LWMZH0T0
>>98
どんなオブジェクトもwithの一時変数に入れられるよ
ほかによく使われるのはブラウザコントロールとか

101デフォルトの名無しさん (ワッチョイ 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 と入れてもエラー
どこに格納されているんだろう

102デフォルトの名無しさん (ワッチョイ ebce-B80Q)2022/02/17(木) 17:02:27.81ID:8LWMZH0T0
>>101
VBだとGetTypeで取得できるんだけど、VBAにはないね

103デフォルトの名無しさん (ワッチョイ 632f-bORD)2022/02/17(木) 19:16:24.68ID:uTvXTdo20
>>101
内部的に一時変数に保存されているが、ユーザからは直接参照できない
ウォッチ式はどうもWithのスコープ外の扱いっぽいな

>>102
暗黙的に参照されているものが自分自身を返すようなメンバを持ってないかぎり
Withで暗黙的に参照してる変数そのものを確認する方法はなかったはず
おそらくVBにもなかったはずだけど

個人的には参照できないWithはつかわないのが作法じゃないかと
俺はWith New否定派だ

104デフォルトの名無しさん (ワッチョイ 6368-B80Q)2022/02/17(木) 20:01:56.20ID:lbVsnXnA0
>>102>>103
ありがとう
with、どうにもモヤッとした感じが取れないな

Meかparentでメモリ追っかけられそうな気もしたけど、うーん難しそう

105デフォルトの名無しさん (スップ Sd52-Qiwb)2022/02/17(木) 20:37:40.67ID:oZh0IyxXd
配列に値を保存しておいて、別シートの特定セル範囲に値を入れたいんだけど、
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しておけば

108デフォルトの名無しさん (スップ Sd52-Qiwb)2022/02/17(木) 20:52:49.10ID:oZh0IyxXd
曖昧な情報ですみませんでした。

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:Lj9EVaDX0
>>108
>>109 の言う通りで
With WorkSheets(”シート名”)
.Range(.Cells(変数, 1), .Cells(変数, 20)).Value =配列
End With
が定番

112デフォルトの名無しさん (ワッチョイ 6368-B80Q)2022/02/17(木) 21:19:48.40ID:lbVsnXnA0
>>111
setの方が好きだわ

set ws = WorkSheets(”シート名”)
ws.Range(ws.Cells(変数, 1), ws.Cells(変数, 20)).Value =配列

113デフォルトの名無しさん (スップ Sd52-Qiwb)2022/02/17(木) 21:56:36.84ID:bEhlAQ9Hd
>>109-112
正しくそれが原因でした。
ありがとうございました。

先日>>46で質問させて頂いた者ですが、教えていただいたものをベースにかなり形になってきました。
数値を1個ずつ転記するのと、配列に入れて転記するのって処理時間にかなり差があるんですね。

114デフォルトの名無しさん (ワッチョイ 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×人数全てまとめて配列に入れて転記するものなんでしょうか?

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分になるなら、やったほうが良いだろう

要は総合的に見て、全体的な時間が減るなら最適化したほうが良い
死ぬほど暇なら、暇なときにどんどんやっておけば、忙しくなったときに余裕が出る

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はもう発展させないことを明言しているから
そっちの開発している人は適当なところで別言語やるようになるだろうね。

121デフォルトの名無しさん (ワッチョイ 6368-B80Q)2022/02/18(金) 08:19:03.35ID:v2iRKHri0
>>120
>そういう使い方をするコードが書かれたとき賛否両論
そうなるだろうね
割り切って使う人には便利かもしれないけど、捉えきれない部分があるのはかなり気持ち悪い

ありがとう、スッキリした

122デフォルトの名無しさん (ワッチョイ 1201-iAv0)2022/02/18(金) 09:18:41.84ID:k4bZDTy80
>>120
> VB系以外で見たことないからVB系特有なもんだと思う。
Pascal からの輸入だろ

123デフォルトの名無しさん (スッップ 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文字で撃破 笑

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につなぐアドインもあった

この辺の仕組みって、基本的にはソース管理プロパイダで差し替えできるようになってたはずなんだがなぁ
あんまり情報もないんだよな

133デフォルトの名無しさん (ワッチョイ cfda-+91V)2022/02/19(土) 05:57:33.40ID:GK0tMJPG0
Microsoft製バージョン管理システム
VSS(ソース管理はVSS)

TFS(ソース管理はTFSまたはVSS)

AzureDevOps(ソース管理はGitまたはTFS)

134デフォルトの名無しさん (ラクッペペ MM7f-xerH)2022/02/19(土) 07:12:39.37ID:sDFYuIo+M
TFS(TeamFoundationServer)は製品名
ソース管理はTFVC(TeamFoundationVersionControl)

135デフォルトの名無しさん (ワッチョイ cfda-+91V)2022/02/19(土) 07:37:52.31ID:GK0tMJPG0
>>134
間違った理解で適当なこと書き込んですまなかった
確かにTFVCと呼ぶ方が正しいな
Excel VBA 質問スレ Part75 ->画像>10枚

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でいいだろ

140デフォルトの名無しさん (ワッチョイ cfda-mA98)2022/02/19(土) 11:07:16.61ID:gdvHyp150
ちゃんとやるのは最初だけ

141デフォルトの名無しさん (ワッチョイ 7368-9yE7)2022/02/19(土) 11:11:58.36ID:1GYJVttN0
One Driveはバグが多すぎるから絶対に無理w

142デフォルトの名無しさん (ワッチョイ 035f-790q)2022/02/19(土) 11:33:30.74ID:7kiLsofr0
バージョン管理なんてエクセルファイル名にver1.0とか含めておけばいいんじゃないの?

143デフォルトの名無しさん (ワッチョイ 7368-9yE7)2022/02/19(土) 11:37:15.90ID:1GYJVttN0
売上報告_最新_最終版コピー(2)_old決定版.xlsm

144デフォルトの名無しさん (ワッチョイ ff01-bFjU)2022/02/19(土) 11:54:53.81ID:x/upE6G90
>>141
どんなバグがあるの?

145デフォルトの名無しさん (ワッチョイ 7368-9yE7)2022/02/19(土) 12:05:18.04ID:1GYJVttN0
>>144
復元できないという致命傷
onedrive バグ などで検索すると出てくるよ
先週ぐらいもあった

146デフォルトの名無しさん (ワッチョイ a323-x/Go)2022/02/19(土) 14:20:31.32ID:4xnJtOkW0
回答を待たずに見切り発車でTortoiseSVNを導入しようとして
サーバーエラーの解決ができずに数時間のたうち回っている

バージョン管理なんておいらには高等技術過ぎたかもしれねぇ…

147デフォルトの名無しさん (ワッチョイ ff01-bFjU)2022/02/19(土) 14:35:17.05ID:x/upE6G90
>>145
同期関連か、まあそれを信用するのは時期尚早やな

148デフォルトの名無しさん (ワッチョイ 7368-9yE7)2022/02/19(土) 15:26:08.63ID:1GYJVttN0
>>146
TortoiseSVNは割とガチ環境。導入のハードル高いからマジでやめたほうがいいぞ
ドロップボックスか、googleドライブに同期させておくぐらいがちょうど良い

バージョン管理って大層なものを導入しなくても、
コードの中に「xxまで実装した。残りyy」みたいに書いておけば
それなりに使いやすいバックアップになる

どうせVBAなんてブランチ切るとかそんなことしないから一本道でヘーキヘーキ

149デフォルトの名無しさん (ワッチョイ 7368-9yE7)2022/02/19(土) 15:26:52.07ID:1GYJVttN0
なお俺もTortoiseSVN挑戦して挫折した一人
かなり癖あった気がする

150デフォルトの名無しさん (ワッチョイ 732f-hSEA)2022/02/19(土) 15:41:34.88ID:evvGZLor0
まあいまどきならgitが楽でいいんじゃね
サーバ側でなにもしないならファイル共有さえすればバージョン管理サーバとして使える
VBAはエクスポートしてバージョン管理だな。そこまでする必要があるものは少ないけど

>>142
エクセル丸ごとで管理するだけならな
ソースの修正箇所の履歴とか差分とかとるときにバージョン管理が必要なんだよ

151デフォルトの名無しさん (ワッチョイ ff01-bFjU)2022/02/19(土) 16:13:02.46ID:x/upE6G90
>>146
自分一人で使うならサーバーなんて要らんよ
リポジトリをローカルファイルシステムに作ればいいだけ
外部参照とかの一部の機能が使えなくなるけど
具体的な操作は流石にスレチだから聞きたいならこちらで

バージョン管理システムについて語るスレ10
http://2chb.net/r/tech/1393147031/

152デフォルトの名無しさん (ワッチョイ 8363-W9j5)2022/02/19(土) 16:22:07.18ID:5qKPM2PV0
TortoiseSVNはクライアントだよぉ
サーバーわかんないならgit hub使えば良いんでない?

153デフォルトの名無しさん (ワッチョイ 6fda-ZHzO)2022/02/19(土) 16:40:13.61ID:71RYd9t40
gitとsvnはなんか概念違うから最初にsvnから入るとgitが分かりにくくなるって聞くな

154デフォルトの名無しさん (ドコグロ MMff-bFjU)2022/02/19(土) 16:57:02.53ID:V3h8uUoVM
概念というかポリシーが違うから馴染めないというのはあると思う
Linux みたいな巨大なアプリでなきゃ SVN の速度でもたいして困らんし

155デフォルトの名無しさん (ワッチョイ c3da-le4M)2022/02/19(土) 17:18:28.82ID:PJU9YEhh0
Excel板覗いてきたけど、関数を入力するときに=+って入力している人がいた。それはマニアな人だよね?

156デフォルトの名無しさん (ワッチョイ 7368-9yE7)2022/02/19(土) 17:37:22.02ID:1GYJVttN0
>>155
それ俺なんだけど、
・「=」の売り間違えが嫌い
・「+」は絶対に打ち間違えない
ので、
数式は
+A1-B1
と入力してる
excelの仕様上、+で始まっている数式には更に=が追加される模様

157デフォルトの名無しさん (ワッチョイ ffda-mA98)2022/02/19(土) 17:56:27.92ID:sU8KQZKj0
世の中に絶対など無い・ある どっち?

158デフォルトの名無しさん (ワッチョイ 7310-WrmN)2022/02/19(土) 17:59:47.25ID:8XK4gjnm0
ない

159デフォルトの名無しさん (ワッチョイ c3da-le4M)2022/02/19(土) 18:11:04.25ID:PJU9YEhh0
たまに+で入力している人見るから。ちょっと思い出して

160ハノン ◆QZaw55cn4c (ワッチョイ 6f66-864q)2022/02/19(土) 18:48:24.57ID:wlwakG6U0
>>148
私はドロップボックスに RCS のレポジトリを置いていたのですがユーザー認証が厳しくなったときにレポジトリ全部がおじゃんになってしまいました、これは痛い、痛すぎる…
もう懲りてバージョン管理システムを使わなくなってしまった…

そろそろ git をはじめようかと思案中です

161デフォルトの名無しさん (ワッチョイ a301-Xmkg)2022/02/19(土) 18:58:23.53ID:lALNUlVh0
絶対など絶対にない!

162デフォルトの名無しさん (ワッチョイ cfda-fLiC)2022/02/19(土) 21:45:46.48ID:gdvHyp150
絶体絶命でも死なない

163デフォルトの名無しさん (ワッチョイ ff7c-MlWD)2022/02/21(月) 01:45:01.56ID:OrVm1a1F0
絶対領域ならある

164デフォルトの名無しさん (ワッチョイ 13ce-9yE7)2022/02/21(月) 02:37:10.15ID:i+Nk/hZw0
絶対可憐

165デフォルトの名無しさん (ワッチョイ cfda-le4M)2022/02/21(月) 02:52:14.84ID:OIlsWcuQ0
絶対音感の自分が通りますよ

166デフォルトの名無しさん (ワッチョイ a301-Xmkg)2022/02/21(月) 06:15:17.92ID:9b7axwXE0
絶対運命黙示録

167デフォルトの名無しさん (ワッチョイ ff42-eCV9)2022/02/21(月) 08:43:58.11ID:uSPFSI8K0
絶体絶命

168デフォルトの名無しさん (ワッチョイ 6f14-F7/t)2022/02/21(月) 09:01:35.23ID:n81sYxUz0
絶対なんて言葉、VBA上では絶対値くらいちゃうの?
複数Shape並べる時とかの座標を絶対値にするかLoop中の計算追い寸にするかいつも迷う

169デフォルトの名無しさん (ワッチョイ 13ce-9yE7)2022/02/21(月) 10:12:19.05ID:i+Nk/hZw0
絶対参照⇔相対参照ってのもあるぞ
現実に「絶対」はないとされてるけど、コンピューターの世界では割とよく出てくる言葉の一つ

170デフォルトの名無しさん (ブーイモ MMa7-MlWD)2022/02/21(月) 13:18:00.34ID:zel+kn1IM
>>169
その絶対は意味合いが違うと思うぞ

171デフォルトの名無しさん (ラクッペペ MM7f-bsm9)2022/02/21(月) 13:31:12.92ID:2STuN7VvM
絶対零度を超えると時間が巻き戻るからな

172デフォルトの名無しさん (ブーイモ MMff-9yE7)2022/02/21(月) 13:49:17.52ID:V2QoZaN/M
絶対値、絶対音感、絶対領域は形容詞
絶対参照、絶体絶命は形容動詞

区別する方法は、後半が動詞になるかどうか、つまり「参照する」「絶命する」はあるけど「音感する」「領域する」とは言わない

173デフォルトの名無しさん (アウアウウー Sae7-gFzl)2022/02/21(月) 14:04:18.08ID:4epPW0O6a
>>169
言葉や概念としての「絶対」があるかといえばある

174デフォルトの名無しさん (ブーイモ MMa7-MlWD)2022/02/21(月) 14:40:29.16ID:zel+kn1IM
>>172
なぜ有能がここに迷い込んできたのか

175デフォルトの名無しさん (ワッチョイ 7368-9yE7)2022/02/21(月) 14:41:00.68ID:IVAAebPQ0
>>172
すごい(語彙)

176デフォルトの名無しさん (ワッチョイ cf56-W5tZ)2022/02/21(月) 16:13:18.73ID:kWGdoALl0
全部名詞やん

177デフォルトの名無しさん (ワッチョイ cfda-mA98)2022/02/21(月) 20:31:11.80ID:8rVxF2Gw0
絶対に負けられない戦いに負けたらどうなる?

178デフォルトの名無しさん (ワッチョイ a301-Xmkg)2022/02/22(火) 00:40:55.58ID:OzXpMxHE0
それが今の日本です

179デフォルトの名無しさん (ワッチョイ cfda-le4M)2022/02/22(火) 16:24:40.19ID:0TsP51M+0
Excelコンテストで勝つ!

180デフォルトの名無しさん (ワッチョイ ffda-mA98)2022/02/22(火) 16:51:35.21ID:9f6q+kU90
なんぞ? と思ったら一昔以上も前のぢゃねーか!
https://xtech.nikkei.com/it/pc/article/knowhow/20090109/1011183/
こういうことやり続けてきたから間違ったExcelerが繁殖しちまったんぢゃねーのか?
なあにが 営業成績表彰システム ぱ か ぱ か だっつーの  遊んでんぢゃねぇよ!

181デフォルトの名無しさん (ワッチョイ bf3d-89vH)2022/02/24(木) 14:20:26.28ID:PuX8FwU40
同じpcに開かれている別のエクセルのプロシージャを実行することてできる?

182デフォルトの名無しさん (ラクッペペ MM7f-bsm9)2022/02/24(木) 14:23:40.68ID:pVKiKajRM
同じプロセスなら普通にできるだろ

183デフォルトの名無しさん (アウアウアー Saff-pEKv)2022/02/24(木) 18:15:16.40ID:iej9QTZYa
普通のExcelの質問していいですか?

184デフォルトの名無しさん (ワッチョイ 7368-9yE7)2022/02/24(木) 18:16:27.79ID:ozL7dLyM0
どうぞ

185デフォルトの名無しさん (アウアウアー Saff-pEKv)2022/02/24(木) 18:33:03.41ID:iej9QTZYa
ありがとうございます!
日付だけを縦にずっと入力していくのですが、じょうごマークで絞り込みを開くと
「2022年」「1月 2月…」とあり、「1月」の「+」マークを開くと更に日付が「1日 2日 3日…」と
入力したものがでてきますよね。その「+」マークを開かなくても2022年と同じ左詰めで「1月3日」というのがあって
1/3だけ半角で何度入れ直しても「2022年」「1月」の中に入らないんです。
しかも「1月」の「+」マークを開いても「3日」があり、絞り込むと左詰めの「1月3日」と同じ項目が出てきます。
意味が分からなかったらすみません。分かる方いらっしゃったら教えてください。

186デフォルトの名無しさん (ワッチョイ 7368-9yE7)2022/02/24(木) 18:48:46.05ID:ozL7dLyM0
>>185
文字列になっている
・他の日付セルをコピーして、その左詰め1/3に貼り付け
・もう一度2022/1/3と打ち直す
それでもう一度試すとどうなるか

187デフォルトの名無しさん (ワッチョイ cf8e-vY7U)2022/02/24(木) 20:31:45.10ID:exGzm3wL0
>>185
スレタイ読め
消えろ

188デフォルトの名無しさん (ワッチョイ ffda-mA98)2022/02/24(木) 20:51:03.24ID:N8+11+jZ0
うーわ! 余裕無えー よっぽどストレス溜まってんだなあ 追い詰められてんだろうなあ、社内で

189デフォルトの名無しさん (アウアウクー MM07-pEKv)2022/02/24(木) 21:02:21.44ID:K0Kp1JdiM
>>186
おおおー!文字列になってるんですね、なるほど!明日会社でやってみます!
ご親切に教えていただきありがとうございました。

このスレの方すみませんでした。ありがとうございましたm(_ _)m

190デフォルトの名無しさん (ワッチョイ ff7c-MlWD)2022/02/24(木) 21:22:25.12ID:OIkOwNi30
>>187
おまえなんか話題振れよ

191デフォルトの名無しさん (ブーイモ MMe7-9yE7)2022/02/24(木) 22:13:31.53ID:Nlim82gmM
さっき電車の中で向かいに若い女性の二人組が座っててさあ

192デフォルトの名無しさん (ワッチョイ 93da-XB9Q)2022/02/24(木) 23:52:39.32ID:CvXfU24U0
>>188
リアルすぎて草

193デフォルトの名無しさん (ワッチョイ cfda-le4M)2022/02/25(金) 03:22:55.08ID:hDgiDFze0
それで2人の会話を盗み聞きしたらさー
「職場にExcelマニアいるけどキッショいよねーwww」って言っていたよ〜

194デフォルトの名無しさん (バットンキン MM87-XB9Q)2022/02/25(金) 14:17:15.60ID:QcxlogpXM
そして、Excelマニアが退職したあと、Excelが壊れたとマニアに鬼電するまでがテンプレ

195デフォルトの名無しさん (ワッチョイ 9330-Xmkg)2022/02/25(金) 17:06:35.52ID:vXWN6Ngg0
Excelマニアってなんぞ

196デフォルトの名無しさん (ワッチョイ f3fd-giql)2022/02/25(金) 21:30:18.25ID:Wier9kYf0
関数式でif文書くだけでExcel詳しい人扱いされる国

197デフォルトの名無しさん (ワッチョイ ff89-iDSx)2022/02/25(金) 22:44:14.64ID:DoxyywZF0
シートに写真をおいて,そこにマクロを登録するのですが,
クリックしている間は処理を継続させるようにするにはどうしたら良いでしょうか?

198デフォルトの名無しさん (ワッチョイ ff02-9L8B)2022/02/25(金) 22:51:14.84ID:a/ksSb5+0
アルミ箔とリード線使うといいんじゃないか?

199デフォルトの名無しさん (ワッチョイ ffda-mA98)2022/02/25(金) 23:08:55.89ID:sygyzO5g0
イベント時で MouseOver とかか クリックし続けって無かったような MouseMove だっけ なんかその辺

200デフォルトの名無しさん (ワッチョイ ff4f-xxU1)2022/02/25(金) 23:33:04.48ID:O9IDWaUh0
Excelはマニアで済むけれど
Rubyなんて宗教だもんな

201デフォルトの名無しさん (アウアウウー Sa2f-B9J1)2022/02/26(土) 00:20:17.83ID:SY5M7+S/a
単なるあだ名だろw

202デフォルトの名無しさん (ワッチョイ 9eda-8W3/)2022/02/26(土) 03:20:22.62ID:T7kJgkW90
お前はカルメンか

203デフォルトの名無しさん (ワッチョイ 5f68-g6h8)2022/02/26(土) 07:13:12.65ID:S41FQOKr0
>>200
rubyが宗教って言われるのはrubyの製作者が熱心なクリスチャンだからだよ
まさかガチの狂信者が出てくるとは思わなかったが・・・w

204デフォルトの名無しさん (ワッチョイ ca89-ei6B)2022/02/26(土) 10:24:59.15ID:jtqt4mXJ0
>>199
ありがとうございます!

205デフォルトの名無しさん (ワッチョイ 9eda-A+PI)2022/02/26(土) 18:17:50.12ID:duMrqy+m0
Excelマニアとデータ分析マニアは違うみたいね

206デフォルトの名無しさん (ワッチョイ deda-g6h8)2022/02/26(土) 18:30:22.44ID:ZAxvZ+Mc0
>>205
「分析」が「統計」だとすると、
最終的に中間処理やアウトプットはExcelでなくてRなんかに行っちゃうかも。
Excelは統計関係の関数がアレだし。

207デフォルトの名無しさん (ワッチョイ 9eda-A+PI)2022/02/26(土) 19:53:05.77ID:duMrqy+m0
それでも昔からみんなExcelで無理してきた感

208デフォルトの名無しさん (アウアウウー Sa2f-B9J1)2022/02/26(土) 20:05:05.05ID:JqjjL3aFa
そこでPython

209デフォルトの名無しさん (ワッチョイ 9eda-y1EW)2022/02/26(土) 20:10:28.10ID:bGmpH7iw0
言語ならRやPython
パッケージならSPSSやSAS

210デフォルトの名無しさん (ワッチョイ 5f68-g6h8)2022/02/26(土) 20:19:26.32ID:S41FQOKr0
今思えば256列の60000行でよくやってこれたなと思う

211デフォルトの名無しさん (ワッチョイ ca01-Byf/)2022/02/26(土) 20:43:17.30ID:joT9B4PU0
今でも256列や60,000行を超える処理ならDBMSにするわ

212デフォルトの名無しさん (ワッチョイ deda-g6h8)2022/02/26(土) 21:51:16.00ID:ZAxvZ+Mc0
ワークシートに読込ませず、
Power Queryの「接続」(他所からクエリー)だけにしておくと
行数最大:1,048,576行
列数最大:16,384列
まで扱えるみたいだけど、なんか別の入れ物は必要・・・

Accessを入れ物にしようとすると
テーブルはフィールド数最大255、
行数はファイル全体で2GBまでということか。

213デフォルトの名無しさん (ワッチョイ ca4f-/r70)2022/02/26(土) 22:05:30.45ID:8Bo34rLG0
Pythonは途中から
数学で出てくる数式が分からないとキツくなるからちょっと保留してRust

214デフォルトの名無しさん (ワッチョイ 9eda-A+PI)2022/02/26(土) 22:10:39.56ID:duMrqy+m0
理系向きなのね?

215デフォルトの名無しさん (ワッチョイ deda-g6h8)2022/02/26(土) 22:16:53.94ID:ZAxvZ+Mc0
営業でも重回帰分析だの相関係数だのやってるところもあるから・・・
統計に使う数学は
もはや文系/理系に関係ない時代の模様

216デフォルトの名無しさん (ワッチョイ de8e-BsgF)2022/02/26(土) 22:23:53.97ID:XZXEjFci0
ID:ZAxvZ+Mc0

また知ったか馬鹿か

217デフォルトの名無しさん (ワッチョイ ca02-Y5l0)2022/02/26(土) 22:31:17.36ID:e5W/1zqv0
平均とグラフが作れればうちの所は余裕だ…

218デフォルトの名無しさん (ワッチョイ deda-g6h8)2022/02/26(土) 22:35:46.73ID:ZAxvZ+Mc0
>>216
知ったか?
そうかね?
デカいデータを四則演算だけで済ませられるのは
財務会計くらいやん。

219デフォルトの名無しさん (ワッチョイ 5f68-g6h8)2022/02/26(土) 23:12:20.49ID:S41FQOKr0
ダントツで扱い易いのは偏差値かな
相対的な指標としては良く使う

220デフォルトの名無しさん (ワッチョイ 5f68-g6h8)2022/02/26(土) 23:12:53.14ID:S41FQOKr0
って営業は作らんやろ
さすがにそこは営業事務が作ってあげると思う

221デフォルトの名無しさん (ワッチョイ de8e-BsgF)2022/02/26(土) 23:51:35.28ID:XZXEjFci0
>>218
言い訳すればするほど馬鹿さらけ出し

222デフォルトの名無しさん (ワッチョイ 6334-wQOV)2022/02/27(日) 00:09:08.97ID:XQfZTF0E0
うちの営業はExcelの使い方すら知らん
Excelなんて使わないよなー、Wordの方が使うわって会話聞いて戦慄した

223デフォルトの名無しさん (ワッチョイ 6bda-kkQl)2022/02/27(日) 03:40:18.89ID:vE3gjDOr0
Executeexcel4macroでwindowsapiを使う場合、
戻りがオブジェクトだったらどうするの?

224デフォルトの名無しさん (ワッチョイ 6f5f-f7LE)2022/02/27(日) 03:54:20.37ID:eD286Vb90
祈る

225デフォルトの名無しさん (ワッチョイ 5f68-g6h8)2022/02/27(日) 06:03:46.97ID:So6tXBwD0
>>223
どうするもこうするも、setして使うしかないじゃろ
以下だってsheets関数に引数1入れて、sheetオブジェクトが返ってきてるわけだし、同じです
Set ws = Sheets(1)

226デフォルトの名無しさん (ワッチョイ 4a7c-o0i4)2022/02/27(日) 06:07:27.75ID:a0+qdDh70
>>223
おまえが作ったコードは見たくないな

227デフォルトの名無しさん (ワッチョイ 5f68-g6h8)2022/02/27(日) 06:10:51.70ID:So6tXBwD0
>>226
まぁまぁ・・・
setは最初はとっつきにくいので・・・

228デフォルトの名無しさん (ワッチョイ 6bda-kkQl)2022/02/27(日) 07:03:43.76ID:vE3gjDOr0
そうじゃなくて2JNとか指定するやつ。
オブジェクトが無くて絶望的なんだけど。

229デフォルトの名無しさん (ワッチョイ 5f68-g6h8)2022/02/27(日) 07:22:28.14ID:So6tXBwD0
>>228
あぁHWNDとかの奴か。ごめん、これは昔諦めた。他の人お願い。
やりたいことを先に書けば、それっぽいコード書いてくれる人がでてくるかも

230デフォルトの名無しさん (テテンテンテン MM86-jC74)2022/02/27(日) 11:02:51.91ID:F9ScTckVM
すみません。 半日つぶしてもできない。ダメ男です
なんとか協力してもらえませんか?
単純に「特定文字」のある行を削除したい(その行をその下の行の二行削除したい)

'まず、獲得ポイントを削除
Dim row_po As Long

row_po = Range("A14:D150").Find("[ 獲得ポイント ]").Row

Range(Rows(row_po), Rows(row_po + 1)).Delete

この書き方でとりあえず消えるのですが、[ 獲得ポイント ]が無かった時にエラーになり止まってしまいます。
で、スルーしてほしいのですが、なにをやってもスルーしてもらえません。
なにもしないことがこんなに難しいとは思いませんでした。
ほっといて欲しいだけなのに

どうするとアホでもわかりますかね?

231デフォルトの名無しさん (テテンテンテン MM86-JUvV)2022/02/27(日) 11:09:42.41ID:amhd0I0YM
On Error Resume Nextを頭に入れるだけ

232デフォルトの名無しさん (ワッチョイ 5f68-g6h8)2022/02/27(日) 11:27:49.32ID:So6tXBwD0
>>230
Sub foo()
'先に見つけておく
Set p = Range("A14:D150").Find("獲得ポイント")
If Not (p Is Nothing) Then
'見つかったときの処理
row_po = p.Row
Rows(row_po & ":" & row_po + 1).Delete Shift:=xlUp
Else
'ここに見つからんかったときの処理
MsgBox "見つからんかった"
End If

End Sub

>231
それやると今度はrow_po でエラーが起きる可能性絶大

233デフォルトの名無しさん (テテンテンテン MM86-jC74)2022/02/27(日) 11:30:41.33ID:F9ScTckVM
>>231
おおお神よ
なぜあなたは神なのか
私は知恵熱っぽくまでなったのに
ちなみに検索するとエラーが全部キャンセルされるみたいなんですが、一応範囲を決めるとして

'まず、獲得ポイントを削除
On Error Resume Next
Dim row_po As Long

row_po = Range("A14:D150").Find("[ 獲得ポイント ]").Row

Range(Rows(row_po), Rows(row_po + 1)).Delete

On Error GoTo 0

で大丈夫な感じですか
動作はしました。(他の命令のエラーはちゃんと出るかな?と)

234デフォルトの名無しさん (テテンテンテン MM86-jC74)2022/02/27(日) 11:31:51.84ID:F9ScTckVM
>>232
あれ? まじですか
ちょっとわからない

ちなみにMsgBox を出したくないんです。
そのままスルーしてほしいのです

235デフォルトの名無しさん (ワッチョイ 5f68-g6h8)2022/02/27(日) 11:40:19.04ID:So6tXBwD0
>>233
onerrorはなるだけ使わない方が良いと思う。俺は使わずに書いてるよ
>>233でもいいけど、なるだけ少ない方が後々の変更が楽になる

Sub foo()
'先に見つけておく
Set p = Range("A14:D150").Find("獲得ポイント")
If Not (p Is Nothing) Then
'見つかったときの処理
row_po = p.Row
Rows(row_po & ":" & row_po + 1).Delete Shift:=xlUp
End If

End Sub

236デフォルトの名無しさん (テテンテンテン MM86-JUvV)2022/02/27(日) 11:42:39.74ID:amhd0I0YM
>>234
動いたんならまず一旦良しとしていいと思う
良いやり方が他にもあるから今後更に知識が付いたその時に改良していけば良いさ

237デフォルトの名無しさん (テテンテンテン MM86-jC74)2022/02/27(日) 11:53:19.82ID:F9ScTckVM
どうもありがとう

ただ、なんかわからないのだが、ほかの所がエラー吐いてしまっています。
ちょっと死にそうですが、悩んでみます。
多分、また来ますw

238デフォルトの名無しさん (ワッチョイ 5f68-g6h8)2022/02/27(日) 12:19:45.80ID:So6tXBwD0
どうぞ〜がんばって〜

239デフォルトの名無しさん (テテンテンテン MM86-jC74)2022/02/27(日) 14:32:58.22ID:F9ScTckVM
>>235
おま、これすごい

これにしてみたら他に出たエラーもピシっと消えた
On Error は動いたけど、イレギュラーなパターンだとなぜか他でエラーになった
これも試したらイレギュラーでもバッチり

つーか、俺が昨日の夜中からずううとやっていてもこんなの作れないありがとう
ホント君らすげーよ
これ作るのに寿命を迎えるレベルだわ

240デフォルトの名無しさん (ワッチョイ 5f68-g6h8)2022/02/27(日) 14:49:32.88ID:So6tXBwD0
>>239
笑った
影響が最小限になるように、ちゃんと書く方が楽なんだよ
onerrorとかですっ飛ばすと、後で余計に大変になる

241デフォルトの名無しさん (ワッチョイ 9eda-A+PI)2022/02/27(日) 17:57:55.85ID:JWEArlQD0
関数て約500種類弱あるけど、全部マスターする必要あるのかな??
知人が、「Excelができる人材の定義は関数を全部マスターしているヤツの事だ!」とか言い出しているから

242デフォルトの名無しさん (ワッチョイ cbda-ibFl)2022/02/27(日) 18:04:55.19ID:ZPGXXCGc0
VBAなら関数って自作が基本じゃないの?知らんけど

243デフォルトの名無しさん (ワッチョイ 5f68-g6h8)2022/02/27(日) 18:06:25.05ID:So6tXBwD0
>>241
>関数て約500種類弱あるけど、全部マスターする必要あるのかな??
ないよ

244デフォルトの名無しさん (ラクッペペ MM86-IC5F)2022/02/27(日) 18:28:40.28ID:CUu39Gd8M

245デフォルトの名無しさん (ワッチョイ 4a7c-o0i4)2022/02/27(日) 18:34:38.78ID:a0+qdDh70
そら作れば無限に出来るわいな

246デフォルトの名無しさん (ワッチョイ 9eda-8W3/)2022/02/27(日) 18:39:37.90ID:tDC5899T0
>>241
EXCELが(凄く)できる人かEXCELが(初心者だけど)できる人では違うんじゃね

247デフォルトの名無しさん (ワッチョイ db68-g6h8)2022/02/27(日) 18:47:42.24ID:NFpbXNxz0
>>241
その知人に認めたくない人がいてExcelできる人で通ってるけど
関数はマスターしてないから言ってるだけ説

248デフォルトの名無しさん (ワッチョイ 03b1-HUXN)2022/02/27(日) 18:50:42.59ID:AJPusFVK0
知ってる関数の数なんて誇る奴がいたら失笑もんだわ

249デフォルトの名無しさん (ワッチョイ 4a7c-o0i4)2022/02/27(日) 18:55:10.53ID:a0+qdDh70
標準の関数は少ないよな
俺はSUM CONCATENATE IFくらいしか覚えてない(ヘルプが必要)がその知人よりは多分出来ると思う

250デフォルトの名無しさん (ブーイモ MM86-jjUs)2022/02/27(日) 18:58:34.59ID:WwuIS/YcM
>>247
多分合ってるんだろうけどメッチャ理解し難いぐちゃぐちゃ関数式の様な日本語

251デフォルトの名無しさん (ワッチョイ de8e-BsgF)2022/02/27(日) 19:18:55.52ID:Jrkr8SKF0
>>241
その知人が馬鹿なだけだぞ

252デフォルトの名無しさん (ワッチョイ 5f68-g6h8)2022/02/27(日) 19:50:11.71ID:So6tXBwD0
知人ぼろかすで草

253デフォルトの名無しさん (スッップ Sdea-8W3/)2022/02/27(日) 19:54:03.00ID:XX45AiX5d
Excelにどんな機能がある=関数
ってしかいえない人の戯言では

254デフォルトの名無しさん (ワッチョイ 9e56-JP5l)2022/02/27(日) 20:40:55.89ID:D3HmGJ+n0
>>241

If 友人が「Excelができる人材の定義は関数を全部マスターしているヤツの事だ!」と言った then
  throw 友人 どこか
End If

以下正常処理

255デフォルトの名無しさん (ワッチョイ ca02-Y5l0)2022/02/27(日) 20:51:03.99ID:nGlHhzSe0
If 友人が Then
 Yo! Yo! チェケラYO!
 Go To YoYo
End If
YoYo:
Oh! Oh! 皆で楽しくチェケラYo!

256デフォルトの名無しさん (アウアウウー Sa2f-HUXN)2022/02/27(日) 21:11:45.66ID:JrRqc3Naa
If 友人.Count > 0 Then
のチェックをしておかないと例外が発生しかねんぞ

257デフォルトの名無しさん (ワッチョイ ca01-Byf/)2022/02/27(日) 21:18:59.32ID:f8g0XzTm0
>>254
そこはRaiseだろ

258デフォルトの名無しさん (ワッチョイ 5f68-g6h8)2022/02/27(日) 21:27:51.88ID:So6tXBwD0
?友人 is nothing
true

259デフォルトの名無しさん (ワッチョイ ca02-Y5l0)2022/02/27(日) 21:34:07.20ID:nGlHhzSe0
確認事項
・友人はいますか
・親友はいますか
・彼女はいますか
・配偶者はいますか
・家族はいますか
・老後の心配はありませんか

260デフォルトの名無しさん (ワッチョイ db68-g6h8)2022/02/27(日) 21:42:34.72ID:NFpbXNxz0
>>250
知人A, 知人が認めたくない人B
Bは皆にできる人って思われてる
Aはそれが気に食わない
だから関数をマスターしていない事を理由に言ってるだけ説

ごめん頼んだ

261デフォルトの名無しさん (ワッチョイ 635f-m/AS)2022/02/27(日) 21:46:20.69ID:pkdB1ort0
人生の大抵の困難はon erorr resume nextで解決可能である

262デフォルトの名無しさん (ワッチョイ ca02-Y5l0)2022/02/27(日) 21:52:09.54ID:nGlHhzSe0
On Error Shutdown And Reboot With Next Life

263デフォルトの名無しさん (テテンテンテン MM86-JUvV)2022/02/27(日) 22:13:39.17ID:amhd0I0YM
>>262

例外処理が抜けてる

If You = カーズ Then
Do Until 地球からの距離 = 0
地球からの距離 = 地球からの距離 + 1
Loop
Elseif You = ディアブロ Then
死ぬ前:
死にそう
Goto:死ぬ前
死んだ

End if

264デフォルトの名無しさん (ワッチョイ cada-8W3/)2022/02/27(日) 22:37:19.46ID:oWne56vR0
Dim tmp As String
tmp = "どんまい"
MsgBox tmp

265デフォルトの名無しさん (ワッチョイ 9eda-A+PI)2022/02/27(日) 23:16:15.15ID:JWEArlQD0
関数そこまで必要かな?
マクロできるなら全部マクロでやれば良いじゃんね

266デフォルトの名無しさん (ワッチョイ de8e-BsgF)2022/02/27(日) 23:42:12.81ID:Jrkr8SKF0
>>265
類は友を呼ぶ
お前もどうしようもない馬鹿だ

267デフォルトの名無しさん (ワッチョイ 9eda-A+PI)2022/02/28(月) 03:06:37.96ID:kykjWS4h0
いやだなぁ〜先輩、冗談すよ冗談
職場になんでもVBA、VBAといってマジでVBAで片付けていた偉い人がいたもんでw

268デフォルトの名無しさん (ワッチョイ db68-g6h8)2022/02/28(月) 08:14:19.86ID:9UyyIrQV0
知人が、偉い人が、全て他人の話
ほんとうは・・・?

269デフォルトの名無しさん (ワッチョイ 5f68-g6h8)2022/02/28(月) 08:33:28.33ID:o5ZgQ4pV0
>>268
これ以上はやめて差し上げろ

270デフォルトの名無しさん (テテンテンテン MM86-jC74)2022/02/28(月) 18:59:30.44ID:h1aqAX/2M
すいません。 こういうのはできますか?
セルの中に改行を見つけてから止める(修正)するVBAをつくりました。
改行が見つかったら、マクロを止めて手修正をして又マクロを走らせてを繰り返します。

ここで、問題なのが改行ならいいのですが、文字が多くて折り返しになっているのがたまにあります。
それも見つけたいのですが、知恵がみつかりません。
折り返し判定みたいなのはあまりなさそうです。 それとも行の高さを判定できるなら高さ22以上とか方法があるのかな?と

すいませんが、こんなのは?ってありましたら、お願いします。


Sub test()
Dim Ws As Worksheet
For Each Ws In Worksheets
Ws.Activate
Dim row_shou As Long
row_shou = Range("A14:D150").Find("小 計").Row
Dim Target As Range
Set Target = Range(Rows(14), Rows(row_shou - 1)).Find(What:=vbLf)
If Not Target Is Nothing Then
End
End If
Next Ws
End Sub

271デフォルトの名無しさん (ワッチョイ 5f68-g6h8)2022/02/28(月) 19:29:28.20ID:o5ZgQ4pV0
>>270
一行以外を全て検出したいなら、行の高さを検出するだけで終わると思う
改行は調べなくてもいいような

Sub foo()
最終行 = Cells(Rows.Count, 1).End(xlUp).Row
基本の行の高さ = Cells(1, 1).RowHeight
For i = 1 To 最終行

If Cells(i, 1).RowHeight <> 基本の行の高さ Then
MsgBox i & "行目の高さがおかしいので、終了します。修正お願いします"
Exit Sub
End If

Next
End Sub

272デフォルトの名無しさん (テテンテンテン MM86-jC74)2022/02/28(月) 20:20:02.79ID:h1aqAX/2M
>>271
あ、あ、ありがとう
正直解読するのに一時間くらいかかって自分のに書き直せました。
一応動いていけそうです! 高さチェックでいけますね
こんなチンケな感じになりました。
神々に感謝します。

Sub test()
Dim Ws As Worksheet
For Each Ws In Worksheets
Ws.Activate

Dim row_shou As Long
row_shou = Range("A14:D150").Find("小 計").Row

'行の高さ15以上を検索
h = 15
For i = 14 To row_shou - 1
If Cells(i, 1).RowHeight > h Then
Exit Sub

End If
Next
Next Ws
End Sub

273デフォルトの名無しさん (スプッッ Sd8a-SZxA)2022/02/28(月) 21:56:13.38ID:1x7bPtTEd
ぶっちゃけFindは滅多やたら使わん方が良いけどまあ良かったじゃん

274デフォルトの名無しさん (ワッチョイ b301-hvk0)2022/03/01(火) 18:55:07.17ID:gFYHZAxx0
なんでもスレだと更新が少なく答えがもらえなさそうなので、こちらにも書き込んですみません。
Excel VBAで質問です。

現在開いているシートにマクロボタンを作り、実行させると…
現在シートのB列に検索値
別のシート(ABC)のB列の5行目〜400行目までを検索して一致したセル番号が欲しいのですが
For cnt=1 To 10 samsu(cnt)=WorksheetFunction.Match(Cells(cnt,1),Worksheets(”ABC”).Range(Cells(5,1),Cells(400,1)),0)

next
このMatch関数の正しい書き方を教えてもらいたいのですが。

275デフォルトの名無しさん (スフッ Sdea-SZxA)2022/03/01(火) 22:29:13.54ID:Nv0Sds8Bd
ちゃんと見ていないが、とりあえず.cellsの前にも全部ワークシートを指定しよう

276デフォルトの名無しさん (スップ Sdea-8W3/)2022/03/02(水) 07:23:43.88ID:bacADaAbd
どっちでも好きな方をどうぞ
samsu(cnt) = WorksheetFunction.Match(Cells(cnt, 1), Worksheets("ABC").Range(Worksheets("ABC").Cells(5, 2), Worksheets("ABC").Cells(400, 2)), 0)
samsu(cnt) = WorksheetFunction.Match(Cells(cnt, 1), Worksheets("ABC").Range("B5:B400"), 0)

277デフォルトの名無しさん (ワッチョイ cb01-DMF9)2022/03/02(水) 18:02:30.94ID:Dpz5qFA70
質問です

社員毎に月々の残業時間の合計プログラムを作っています
合計した数値に対して、30分で切り上げ切り捨てしています(会社の残業規定に則り)
(例えば、月4:10の残業であれば4:00として出力、月4:35であるば5:00として出力)
合計した数値に対してFloor関数を使って切り上げ切り捨てをしているのですが、
月23:30の残業をした社員がいた場合、出力された値が0になってしまいます
表示形式を[h]にしてみましたが、結果は変わりません
デバックでFloor関数の中の変数の値を確認しましたら、23:30のシリアル値はきちんと入っています
そうするとFloor関数で切り上げしているのが原因なのでしょうか?
どなたかご教示いただきたいです…

278デフォルトの名無しさん (ワッチョイ cb01-DMF9)2022/03/02(水) 18:09:09.52ID:Dpz5qFA70
簡潔ですが、以下のようなコードで書いています
.cells(1,1).NumberFormatLocal = "[h]"
a = "23:30"
.cells(1,1) = Application.Floor(a + TimeValue("0:30"),TimeValue("1:00"))

279デフォルトの名無しさん (ワッチョイ 5f68-g6h8)2022/03/02(水) 18:13:22.97ID:ydQ1ic0a0
>>277
mroundで1:00単位でいいんじゃない
Excel VBA 質問スレ Part75 ->画像>10枚

>>278
24と表示されたよ。そのままだとエラーになるので、2行目はtimevalueにいれた
Excel VBA 質問スレ Part75 ->画像>10枚

280デフォルトの名無しさん (ワッチョイ cb01-DMF9)2022/03/02(水) 18:43:03.81ID:Dpz5qFA70
>>279
MRoundにしてみたらできました!
ありがとうございます!

TimeValueについて書き損じ失礼しました
本来は"23:30"ではなく変数が入っていて、変数には23:30のシリアル値が入っています
なぜ0になってしまうのか謎ですが解決してよかったです

281デフォルトの名無しさん (アウアウウー Sa2f-B9J1)2022/03/02(水) 19:19:22.93ID:n7HPCvTSa
23時の次は24時ではなく0時だからだわな

282デフォルトの名無しさん (ワッチョイ 5f68-g6h8)2022/03/02(水) 19:25:50.55ID:ydQ1ic0a0
>>281
いや、書式設定が[h]なら24と表示されるはず

283デフォルトの名無しさん (オッペケ Sr03-+p5u)2022/03/03(木) 07:42:09.33ID:LvEeINitr
>>276
無事に動きました。
ありがとうございました。

284デフォルトの名無しさん (テテンテンテン MM86-65e0)2022/03/03(木) 13:47:21.71ID:KJVc8U50M
質問をさせていただきます。 理解ができないことがあります。
 まず、加工BOOK と マクロ保存BOOK の二種類を使用しています。

加工BOOKにある複数のシートを連続して加工するときにネット情報で下記書き方を拾いました。
Dim Ws As Worksheet
For Each Ws In Worksheets
Ws.Activate
〜色々な動作〜
Next Ws
この「色々な動作」の中で
ThisWorkbook.Activate ’マクロ保存BOOKをアクティブ(シート指定セル指定してコピーを取ってます)
その後、Ws.Activate と書き 上記保存した文字を指定したセルにペースト
これは問題なくペーストできています。
ただ、なぜうまくペーストできるのか理解ができていません。

理由はではこれをシート毎に連続ではなく一枚だけペーストにした場合
最初の For Each Ws In Worksheets と Next Ws を削除すればいいか?と思いやってみたのですが、エラーしか出ません。

てっきりWSという関数に加工BOOKの場所データが格納されていてWs.Activateを書けば加工BOOKに戻ってきていると思ったのですが、エラーとなると違っていたのか?と理解ができなくなりました。

加工BOOKのBOOK名とかが書ければいいのでしょうが、BOOK名(ファイル名)は不特定でやりたい。他人に渡すので環境が読めない。

最初にアクティブになっていたブックシート情報を関数に入れておけばよいと想像しているのですが、どうすればいいかとかわかっていません。
グダグダな質問でわかりにくいと思いますが、二つのBOOKを行き来して片方はマクロを作動させた時にアクティブだったシートって条件にしたいのです。

285デフォルトの名無しさん (ワッチョイ 67e5-/OcY)2022/03/03(木) 14:00:06.45ID:rCo9Fm7Z0
AvtIVeやらしてる時点で作者も大した事なさそう

286デフォルトの名無しさん (ワッチョイ 5f68-g6h8)2022/03/03(木) 14:13:34.66ID:9O05M6/x0
>>284
For Each Ws In Worksheets
Ws.Activate
〜色々な動作〜
Next Ws

sheets("ワークシート名").Activate

WSをWorksheet("ワークシート名")
に変える
あと、Ws.Activateはなるべくやめたほうがいい
PCが重くてアクティブなシートやブックが変わると、大惨事になる可能性がある

本当にやるならopenなどで対象ファイルを開き、戻り値をsetするのが理想

>>285
??

287デフォルトの名無しさん (テテンテンテン MM86-65e0)2022/03/03(木) 14:19:57.38ID:KJVc8U50M
>>286
ありがとうございます。
この”ワークシート名”が分からなくても動かしたいのです。
つまり、hogehoge.xlsx だったり zukozuko.xlsxだったりするので
最初にアクティブだったファイル(シート)に戻ってくる汎用性がほしい。

288デフォルトの名無しさん (ワッチョイ 5f68-g6h8)2022/03/03(木) 14:22:48.58ID:9O05M6/x0
>>287
あぁ、じゃあ
ActiveSheet
でいいよ
ActiveSheet.Cells(1, 1) = 1
みたいな感じで使える

289デフォルトの名無しさん (ワッチョイ 5f68-g6h8)2022/03/03(木) 14:24:24.97ID:9O05M6/x0
そういやブックを指定する時はopenでいいけど、
シート名が不定な時、シートを指定する方法ってないのか
一旦開いてinputboxにインデックスかシート名入れるぐらいしかないのだろうか

290デフォルトの名無しさん (スップ Sdea-8W3/)2022/03/03(木) 14:32:22.98ID:jSBR5AQpd
まずワークシートもワークブックもわかってない事から勉強したほうがよいのではないか
それとよくわからず何となく動いたものを他人に渡して大丈夫なのかと不安になるわ

291デフォルトの名無しさん (ワッチョイ 5f68-g6h8)2022/03/03(木) 14:43:43.44ID:9O05M6/x0
あんまり大丈夫じゃないけど、そこまで言うのもねぇ

292デフォルトの名無しさん (テテンテンテン MM86-65e0)2022/03/03(木) 15:56:08.71ID:KJVc8U50M
心配かけます
とりあえず、データは何回でもダウンロードできるのでいくら壊れても大丈夫です。
内輪の事務ですし
やはり、どんなファイル名(シート名)でもOKとなると難しいですかね
当然フルパスみたいに書くのが良いのはわかります。

293デフォルトの名無しさん (スップ Sdea-8W3/)2022/03/03(木) 16:16:41.04ID:jSBR5AQpd
加工されるワークブックにはワークシートは複数なの?それとも1つなの?
仮に先頭にあるワークシートであれば
Set Ws = Worksheets(1)
のような指定をすればいいだけだぞ
ワークシート名が決まった名前であれば
Set Ws = Worksheets("○○")
のような指定でもOK
どのシートが加工していいのかを判断できるなら当初のFor文で回しながらシートを特定してもいいかと思うが
ある程度のルールが決まった質問じゃないと漠然としすぎて回答する側もとまどうと思うぞ

294デフォルトの名無しさん (ワッチョイ ff2f-65e0)2022/03/03(木) 17:11:57.48ID:AMDtBRAN0
>>284
>てっきりWSという関数に加工BOOKの場所データが格納されていて
Wsは関数じゃなくて変数
その変数に値をセットしていたのがFor文
>最初にアクティブになっていたブックシート情報を関数に入れておけばよいと想像しているのですが、どうすればいいかとかわかっていません。
Set Ws=ActiveSheet
かな。試してないけど
とりあえずForの代わりにこれで動くんじゃね

あまりにも基本がわかってない感があるなぁ

295デフォルトの名無しさん (スッップ Sdea-BsgF)2022/03/03(木) 17:21:03.63ID:Vn+IwdQAd
コピペしかしない人なんでしょ

296デフォルトの名無しさん (テテンテンテン MM86-65e0)2022/03/03(木) 18:46:16.06ID:KJVc8U50M
>>294
はいすいません
関数は書き間違いです。変数ですよねw
ちょっと、脳が
Set Ws=ActiveSheet
で辻褄があいました。
最初の For Nextで全シートした場合も1シートだけやった場合もエラーが出ずに自分の脳みそも合致がいきました。
これを書いていないのに Forで動かしたときに問題なかったので???状態になっておりました。
ありがとうございます。

297デフォルトの名無しさん (スフッ Sdea-SZxA)2022/03/03(木) 19:43:39.19ID:5R1CCyAZd
何ていうかVBAの言語より先にちゃんとした構文の日本語を学ぶ事をおすすめします

298デフォルトの名無しさん (ワッチョイ 9eda-q1UJ)2022/03/03(木) 21:25:56.68ID:pVJYfbHP0
いやでも回答者さんの言うとおりだと思う。理屈や仕組み分からないまま使ったりしていたらいつかは大事故に繋がる。
過去にそういう事が身近であった。

299デフォルトの名無しさん (スップ Sdea-8W3/)2022/03/03(木) 21:46:06.24ID:jSBR5AQpd
何がきっかけで作ることになったか知らないけど
どうして動いてるかもわからずに作って少ししておかしいことに気づいてもすぐ直せなかったら評価悪くなると思うんだよね
自分の周りの出来事でなければ知ったことではないんだけどその辺は踏まえて作った方がいいよ

300デフォルトの名無しさん (テテンテンテン MM86-JUvV)2022/03/03(木) 22:33:01.31ID:yer8R1MmM
ID:KJVc8U50M の言い回しが技術サイトでありがちな英語かロシア語の機械翻訳文に似てて草

301デフォルトの名無しさん (スプッッ Sdbf-cdvC)2022/03/05(土) 11:35:29.63ID:lcqTf7BDd
!!Private Sub Worksheet_Change(ByVal Target As Range)

Dim i As Long
For i =1 to 5
cells(i,4)=DateValue(Cells(i,1)&" 年"&" 月"&Cells(i,2)&Cells(i,3)&"日")
Next i
End Sub

上記記述して実際にシートに数字を入力すると型が一致しませんとエラーになってしまいます
どうしていいのかわからずご教授していただければと
素人みたいな質問すいません

302デフォルトの名無しさん (アウアウウー Sa0f-3vQF)2022/03/05(土) 12:01:15.53ID:tG3yIb4ia
月の位置がおかしいから?w

303デフォルトの名無しさん (スップ Sdbf-Djfv)2022/03/05(土) 12:21:43.22ID:RMBcHsBod
こういうひとってデバッグの仕方とか知らないのかね?
Debug.Print(Cells(i,1)&" 年"&" 月"&Cells(i,2)&Cells(i,3)&"日")
のようなことをすればどんな値が指定されているかわかるんだからみればいいのに

>素人みたいな質問すいません
素人でもこんな質問するかなという内容

304デフォルトの名無しさん (ドコグロ MM7f-5gj/)2022/03/05(土) 12:21:43.61ID:6K6JgexZM
>>301
とりあえず止まったときにイミディエイトウィンドウで
Debug.Print Cells(i,1)&" 年"&" 月"&Cells(i,2)&Cells(i,3)&"日"
ってやってみな

305デフォルトの名無しさん (ドコグロ MM7f-5gj/)2022/03/05(土) 12:22:36.15ID:6K6JgexZM
被ったわ…

306デフォルトの名無しさん (ワッチョイ 0fb0-pp7o)2022/03/05(土) 12:39:47.23ID:/JtJWIIA0
そもそもVBAにする必要あるのかこれ?

307デフォルトの名無しさん (スプッッ Sdbf-cdvC)2022/03/05(土) 12:51:19.12ID:lcqTf7BDd
>>301

Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Long
For i =1 to 5
cells(i,4)=DateValue(Cells(i,1)&" 年"& Cells(i,2)&"月"&Cells(i,3)&"日")
Next i
End Sub

すいません!
月の位置が違いました
上記の記述でも型が一致しませんとエラーになってしまいます

308デフォルトの名無しさん (ワッチョイ 9f02-6Pw1)2022/03/05(土) 13:08:57.00ID:GCjMsc400
=Date(A2, B2, ... え?それ以上はやめとけって? はーい

309デフォルトの名無しさん (スップ Sdbf-Djfv)2022/03/05(土) 13:15:31.27ID:RMBcHsBod
その書き方だと少なくとも変更された際のイベントでDateValueを正しく動作させるには
1から5行目までの1から3列目までにそれぞれ年月日の値が保証されないと型が一致しないとでるけど
そういう状態が担保できてるの?
1行目の入力中でもその書き方だと2行目以降が空欄だと単なる「年月日」という値でDateValue実行してしまいますよ

310デフォルトの名無しさん (スフッ Sdbf-OYGG)2022/03/05(土) 13:43:03.37ID:9H2YJJUDd
セルの中身が実はシリアル値でしたに一票

311デフォルトの名無しさん (スプッッ Sdbf-cdvC)2022/03/05(土) 14:24:04.55ID:lcqTf7BDd
>>309
おっしゃるとおりだと
なんとなくわかっていたのですが
回避方法ありますか?

312デフォルトの名無しさん (スップ Sdbf-Djfv)2022/03/05(土) 14:46:06.75ID:RMBcHsBod
>>311
いずれかのセルが空欄や数字以外だったら4列目に空を設定
それ以外の場合のみDateValueとかでいいんじゃないの
ただ結果的に月日が不正な値(99月など)ならどうするとかそういうのも含めて自分で考えないとこの先やっていけないのでは

313デフォルトの名無しさん (スプッッ Sdbf-cdvC)2022/03/05(土) 14:57:28.77ID:lcqTf7BDd
>>313
なるほど
参考になります
ググって見ます!
ありがとうございます!

314デフォルトの名無しさん (ワッチョイ 0f10-yG/L)2022/03/08(火) 11:28:41.82ID:VCo1qiqP0
すみません、質問です!
例えばA1セルに関数が入っていたとします
A1セルが空白かどうか(関数は入っています)をVBAのIF文で分岐したいですがうまく行きません
VBAでは空白を取得できているはずなんですが何故なんでしょう…
どなたか対応方法を教えてください

315デフォルトの名無しさん (ブーイモ MM7f-2VcS)2022/03/08(火) 11:33:03.86ID:e+QnjkryM
If Range("A1").Fomula = "" Then

316デフォルトの名無しさん (ブーイモ MM7f-2VcS)2022/03/08(火) 11:33:45.29ID:e+QnjkryM
あ、嘘。ごめん。間違えた。忘れて。

317デフォルトの名無しさん (ワッチョイ 0f10-yG/L)2022/03/08(火) 11:39:20.91ID:VCo1qiqP0
>>315
ありがとうございます
Formulaを設定すると関数をそのまま取得してしまいました
なので空白の時の分岐ができませんでした

318デフォルトの名無しさん (ワッチョイ 0f10-yG/L)2022/03/08(火) 11:41:01.62ID:VCo1qiqP0
大丈夫です!
ありがとうございますm(_ _)m

ご存じの方いらっしゃいましたらよろしくお願いします

319デフォルトの名無しさん (ワッチョイ 9f01-sVLR)2022/03/08(火) 12:20:48.22ID:vjLwCjzB0
普通にセルのValueなりTextなりを見ればいいんじゃないの?

320デフォルトの名無しさん (ワッチョイ 3b68-6iqn)2022/03/08(火) 12:37:16.79ID:YxxaCHXb0
>>314>>318
If Range("A1").value = "" Then

>>319
その普通を学習前の段階ぽい

321デフォルトの名無しさん (アウアウウー Sa0f-3vQF)2022/03/08(火) 13:18:52.50ID:+eE97yRCa
空なのか空白なのか

322デフォルトの名無しさん (スフッ Sdbf-6iqn)2022/03/08(火) 13:28:01.68ID:ez1E04nZd
Trim(.Text)じゃないか?

>>321
数式が入ってたらEmptyにはならん

323デフォルトの名無しさん (ワッチョイ 9f01-sVLR)2022/03/08(火) 14:12:30.12ID:vjLwCjzB0
Empty と空文字列と空白は違うって話かと

324デフォルトの名無しさん (ワッチョイ fb5f-8vjq)2022/03/08(火) 19:12:34.37ID:IBMOg+Z/0
前任者のシートで0を書式で空白にしてるのには参ったね
textプロパティを覚えるきっかけにはなったけど

325デフォルトの名無しさん (ワッチョイ 3be6-XzgJ)2022/03/08(火) 19:25:23.65ID:fxoU/Jgx0
文字列枠だけど 書式は #
よくやるw

326デフォルトの名無しさん (ワッチョイ 9f4f-7JAY)2022/03/11(金) 06:05:40.07ID:a7Y3SJRd0
すみません、質問させてください。
VBAで自作したクラスのメソッドやプロパティの一覧を列挙するにはどうすれば宜しいでしょうか?
どのような自作したクラスでも使える汎用的なものを作成したいです。

327デフォルトの名無しさん (アウアウウー Sa0f-Ua9o)2022/03/11(金) 07:32:33.79ID:mh6S44cma
すみません。
特定のセル内に有るリンクを抽出する方法は有りますか?

328デフォルトの名無しさん (スフッ Sdbf-6iqn)2022/03/11(金) 08:32:32.67ID:vHBnGMWOd
>>326
VBAでは無理
ソースをエクスポートしてテキストファイルを処理するぐらいしかないと思う
VB.netならGetMembersってのがあるんだけど

329デフォルトの名無しさん (スフッ Sdbf-6iqn)2022/03/11(金) 08:33:31.79ID:vHBnGMWOd
>>327
Hyperlink

330デフォルトの名無しさん (ワッチョイ 824f-QC5K)2022/03/12(土) 01:24:13.27ID:7NvJtuE10
>>328
なるほど、VBAでは無理なんですね。
以前、VB.Netの命令をVBAで走らせることが出来る場合があることをこのスレで聞いたことがあるような気がしましたので、
そちらとAPIで実装出来ないかを模索してみます。ありがとうございました。

331デフォルトの名無しさん (ワッチョイ ed2f-VrXP)2022/03/12(土) 03:38:02.55ID:pgjQzAZm0
オブジェクトブラウザがやってるけど、どうやってるんだろうな
>>328
エクスポートとかしなくても、VBEオブジェクト使えばコードのスキャンはできる
プロシジャ名の列挙だけでよければここの実行結果3がそうじゃね
https://excelwork.info/excel/codemoduleproperty/

332デフォルトの名無しさん (ワッチョイ 824f-QC5K)2022/03/12(土) 08:17:43.49ID:7NvJtuE10
>>331
後出しになってしまい申し訳ありません。
実は、実際にやりたかったことは
自作したEntityクラスのプロパティを
片っ端からGetして配列に入れ込み、
それをシートに展開すると言うことでした。

名前の列挙さえ取得できれば
後はリフレクションで呼び出せば可能と
考えていました。

おかげで実装の目処がつきました。
ありがとうございます。

333デフォルトの名無しさん (ワッチョイ 01da-2kLS)2022/03/13(日) 02:21:31.96ID:YEneWsYd0
どういう状況で使うんだろう
自分で作ったのに数が多すぎて覚えてないとか?

334デフォルトの名無しさん (ワッチョイ a97c-0GCz)2022/03/13(日) 02:43:05.91ID:B1jPEMw70
素人ですが質問させて下さい。

画像のような、1つのシートに20行単位の表で、連番と日付を上の表から取得するようなブックを作成しています。
表の順番を変えても、常に1つ上の表の番号+1、同じ日付としたいため、直接セルを参照せずこのような関数を使用しています。

式は、↓としています。
=INDIRECT(ADDRESS(ROW()-20,COLUMN()))

起動中は問題なく動作するのですが、ブックを閉じて再起動すると、起動時に必ず落ちてしまいます。(手動計算にすると開ける)

コピーを作成して、上記の式の部分だけ消すと問題なく起動します。

この場合、何が悪いのでしょうか。或いは代替手段があれば教えて頂けると助かります。

Excel VBA 質問スレ Part75 ->画像>10枚

335デフォルトの名無しさん (ワッチョイ a97c-0GCz)2022/03/13(日) 02:49:45.62ID:B1jPEMw70
普段VBAを触っているためVBAスレで質問してしまいました。
スレ違いであればスルーして下さい。

336デフォルトの名無しさん (ワッチョイ 02da-GArk)2022/03/13(日) 03:12:17.58ID:JfJkUCau0
>>335
多分Excel板なら親切な人が回答してくれすよ

337デフォルトの名無しさん (ワッチョイ 8d68-9pEf)2022/03/13(日) 05:18:44.42ID:JG4Baegn0
>>334
offsetで良いと思う。indirectは挙動が微妙におかしい
t46=offset(t26,-20,0)

>>335>>336
回答者は被ってるからどっちでもいいよ

338デフォルトの名無しさん (ワッチョイ a97c-0GCz)2022/03/13(日) 11:02:15.36ID:B1jPEMw70
レスありがとうございます。

こいつ自体難のあるものなんですね。
offsetで狙った動きができました。ありがとうございます。

339デフォルトの名無しさん (スップ Sda2-WCXV)2022/03/13(日) 14:32:38.85ID:UXs3pJFgd
普通に「=R[-20]C+1」じゃダメなのかね(R1C1形式

340デフォルトの名無しさん (ベーイモ MM96-0GCz)2022/03/14(月) 05:49:07.49ID:3S2IFgLOM
>>339
これだと移動させたとき式の値も変動してしまいました。

341デフォルトの名無しさん (スップ Sda2-WCXV)2022/03/14(月) 07:57:10.59ID:727wXMaZd
>>340
失礼、移動後も保証しないとだめだからこれではだめですね

342デフォルトの名無しさん (ベーイモ MM96-0GCz)2022/03/14(月) 17:48:06.77ID:yx1wpkrnM
>>334ですが、当初安定していたもののまた同じ現象になりました。

端末を変えるなり新しいブックにして作り直したり色々試すも改善せず、T列の参照だけがこの現象を引き起こしている(参照先が文字列だと発生しないが数値は発生)ことが分かったため他の列を経由して参照する形で概ね落ち着きました。

エクセル自体のバグなのか分かりませんが同種の状況の方の参考まで。

343デフォルトの名無しさん (ワッチョイ 8d68-9pEf)2022/03/15(火) 13:19:58.65ID:cMhtDWKy0
>>342
多分ブックが壊れている
新しいブックを作り、1シートずつコピーすれば直る可能性がある
その状態で使い続けると完全に壊れて、開けなくなる可能性があると思う

344デフォルトの名無しさん (ワッチョイ 2eda-9pEf)2022/03/16(水) 04:32:35.42ID:3pfuXf5y0
ブックがブックわれている

345デフォルトの名無しさん (スフッ Sda2-eKgF)2022/03/16(水) 07:48:40.55ID:/fL7/vIcd
セル「 ちくしょーちくしょー! 完全体に…… 完全体にさえなればー! 」

346デフォルトの名無しさん (ワッチョイ 8d68-9pEf)2022/03/16(水) 07:55:37.71ID:tVfnjSl40
エクセル「私の行数は 1048576です」

347デフォルトの名無しさん (ワッチョイ 824f-QC5K)2022/03/16(水) 10:32:53.21ID:EfOqqAli0
質問させて下さい。
EXCELの自ブックのシートにVBAにてADO接続でSQLを投げてRecordSetに値を取得していますが、
あまりに遅いのでINDEXを対象のシートに設定したいのですが、可能でしょうか?
可能であれば実装方法を教えて頂けるとありがたいです。

CREATE INDEXのSQLを投げると
「この操作は、このタイプのオブジェクトには実行できません。」というエラーが返って来ます。

EXCEL VBA上でのADO接続だったのでこちらのスレで質問させて頂きました。
もしスレ違いで有れば誘導して頂けるとありがたいです。


lud20220316170020
このスレへの固定リンク: http://5chb.net/r/tech/1644384272/
ヒント:5chスレのurlに http://xxxx.5chb.net/xxxx のようにbを入れるだけでここでスレ保存、閲覧できます。

TOPへ TOPへ  

このエントリをはてなブックマークに追加現在登録者数177 ブックマークへ


全掲示板一覧 この掲示板へ 人気スレ | Youtube 動画 >50 >100 >200 >300 >500 >1000枚 新着画像

 ↓「Excel VBA 質問スレ Part75 ->画像>10枚 」を見た人も見ています:
Excel VBA 質問スレ Part67
Excel VBA 質問スレ Part66
Excel VBA 質問スレ Part68
Excel VBA 質問スレ Part60
Excel VBA 質問スレ Part59
Excel VBA 質問スレ Part61
Excel VBA 質問スレ Part64
Excel VBA 質問スレ Part62
Excel VBA 質問スレ Part37
Excel VBA 質問スレ Part74
Excel VBA 質問スレ Part71
Excel VBA 質問スレ Part72
Excel VBA 質問スレ Part69
Excel VBA 質問スレ Part73
Excel VBA 質問スレ Part70
Excel VBA 質問スレ Part49
Excel VBA 質問スレ Part77
Excel VBA 質問スレ Part65
Excel VBA 質問スレ Part50
Excel VBA 質問スレ Part51
Excel VBA 質問スレ Part63
Excel VBA 質問スレ Part58
Excel VBA 質問スレ Part57
Excel VBA 質問スレ Part79(ワッチョイあり)
Excel VBA 質問スレ Part81 (888)
Excel VBA 質問スレ Part80(ワッチョイあり) (87)
Excel Python 質問スレ
Excel ピボット Power Pivot DAX関数 質問スレ (13)
Access VBA 質問スレ Part1
Access VBA 質問スレ Part2
DELL SC4x0 T10x 質問スレ Part1
Angelic Crest 質問スレ part3
Angel Love Online 質問スレ Part27
Le Ciel Bleu ル・シエル・ブルー 質問スレ Part13
【RIFT】 Rift: Planes of Telara 質問スレ Part5
Counter-Strike: Global Offensive 質問スレ Part3
Tasker 質問スレ 19
Tasker 質問スレ 18
Tasker 質問スレ 17
gdi++.dll 質問スレ 1px
【臨】 質問スレ 【床】
英雄島 質問スレ Part2
d払い 質問スレ Part1
SRPG STUDIO 質問スレ
PSVita 質問スレ part3
PayPay 質問スレ Part1
PSVita 質問スレ part5
PSVita 質問スレ part2
iTunes 質問スレ Part17
PSVita 質問スレ part4
Dark Eden 質問スレ Part7
Android 質問スレ ☆125
iTunes 質問スレ Part16
ChMate 質問スレ Part55
LINE Pay 質問スレ Part2
ポケモンGo 質問スレ Lv.63
Cardinal Saga 質問スレ Part1
ポケモンGO 質問スレ Lv14
LUNA twinkle! 質問スレ Part13
【PC】Terraria 質問スレ Part7
【PC】Terraria 質問スレ Part17
【PC】Terraria 質問スレ Part16
17:09:22 up 13 days, 3:33, 0 users, load average: 16.09, 10.69, 9.81

in 0.015879154205322 sec @0.015879154205322@0b7 on 122507