Excel VBA 質問スレ Part68at TECH
Excel VBA 質問スレ Part68 - 暇つぶし2ch460:デフォルトの名無しさん
20/10/02 16:51:14.94 p6rjz1Jr0.net
>>453
配列のUpperが何を意味してるのかいまいち分からんがこんな感じで良いんか?
Line Input #1, TargetDate
BeforeArray(0, Ubound(BeforeArray, 2)) = ファイル名
For文[1~190](BeforeArrayにSplit(TargetDate, ″,″)を放り込む)
ReDim Preserve BeforeArray(0 to 190, Ubound(BeforeArray, 2)+1)
Do Until EOF(1)
Line Input #1, TargetDate
For文[1~190](BeforeArrayにSplit(TargetDate, ″,″)を放り込む)
ReDim Preserve BeforeArray(0 to 190, Ubound(BeforeArray, 2)+1)
Loop

461:デフォルトの名無しさん
20/10/02 18:32:48.78 a296oIK60.net
>>453
こういうことじゃないのか
targetdata = buf & "," & targetdata

462:デフォルトの名無しさん
20/10/02 22:17:00.26 MWdBgx4Q0.net
>>455
サイドブレーキを使う坂道発進をダサイと感じるようなもので、
どう考えてもシート格納が合理的なのに、無理して配列を使うわけですよ。

463:デフォルトの名無しさん
20/10/02 23:43:54.67 ooD45Zz30.net
CSV の規格では、各要素をクォート文字で囲めば、
各要素中に、列区切り文字も入れられる
"a,b", x
Ruby などのCSVライブラリを使わず、
自力で、列区切り文字で分割すると、バグるだけ
CSVの規格を知らない香具師が、よくやってる

464:デフォルトの名無しさん
20/10/03 00:18:46.98 DSTQ9BDR0.net
csvに規格ってあったんだ

465:デフォルトの名無しさん
20/10/03 07:11:14.79 umHauNXS0.net
ExcelでCSVをダブルクリックで開いて編集、上書きして事故る人が多いね

466:デフォルトの名無しさん
20/10/03 07:17:22.78 NCQ7EVNV0.net
>>460
一応あるけど結局Excelで読めないとダメって言うケースが大多数だったりする
URLリンク(www.kasai.fm)

467:デフォルトの名無しさん
20/10/03 08:43:50.77 2jz2H7gQ0.net
そのRFCって、たくさんあるローカルルールの1つを紹介してるだけだよな
強制力もなさそうだし、現時点ではあんまり意味がなさそう

468:デフォルトの名無しさん
20/10/03 11:51:59.59 ylT9+9xh0.net
>>459
マイクロソフトの製品はそれに沿っているものがあるが、クォーテーションがついたり、つかなかったりするのは、人間にとってもタチが悪く、完全に失敗した仕様と結論が出ている。

469:459
20/10/03 13:01:37.98 /wA+nWqo0.net
列区切り文字は、必要なければ省略できる
つまり、x も、"x" も同じ。
全ての要素に、付けてもよい
ただし、"a,b" みたいに要素内に、
行区切り文字・列区切り文字・クォート文字を含む場合は、省略できない

470:459
20/10/03 13:03:38.87 /wA+nWqo0.net
>>465
修正
>列区切り文字は、必要なければ省略できる
クォート文字は、必要なければ省略できる

471:デフォルトの名無しさん
20/10/03 13:04:25.84 DSTQ9BDR0.net
できないって言われましても強制力無いですし

472:デフォルトの名無しさん
20/10/03 13:34:48.02 zZGrTJee0.net
まあそもそも多数の実装が出てからそれ集めて決めた仕様だからな

473:デフォルトの名無しさん
20/10/03 19:43:36.45 WrZNWJut0.net
そういやあれ何だろうな。
QueryTableだとセル内改行でずれるのに、
ADOだとずれないとか。

474:デフォルトの名無しさん
20/10/04 19:09:07.88 mqiPq7lq0.net
配列を戻す自作関数を呼び出し先Subから複数回実行して、配列を結合したい
んだけど、どうすればできますか? redim preserveとUBoundを使うのかも
しれないけど、いい感じにまとまったコードが書けない。
例えば、下の関数を、別のSubから2回実行させて、
「Ary(3) ※中身:path1,path2,path1,path2」
の結果を得たいです。
Function TestFunc()
Dim testPath(1)
testPath(0) = "path1"
testPath(1) = "path2"
'return
TestFunc = testPath
End Function

475:デフォルトの名無しさん
20/10/04 19:09:08.25 mqiPq7lq0.net
配列を戻す自作関数を呼び出し先Subから複数回実行して、配列を結合したい
んだけど、どうすればできますか? redim preserveとUBoundを使うのかも
しれないけど、いい感じにまとまったコードが書けない。
例えば、下の関数を、別のSubから2回実行させて、
「Ary(3) ※中身:path1,path2,path1,path2」
の結果を得たいです。
Function TestFunc()
Dim testPath(1)
testPath(0) = "path1"
testPath(1) = "path2"
'return
TestFunc = testPath
End Function

476:デフォルトの名無しさん
20/10/04 19:09:56.24 mqiPq7lq0.net
連投すいません

477:デフォルトの名無しさん
20/10/04 19:15:03.93 l1LxtJm7d.net
注意
ID:mqiPq7lq0
いつもの馬鹿です

478:デフォルトの名無しさん
20/10/04 21:13:23.82 3bz1Ts/P0.net
>>471
検索したらいいんじゃね

479:デフォルトの名無しさん
20/10/04 21:42:10.14 NRUY+ZF00.net
>>471
例えとかいい感じとかじゃなくて正確にコードを提示してどの部分をどうしたいのか明確に説明した方がいいよ

480:デフォルトの名無しさん
20/10/04 21:43:28.32 hlbFeQNpd.net
後出し続けて全部作ってもらおうという魂胆の奴だぞ

481:デフォルトの名無しさん
20/10/05 01:21:09.51 Roj0MJiCr.net
VBAからIEを操作して、タグを指定して.valueやselctedで自動化しているのですが、ヤフオクの商品説明だけどうしても値の挿入ができません。
Tabや近い要素をフォーカスしたりクリックし、SendkeyなどでShift +Tabからエンダーなど試していますが、一向に解決できません。
直接でか無くてもカーソルが点滅させれれば、クリップボード経由で貼り付けるような仕様にしようと考えています。

482:デフォルトの名無しさん
20/10/05 07:08:41.25 z7kgQPv30.net
漏れは、Ruby, Selenium Webdriver で、ブラウザを自動操作して、
send_key で、ユーザー名・パスワードを自動入力して、ヤフーにログインしてる
require "selenium-webdriver"
options = Selenium::WebDriver::Chrome::Options.new
options.add_option( :detach, true ) # ブラウザを切り離す
options.add_argument( '--start-maximized' ) # 画面最大
driver = Selenium::WebDriver.for :chrome, options: options
driver.manage.timeouts.implicit_wait = 10 # default timeout
driver.navigate.to "URLリンク(login.yahoo.co.jp)
element = driver.find_element(:id => "username")
element.send_key "ユーザー名"
driver.find_element(:id => "btnNext").click
element = driver.find_element(:id => "passwd")
element.send_key "パスワード"
driver.find_element(:id => "btnSubmit").click

483:478
20/10/05 07:11:02.53 z7kgQPv30.net
そもそも、IE なんか動くのか?
漏れは、Chrome

484:デフォルトの名無しさん
20/10/05 12:57:11.88 BlyIycRMM.net
>>475
すみません。
Sub test
Dim i,ary()
For i = 1 to 2
ary = TestFunc ※ary配列の要素の最後に呼び出した配列を追加していきたい
Next
End

485:デフォルトの名無しさん
20/10/05 13:22:13.75 PJYbs+y10.net
配列に配列を追加するのを初心者がつくるなら
追加する2つの配列と結果を格納する配列の計3つを用意して順番に格納すればできないかな?

486:デフォルトの名無しさん
20/10/05 14:35:29.71 8f5Gi5TxM.net
>>480
いい加減にしろや糞が

487:デフォルトの名無しさん
20/10/05 14:54:20.99 3En1oQ3G0.net
>>471
redim preserveとUBoundを使うのかも
まあしかし、その処理ほんとに配列でやるのが良いのか検討したほうが良いんだが
VBAコレクション系弱いからなぁ

488:デフォルトの名無しさん
20/10/05 15:05:07.42 PJYbs+y10.net
検索すればすむのにね

489:デフォルトの名無しさん
20/10/05 17:50:38.43 BlyIycRMM.net
>>481
>>483
ありがとうございました。

490:デフォルトの名無しさん
20/10/05 17:58:27.13 FAPvswgpM.net
喧嘩腰だなあ
何しにきてんのさ

491:デフォルトの名無しさん
20/10/05 18:26:34.61 KW0b9HJla.net
くれくれ君だからしょうがないだろ

492:デフォルトの名無しさん
20/10/05 19:48:49.79 UUAqkjmTM.net
>>484
F1キー押す方が早くね?

493:デフォルトの名無しさん
20/10/05 19:51:04.71 0f3oInSL0.net
>>488
押すだけならワンキーだけど、オンラインヘルプはそこからが長い

494:デフォルトの名無しさん
20/10/06 10:31:57.17 9/35+5mY0.net
大人の対応でうまく誘導してやろうぜ

495:デフォルトの名無しさん
20/10/07 19:45:01.41 FTOZLATq0.net
下記のように特定の文字を削除して、改行をやめて1行文にしたいのですがコードのご教示いただけないでしょうか

やんやんつけ棒§
めちゃ美味い
ポテトチップス§
めちゃ美味い

やんやんつけ棒めちゃ美味い
ポテトチップスめちゃ美味い

496:デフォルトの名無しさん
20/10/07 20:04:32.74 7ZMz7DKjM.net
まともなテキストエディタ(VSCodeとかサクラエディタとか)で開いて正規表現置換で§¥r¥を空に置換すればよい

497:デフォルトの名無しさん
20/10/07 20:05:03.03 7ZMz7DKjM.net
訂正
§¥r¥n

498:デフォルトの名無しさん
20/10/07 20:27:15.03 FTOZLATq0.net
>>492
なるほど…めちゃ助かります。ありがとうございます。

499:デフォルトの名無しさん
20/10/07 21:05:04.00 8t5FIA980.net
もっと面白い質問しろよ

500:デフォルトの名無しさん
20/10/07 21:08:11.63 EPmDsevha.net
やんやんつけ棒って何?

501:デフォルトの名無しさん
20/10/07 21:08:37.26 FTOZLATq0.net
申し訳ありません、もう一点
A1:私は実は理学部出身
A2:の元々は地質学者です
A3:
A4:こうした南鳥島で
A5:
A6:レアアースの濃集が
A7:起こる
A8:
A9:というのは
A10:
A11:特徴的な層準に

A1:私は実は理学部出身
  の元々は地質学者です
A2:こうした南鳥島で
A3:レアアースの濃集が
  起こる
A4:というのは
A5:特徴的な層準に

下の行に文字列 → 2行の文章として、改行を入れてExcelの1マスにまとめる
下の行が空白 → 1行の文書なのでそのまま
これをなんとかVBAで自動化したいのですが記述を教示願えますでしょうか
面白くない質問ですみません…

502:デフォルトの名無しさん
20/10/07 21:11:26.09 JTTOzasI0.net
>>497
その条件2つそのままコードに直していけるよ

503:デフォルトの名無しさん
20/10/07 21:17:21.39 ueKkqa210.net
改行がLfなのかCrなのかCrLfなのか知らんが
Replace("改行入りの文字列", vbLf, "")

504:デフォルトの名無しさん
20/10/07 21:58:27.94 JTTOzasI0.net
>>499
そんなことしたら改行しなくなるが…

505:デフォルトの名無しさん
20/10/07 22:16:39.68 XaxSLEYL0.net
いつものクレクレ君かな

506:デフォルトの名無しさん
20/10/07 22:51:28.53 7uT04k8fM.net
・コードを要求
・追加で教えて
いつもの人だね

507:デフォルトの名無しさん
20/10/07 22:54:48.87 8t5FIA980.net
普通に書けばできることを聞く意味が分からん
もしかして書けないの?
書けないならやめればいいのに

508:デフォルトの名無しさん
20/10/07 22:56:25.93 Az9cGqg8M.net
>>498
>>499
ありがとうございますm(__)m

509:デフォルトの名無しさん
20/10/08 01:49:40.56 584FeZ4r0.net
>>497
VBAに慣れている人なら簡単に自動化というかVBAで組める内容ではある
問題はこの程度の内容を質問するより先に、自力でできるとこまで自分で
やらなかった最初の一歩が間違っているんだと思う

510:デフォルトの名無しさん
20/10/08 09:04:33.67 BqKPxLQJa.net
CSVとして保存
VSCode等のまともなエディタで開く
([^¥r]+)¥r¥n([^¥r]+)を”$1¥r¥n$2”に置換
¥r¥n¥r¥nを¥r¥nに置換
Excelにインポート
>>492同様にワンショットでいいならこんな感じでいけるんじゃね

511:デフォルトの名無しさん
20/10/08 14:32:22.56 584FeZ4r0.net
それができないのが初心者

512:デフォルトの名無しさん
20/10/08 15:37:32.47 d1cy1ieUM.net
クレクレ君のより煽ってる奴のがうざいんだけどね
VBAだけが人並にできるからこのスレにいつも欠かさず覗きにきてる感じか?
いつものお前が邪魔ですよお

513:デフォルトの名無しさん
20/10/08 15:59:16.76 btiqMG+Y0.net
>>508
大丈夫スルーしてるから
遠まわしでも構うと同列に

514:デフォルトの名無しさん
20/10/08 17:05:05.08 +6fedHspM.net
>>508
くれくれ君本人乙

515:デフォルトの名無しさん
20/10/08 19:30:11.76 bwT1M8vM0.net
>>507
できないことは問題じゃない
やろうとしないことが問題

516:デフォルトの名無しさん
20/10/08 19:55:49.61 YPYO8uSI0.net
たしかにやろうとしないことが問題
てのは御指摘のとおりですね。すみません。
映像制作を生業としてますが普段tipsを聞くのりで聞いてしまいました。

517:デフォルトの名無しさん
20/10/08 20:04:37.46 KjDVO4Tm0.net
>>512
5chなんて便所の落書きなんだからそれでいいと思う。
ただ、まともな返事を期待して馬鹿を見ても仕方ない場所でもあるけれど。

518:デフォルトの名無しさん
20/10/08 21:04:52.28 DcpygGCOd.net
ただでさえ印象悪いのにどうでもいい言い訳まで付けてさらに印象悪くするよくあるパターン

519:デフォルトの名無しさん
20/10/09 00:24:11.53 t8qEIjmh0.net
Dim dw As Date
Dim i As Integer
Sub test()
'ランダムに並び替える
Randomize
'乱数を入れる
For i = 1 To 200
Cells(i, 2) = Rnd()
Next i
'乱数で昇順並び替え
Range("A1:B200").Sort _
Key1:=Range("B1"), Order1:=xlAscending, _
Header:=xlNo, _
OrderCustom:=1, _
MatchCase:=False, _
Orientation:=xlTopToBottom, _
SortMethod:=xlPinYin
'乱数を削除
Range("B1:B200").Clear
dw = DateAdd("S", 5, Now)
Application.OnTime dw, "test"
End Sub

520:デフォルトの名無しさん
20/10/09 00:26:14.42 t8qEIjmh0.net
>>515
のdw = DateAdd("S", 5, Now)
Application.OnTime dw, "test"
を入れると、
「実行できません。このブックでマクロが使用できないか、またはすべてのマクロが無効になっている可能性があります。」
となってしまいます。
「マクロのセキュリティ」は「すべて有効」にしています。
どうすればいいでしょうか

521:デフォルトの名無しさん
20/10/09 00:56:17.14 8xBy2vBw0.net
>>516
そのプロシジャを標準モジュールに書く
CellsとかRangeとか、ちゃんとシート指定しといたほうが良いぞ

522:デフォルトの名無しさん
20/10/09 01:28:40.34 t8qEIjmh0.net
>>517
できました!
>CellsとかRangeとか、ちゃんとシート指定しといたほうが良いぞ
わかりました
ありがとうございました。

523:デフォルトの名無しさん
20/10/09 16:14:30.36 SmS5zjtB0.net
1,1,2,2,3,4,4,4,5,6

1-1,1-2,2-1,2-2,3,4-1,4-2,4-3,5,6
に変換したいのですが、どういうコード書けばよいのでしょうか?

524:デフォルトの名無しさん
20/10/09 16:19:59.95 5DciVe+j0.net
連想配列使ってカウントするか(0 to 対象の値のMax)の配列を用意して、Array(対象の値)にカウントするかが1番頭使わなくて済むかな?

525:デフォルトの名無しさん
20/10/09 16:55:39.01 9cfuJ5OLM.net
かなり前だけどこのスレで教わったアドバイスが今やってることでピンときた
タブ増やして進めてくより
userformをhideとshowで工程進めてくみたいにしたほうがいいわ
ありがとうかなり前に教えてくれた人!

526:デフォルトの名無しさん
20/10/09 17:52:44.19 OU1KT8YFa.net
>>519
fori=1 to 要素数(※要素数はカンマで区切られた数)
数字=数字 & “-” & i
next i
みたいな感じで
前の数字と違ったら数字をリセット
(iが1ならこの処理はしない)
要素がひとつなら処理せず次のiに

527:デフォルトの名無しさん
20/10/09 18:03:17.75 klvVBjUq0.net
next i って書く人嫌い

528:デフォルトの名無しさん
20/10/09 18:15:01.53 FzRk+nqKp.net
かなり前の話と言えば
昔Privateで書かれたプロパティを
外部から取得する方法を書いてた人がいたけど
あれどうやるんだったっけ

529:デフォルトの名無しさん
20/10/09 18:33:13.76 /2wG1kS20.net
内部から漏洩させるのが確実

530:デフォルトの名無しさん
20/10/09 18:36:07.52 /2wG1kS20.net
>>523
それ以前にまったく要望を満たしていない

531:デフォルトの名無しさん
20/10/09 21:13:45.01 hr48HmJ4d.net
>>517
俺はブックも必ず指定するけどね。

532:デフォルトの名無しさん
20/10/09 21:15:25.62 hr48HmJ4d.net
>>519
どうしたいのかもう少し言葉で説明してくれる?

533:デフォルトの名無しさん
20/10/09 21:41:09.60 KqgB0xuS0.net
>>519
普通にカウントアップして、1から2に、2から3に上がるときにカウンターリセット。

534:デフォルトの名無しさん
20/10/09 21:44:54.18 VcvC9Dp/0.net
1つしかなかった時に連番を付けない処理が一手間多くて面倒
データの先読みが必要になる

535:デフォルトの名無しさん
20/10/09 21:49:11.48 5R2Ih+qA0.net
出力タイミングを次の数字を見てからにすれば楽

536:デフォルトの名無しさん
20/10/09 21:49:18.81 2P2kQgrz0.net
1個でも複数でも変わらない
おかしな考え方してるんだろう

537:デフォルトの名無しさん
20/10/09 21:49:40.29 hWEYACMU0.net
>>528
1.処理速度
2.低コスト
3.低ステップ
4.読みやすさ
優先順位はとりあえずこんな感じで頼むわ

538:デフォルトの名無しさん
20/10/09 22:02:55.54 VcvC9Dp/0.net
次の数字を見るかどうかの所で配列の最後かどうかも判定する必要があって面倒
シンプルでうまい方法があるんなら言葉じゃなくてコードで答えてくれ

539:デフォルトの名無しさん
20/10/09 22:06:14.03 rNmj4HJx0.net
splitでカンマ区切りの配列化
instrで個数確認
かね?

540:デフォルトの名無しさん
20/10/09 22:07:17.45 rNmj4HJx0.net
>>534
Uboundで判定して抜ければいいじゃん

541:デフォルトの名無しさん
20/10/09 22:19:01.76 VcvC9Dp/0.net
>>536
ちゃんと動くコード書いてみて

542:デフォルトの名無しさん
20/10/09 22:24:25.52 VcvC9Dp/0.net
Sub Macro1()
  Dim a(), b()
  a = Array(1, 1, 2, 2, 3, 4, 4, 4, 5, 6)
  u = UBound(a)
  ReDim Preserve a(u + 1)
  ReDim b(u)
  a(u + 1) = a(u) + 1
  x = a(0) + 1
  For i = 0 To u
    If a(i) - x Then
      c = 1
    Else
      c = c + 1
    End If
    If c = 1 Then
      b(i) = a(i)
      If a(i) = a(i + 1) And u - i Then b(i) = b(i) & "-1"
    Else
      b(i) = a(i) & "-" & c
    End If
    x = a(i)
  Next
  Debug.Print Join(b, ",")
End Sub

543:デフォルトの名無しさん
20/10/09 22:47:08.38 VcvC9Dp/0.net
これよりシンプルにするのは俺には無理だった
Sub Macro1()
  Dim a$(), b()
  a = Split("1,1,2,2,3,4,4,4,5,6", ",")
  u = UBound(a)
  ReDim Preserve a(u + 1)
  ReDim b(u)
  a(u + 1) = a(u) + 1
  x = a(0) + 1
  For i = 0 To u
    b(i) = a(i)
    c = c + 1
    If a(i) - x Then c = 1
    If (c > 1) + (c = 1) * (a(i) = a(i + 1)) * (u - i) Then b(i) = b(i) & "-" & c
    x = a(i)
  Next
  Debug.Print Join(b, ",")
End Sub

544:デフォルトの名無しさん
20/10/09 23:08:21.94 VcvC9Dp/0.net
b(i) = b(i) & "-" & c

b(i) = b(i) & -c

545:デフォルトの名無しさん
20/10/09 23:19:19.22 760t1BpC0.net
プログラミングのお題スレにも、たまにあるけど


546:、 次の要素を先読みするのは面倒 スタックのpeek みたいに、要素を読み取るだけで、削除しない関数があればよい



547:デフォルトの名無しさん
20/10/10 06:22:18.37 BjcbKuib0.net
Ruby では、
# 一旦、整数の2次元配列にする。[[1, 1], [2, 2], [3], [4, 4, 4], [5], [6]]
result_ary = input_ary = "1,1,2,2,3,4,4,4,5,6".split( "," ).
chunk_while{ |prev, nxt| prev == nxt }.each_with_object( [ ] ) do |ary, acc| # 蓄積変数は配列
if ary.length == 1
acc.push( ary[ 0 ] )
else
ary.each_with_index do |num, idx|
acc.push( "#{ num }-#{ idx + 1 }" )
end
end
end
puts result_ary.to_a.join( "," ) # カンマ区切り

548:542
20/10/10 06:24:55.49 BjcbKuib0.net
>>542
修正
># 一旦、整数の2次元配列にする。[[1, 1], [2, 2], [3], [4, 4, 4], [5], [6]]
一旦、文字列の2次元配列にする

549:542
20/10/10 06:29:37.77 BjcbKuib0.net
>>542
修正
>result_ary = input_ary = "1,1,2,2,3,4,4,4,5,6".split( "," ).
result_ary = "1,1,2,2,3,4,4,4,5,6".split( "," ).

550:デフォルトの名無しさん
20/10/10 06:39:31.44 WLqCacU70.net
データの種類が少なければ連想配列

551:デフォルトの名無しさん
20/10/10 09:37:35.06 ejDp+I1j0.net
先読みって考えるから面倒なのでは?
後出しって考えればいいのでは?

552:デフォルトの名無しさん
20/10/10 09:43:21.90 VjEh1Ow80.net
てかあの程度の仕様なら自分で書けよって思う
あれぐらいで書けないってのは根本的にプログラミングの基礎分かってないでしょ
forとifで一度自分で書いてみろと

553:デフォルトの名無しさん
20/10/10 11:33:09.64 ZZ8h2+k60.net
書く気が無いからコードくれと言ってるんじゃないの

554:デフォルトの名無しさん
20/10/10 12:12:33.28 PwUkT7dUM.net
いつものあいつでしょ

555:デフォルトの名無しさん
20/10/10 14:51:13.18 l6OboMxr0.net
書けない奴「いつもあいつでしょ」

556:デフォルトの名無しさん
20/10/10 15:12:08.20 PwUkT7dUM.net
煽って自演のいつもの馬鹿

557:デフォルトの名無しさん
20/10/10 15:36:01.73 l6OboMxr0.net
おじさん「煽ってなんちゃら」

558:デフォルトの名無しさん
20/10/10 15:38:43.61 VaQE37nUM.net
バグってハニー

559:デフォルトの名無しさん
20/10/10 17:43:29.69 aEE68DdLM.net
いつものあいつ確定

560:542
20/10/10 22:30:05.80 BjcbKuib0.net
データベース変換などは、Ruby のEnumerable のメソッドを見て、
シェル芸とか、プログラミングのお題スレの問題を解いた方がよい
VBA は可読性が悪すぎて、作っても再利用できない。
OSS で全会社共通で、RubyのEnumerable 相当のメソッドを作って公開するべき!
他言語ではたいてい、Rubyと等価のメソッドを作る

561:542
20/10/10 22:31:31.39 BjcbKuib0.net
>>555
修正
>データベース変換などは
データ変換などは

562:デフォルトの名無しさん
20/10/11 00:52:32.73 l/QRoUUr0.net
>>555
布教活動ご苦労さん
必要になったら勝手にRubyスレに行くから
帰っていいよ

563:デフォルトの名無しさん
20/10/11 08:15:59.41 qzIChT2z0.net
>>555
データ変換てのは基本的な作法さえ知ってればEnumerableメソッド使わなくても特に困ることもないだろう
ただのループ構造をこねくり回してるだけでそのためにメソッドを割り当てるなんてお仕着せもいいところ

564:デフォルトの名無しさん
20/10/11 10:01:12.40 QZ/HZvxF0.net
>>557-558
なぜ相手するんだ…

565:デフォルトの名無しさん
20/10/11 12:29:43.68 lH9sVzvl0.net
Acrobatを使用したプログラムを複数回実行すると初回だけ成功し
2回目以降は
実行時エラー2147467259(80004005)
エラーを特定できません
となります(idに代入する行でエラー)
終了処理に不備があってacrobatのプロセスが残っているのではと思いましたが
色々なサイトを見ても解決がわからない状態です。
どうすれば治りますか。
プログラムは次のレスを参照ください。

566:デフォルトの名無しさん
20/10/11 12:30:03.99 lH9sVzvl0.net
Dim objAcroApp As New Acrobat.AcroApp
Dim objAcroAVDoc As New Acrobat.AcroAVDoc
Dim objAcroPDDoc As New Acrobat.AcroPDDoc
Dim id As Long
Dim js As Object
Dim SaveName As String
id = objAcroApp.Show
id = objAcroAVDoc.Open(FilePath, "")
Set objAcroPDDoc = objAcroAVDoc.GetPDDoc()
Set js = objAcroPDDoc.GetJSObject
SaveName = FolderPath & "\" & Replace(FileName, ".pdf", "")
'変換のうえテキストファイルとして保存
js.SaveAs SaveName & ".txt", "com.adobe.acrobat.plain-text"
'PDFファイルを変更無しで閉じる
id = objAcroAVDoc.Close(1)
'Acrobatアプリケーションを終了する。
id = objAcroApp.Hide
id = objAcroApp.Exit
Set js = Nothing
Set objAcroAVDoc = Nothing
Set objAcroApp = Nothing

567:デフォルトの名無しさん
20/10/11 18:37:51.01 7Qx+aWsY0.net
どこだか忘れたけど、閉じる・解放はこの順番じゃないとダメって書いてあるサイトがあったぞ。

568:デフォルトの名無しさん
20/10/11 20:12:54.59 WEczn1o20.net
オブジェクト型にNothingを代入しても、参照ポインタが書き換わるだけでメモリが解放されるわけじゃないんで、順序はそれほど重要じゃない

569:デフォルトの名無しさん
20/10/11 21:39:34.57 CPiGYYUg0.net
>>560
必ず再現するなら同じ現象が発生する最小のコードを作ってみ

570:デフォルトの名無しさん
20/10/11 23:29:10.26 gmCwGThW0.net
>>561
とりあえずDimでNewするのやめて様子見てみ

571:デフォルトの名無しさん
20/10/12 01:35:39.95 EUVfONAL0.net
どうやって再度、実行できているのか?
仕事ができない人がよく言う説明。

572:デフォルトの名無しさん
20/10/12 08:27:00.05 CsRHImZw0.net
>>560
タスクマネージャーを起動して、プロセスを終了させてから、実行すれば?

573:デフォルトの名無しさん
20/10/12 10:12:47.93 5eYbb8SbM.net
アクロバットがすぐに終了しないのは体感でも分かるレベル

574:デフォルトの名無しさん
20/10/12 18:47:34.51 EUVfONAL0.net
2回目以降から1回目に戻る手順くらい書けよ!

575:デフォルトの名無しさん
20/10/12 21:34:54.79 mxOFfEsA0.net
おもいついた
>>530
最後にsubstituteでまとめて消せばよくね?

576:デフォルトの名無しさん
20/10/12 23:43:56.93 k3Vmfe+e0.net
時間を戻そう

577:デフォルトの名無しさん
20/10/13 08:13:53.62 548t3foS0.net
>>561
objAcroAppにCloseメソッドがあってそれを実行していないとかいうオチだったりして

578:デフォルトの名無しさん
20/10/13 09:32:19.92 2dX+mfF30.net
>>572
普通の頭持ってたら
id = objAcroApp.Exit
がそれだと思うだろうに…

579:デフォルトの名無しさん
20/10/13 10:34:47.53 lK6RB09G0.net
「.CloseAllDocs」 ってメソッドもAcrobat.AcroAppにはあるらしいな
そしてExitだけじゃプロセスが残ることもあるらしい
まあAcrobatの環境ないから検証も何もできんけど、
安全取るならExitしたあとにプロセス監視してkillするしかないんじゃね
途中でエラー落ちしてもプロセスのこっちゃうらしいし
ちなみにどうでもいいが個人的にはExitとCloseは、意味的に異なると思う
だからExitとCloseが両方あってもおかしくないとは思う
でもExitがCloseを包括していても、それはそれでありだとも思う
Acrobat.AcroAppの公式ドキュメント見れてないからワイには答えが出せんわ

580:デフォルトの名無しさん
20/10/15 08:48:14.01 wrF56cyr0.net
>>560です
皆さん本当にありがとうございます。
みなさんのご意見をプログラムに反映した後、
ソースを最小(adobeをオープン・クローズするのみ)
にしてもエラーです・・・(次レス参照)
タスクマネージャには
adobe CEF helper、adobe update serviceがありますが
前者は消しても湧いてきているように見えます。
パソコン再起動してもダメ、日付が変わってもダメです。
しかし、エラーになったあとちょうど24時間経過すると
無事実行できるようになることがわかりました・・・
24時間後の数分前はエラーでしたが
数分後は無事実行できました。
ちょうど24時間で消えるプロセスが存在するんだと思いますが
何かご存知のかた居ましたらご教示ください・・・

581:デフォルトの名無しさん
20/10/15 08:49:26.67 wrF56cyr0.net
ソースを最小にするためところどころコメントアウトしてます
Dim objAcroApp As Acrobat.AcroApp
Dim objAcroAVDoc As Acrobat.AcroAVDoc
' Dim objAcroPDDoc As Acrobat.AcroPDDoc
Dim id As Long
' Dim js As Object
' Dim SaveName As String
Set objAcroApp = CreateObject( "AcroExch.App" )
Set objAcroAVDoc = CreateObject( "AcroExch.AVDoc" )
id = objAcroApp.Show
id = objAcroAVDoc.Open(FilePath, "")
' Set objAcroPDDoc = objAcroAVDoc.GetPDDoc()
' Set js = objAcroPDDoc.GetJSObject
' SaveName = FolderPath & "\" & Replace(FileName, ".pdf", "")
'変換のうえテキストファイルとして保存
' js.SaveAs SaveName & ".txt", "com.adobe.acrobat.plain-text"
'PDFファイルを変更無しで閉じる
id = objAcroAVDoc.Close(1)
'Acrobatアプリケーションを終了する。
id = objAcroApp.CloseAllDocs←どっかのサイトでobjAcroApp.Hideの前に入れてました
id = objAcroApp.Hide
id = objAcroApp.Exit
' Set js = Nothing
Set objAcroAVDoc = Nothing
Set objAcroApp = Nothing

582:デフォルトの名無しさん
20/10/15 09:20:24.96 7eWumHpU0.net
起動設定で、プロセスを殺すと、また再起動するアプリがある。
ウィルスチェックなどの、何かをチェックするアプリ
必ず、最低1つは起動しておくタイプのアプリ
そういうアプリは使わない方がよい。
何をチェックして、本社に送っているか、怪しい
会社に問い合わせて、再起動を止めるような設定を聞けば?

583:デフォルトの名無しさん
20/10/15 10:57:30.25 LAL4jdY0d.net
区分1~10のデータが記録されたcsvを区分ごとにExcelシート毎(シート名は1~10)に分割して読み込むvbaがどうしても出来ません…
ご教示いただけないでしょうか…

584:デフォルトの名無しさん
20/10/15 11:36:34.23 +kinuzul0.net
そんな説明でわかるわけがないので、
そこまで頑張って作ったコードとエラーメッセージを提示するのが最低限
そして、自分で何を試行したのかも説明すること

585:デフォルトの名無しさん
20/10/15 12:20:58.11 k/WlCRMPM.net
いつもの人

586:デフォルトの名無しさん
20/10/15 13:02:07.76 7eWumHpU0.net
Ruby なら、これで最初の列だけを、出力できる
require 'csv'
# CSV ファイルを、1行ずつ処理する
CSV.foreach( "a.csv" ) do |row|
puts row[ 0 ]
end

587:デフォルトの名無しさん
20/10/15 14:36:16.06 sVQ5bVjI0.net
>>581
C#スレで恥を晒したRuby荒らしは帰れよ

588:デフォルトの名無しさん
20/10/15 19:36:00.91 GQ796pt70.net
簡単かどうかなんてどうでもいい。
200万件のデータをADO+SQLより速く処理できるならRuby使ってやらなくもないが。
どうなんだい?
無理ならイラネ。

589:デフォルトの名無しさん
20/10/15 19:54:07.37 hF5+vxPB0.net
もう時代遅れなのはわかってるけど
会社が2019に更新してまだまだ使う気満々なので
そして配布が出来ないと困る

590:デフォルトの名無しさん
20/10/15 21:24:39.62 Dg+UC/FqM.net
>>583
ルビ糞基地外の味方をするつもりはないけど、DBがボトルネックならRubyだろうが何だろうが速さは変わらんよ

591:デフォルトの名無しさん
20/10/15 21:53:38.55 3DKNzMNt0.net
俺の解釈だとこんな感じ
Sub Macro1(Filename, Fieldname)
Set ws = Workbooks.Open(Filename).Sheets(1)
Set pvt = ws.PivotTableWizard(1, ws.UsedRange)
pvt.PivotFields(Fieldname).Orientation = 1
pvt.PivotFields(Fieldname).Orientation = 4
pvt.ColumnGrand = False
For Each r In pvt.DataBodyRange: r.ShowDetail = True: Next
End Sub

592:デフォルトの名無しさん
20/10/15 23:19:16.95 fOL5OZab0.net
>>562
はこのサイトかな
URLリンク(pdf-file.nnn2.com)

593:デフォルトの名無しさん
20/10/16 19:09:16.33 Hr39/iau0.net
>>587
多分それ。

594:デフォルトの名無しさん
20/10/16 19:55:23.45 rggqlWcj0.net
PDFファイルの件は、マクロの記録でやるとどうなるのか、確認すればいいんじゃないの?

595:デフォルトの名無しさん
20/10/16 21:55:06.26 Hr39/iau0.net
なあそれ、マクロの記録をするとどうなるか確認してから言ってるのか?

596:デフォルトの名無しさん
20/10/16 22:07:10.71 9Da+1I/Z0.net
モチのロンだぜ

597:デフォルトの名無しさん
20/10/16 22:24:45.68 tI22s9TB0.net
モロのチンだぜ

598:デフォルトの名無しさん
20/10/18 16:09:00.37 SMfw56kvd.net
>>533
そういうことじゃねえ。

599:デフォルトの名無しさん
20/10/21 23:21:44.77 w3Ug/D8p0.net
URLリンク(i.pinimg.com)

600:デフォルトの名無しさん
20/10/22 03:14:09.06 RxEiNjgnM.net
こまけぇこたぁ
    いいんだよ!!
  /)
 //)  __
`/ 二つ/⌒⌒\
| ニ⊃ (●)(●)\
/\ノ|⌒(_人_)⌒|
 / > ヽニノ <

601:デフォルトの名無しさん
20/10/22 08:49:00.24 8kbg1eIjd.net
まだVBAなんて使ってる人がいてビックリ
懐かしい言語だよね

602:デフォルトの名無しさん
20/10/22 09:02:14.12 OZW0tgCBM.net
Excel2000から20年なんて家電製品なら普通ですよ

603:デフォルトの名無しさん
20/10/22 12:37:02.60 QXcT5+jPM.net
Excel5.0からだよ
16ビットだよ

604:デフォルトの名無しさん
20/10/22 12:37:11.57 N0tQIHiYM.net
>>596
今現在Excel入ってりゃ必ず使えるのはVBAだけだから
まあ最近の言語に比べりゃ色々面倒な部分はあるけどちょっとしたツール程度ならなんとかなるぐらいの機能はあるし

605:デフォルトの名無しさん
20/10/22 17:17:13.81 8WoYrv7v0.net
A1に"2020/10/22"のように日付が入っています。
その日付が土曜日の場合、その月の何回目の土曜日かを調べるコードを教えてください。

606:デフォルトの名無しさん
20/10/22 17:41:32.24 V9nm7cr3M.net
嫌です

607:デフォルトの名無しさん
20/10/22 18:23:26.36 jxPHtPQlM.net
22÷7

608:デフォルトの名無しさん
20/10/22 18:50:04.05 lPQIKdWd0.net
>>600
その日付は木曜日です

609:デフォルトの名無しさん
20/10/22 18:56:20.17 CJ3HroyY0.net
int((日-1)/7+1)

610:デフォルトの名無しさん
20/10/22 19:08:32.49 XgRR6MjRa.net
days

611:デフォルトの名無しさん
20/10/22 20:00:05.75 Nlv/Qw7G0.net
>>596
ここでRuby教を広めようとしても無駄ですよ

612:
20/10/22 20:38:01.04 RiQFyYLuH.net
>>599
そうそう、それに win32api のほとんどを呼び出すことができるんですよね

613:600
20/10/22 20:54:38.55 EVMbdUMSM.net
〉〉604
ありがとうございます

614:デフォルトの名無しさん
20/10/22 21:21:26.60 hm8FUbN60.net
いつものあいつか

615:デフォルトの名無しさん
20/10/22 22:49:46.23 kity+iCG0.net
FileSystemObjectの参照設定
VBAの中でできないのかな?

616:デフォルトの名無しさん
20/10/23 00:04:14.15 1WodYwaj0.net
エディタの支援が不要ならCreateObjectでええやん

617:デフォルトの名無しさん
20/10/23 00:50:10.47 g9AT+l9rd.net
>>610
出来る。

618:デフォルトの名無しさん
20/10/23 01:26:42.51 ykqFrr6rM.net
>>610
出来ない

619:デフォルトの名無しさん
20/10/23 02:25:13.53 YKSIT3mga.net
>>610
出来まい

620:デフォルトの名無しさん
20/10/23 02:48:18.20 bmMgVHIId.net
競馬のオッズの取り込み教えて欲しい。

621:デフォルトの名無しさん
20/10/23 08:33:21.77 TKI7l+v40.net
複数のセルに纏めて背景色を付けたい場合についてです
指定のセルは離れているためRangeで範囲選択では済ませられないです
Unionを使用するのも手ではありますが動作速度に影響を及ぼすので最終手段としたいです
そこで背景色をつけるセルのAddressを取得して一次元配列に格納し
.Range(Join(Array, ",")).Interior.CoIor = CLng("&H00FAFAFA″)
で着色しようとしたのですが、どうもこの連結方法の場合、連結数が一定数を超えるとエラー停止してしまう様です
なので何か別のアプローチはないものかと模索している最中なのですがもしよろしければお知恵をお借りしたいです

622:デフォルトの名無しさん
20/10/23 08:37:04.87 WT7JJPgTa.net
自分で思いつかないようなテクニカルなやり方してもあとで読む人が大変だし普通に配列ループでいいじゃん

623:デフォルトの名無しさん
20/10/23 09:16:49.94 0vnMylCPM.net
VBAで済む事をわざわざ他言語でやる池沼よりマシ

624:デフォルトの名無しさん
20/10/23 10:42:10.63 9+IFx01J0.net
>>616
一定数を超えるとエラーになるってわかっているんだから一定数を超えないようにすればいいんじゃね

625:デフォルトの名無しさん
20/10/23 11:02:14.72 TKI7l+v40.net
>>619
不特定多数が使用する業務のスケジュール管理をするツールで、描写したスケジュール表を平日、土曜日、日曜祝日の3パターンで着色する必要があるんですけど、業務期間が長いとどうしても超えてしまう場合が発生するんですよね
業務期間に制限を設けるわけにもいかないですし
配列に格納してんだからループで一定数おきに着色ってのも考えたんですけどUnionより遅くなるっぽいんで最適化を諦めてUnionで繋げちゃうかーって思ってはいるんですが、その前にここで聞いてみて何かヒント貰えたらなーと

626:デフォルトの名無しさん
20/10/23 12:29:02.31 u/a/wHRt0.net
あまり編集をしないのであれば、条件付き書式で勝手に色がつくようにするとか

627:デフォルトの名無しさん
20/10/23 13:40:00.08 DQVFwAwV0.net
>>616
Join(Array, ",") ← こいつがエラー起こすって感じなの?
String 型は最大20億文字数らしいね
あるいは.Rangeが受け付けないのか
一応ググってみるとRangeの引数は255文字までというのが出て来る
これに引っかかってるんじゃねえの

628:デフォルトの名無しさん
20/10/23 13:51:36.68 DQVFwAwV0.net
>一次元配列に格納し
これでループ回したところで体感できるような速度差は出ないと思うがな
むしろRange内の文字列引数処理のほうが時間食われるんじゃないかと
Union・・・どんなもんだろねぇ

629:デフォルトの名無しさん
20/10/23 13:51:42.41 TKI7l+v40.net
>>622
なるほど
引数上限の255文字が原因っぽいですね
んー……そうするとやっぱり複数範囲をカンマ区切りでーは上限が発生しちゃいますよねぇ

630:デフォルトの名無しさん
20/10/23 14:36:51.59 ITa0Mrx5M.net
255件程度ならどんな方法でもさして時間変わらないのでは
screenupdating切れば一瞬で終わりそう

631:デフォルトの名無しさん
20/10/23 15:36:44.43 wfU4S4ZzM.net
数秒が待てないというのはイベント駆動でもさせる気なの?

632:デフォルトの名無しさん
20/10/23 15:48:23.96 BdUYZCjc0.net
エクセルでマリオカートを作ります

633:デフォルトの名無しさん
20/10/23 18:52:38.00 uwgUvjOA0.net
エクセルでねぇ・・。
実質DirectX頼りだろう。
セル書き換えじゃ60fps出ないし。

634:デフォルトの名無しさん
20/10/23 19:17:52.04 knErP7D20.net
255個ぐらいで数秒もかかるのはおかしい

635:デフォルトの名無しさん
20/10/23 19:24:37.35 9+IFx01J0.net
ヒントならもらったろうに、あとはどう実装するかは自力で試行錯誤やればいいんじゃね

636:デフォルトの名無しさん
20/10/23 19:38:40.04 TKI7l+v40.net
処理範囲的には
.Range(”M11:Q1011,T11:X1011,【中略】,CF11:CJ1011“).Interior.CoIor
ぐらいです
全体で1万弱程のステップがあって他ファイルの読込やグラフの生成、データファイルの出力等があり、全体の処理時間が10秒前後なので
この処理を軽くした所で焼け石に水なのは分かってはいるんですが、
オブジェクトの操作を極力減らして動作時間を軽減したいなぁと思っています
次の操作箇所を強調する為にRange(″M20,M20″).Selectみたいな操作を使ったので、これの応用で広域処理も行けるかなぁと思ったんですがダメみたいですね
お騒がせ致しました
お忙しい中ご意見等頂きありがとうございました

637:デフォルトの名無しさん
20/10/23 21:25:05.79 9+IFx01J0.net
問題に取り組む姿勢がおかしい

638:デフォルトの名無しさん
20/10/23 21:51:10.18 DQVFwAwV0.net
>>631
>他ファイルの読込
俺はこいつが異様に遅くて困ってる
100万個ほどのデータをCSVから読ませてるんだけど6世代i5で3分、セレロンだと10分とかかかる
Lineで1行ずつ読んでるせいなんだろうけどQueryだと早いんだろうなあと思いながら面倒で手を付けてなかった
これを機にやってみるかなぁ
実際相当早くなるもんかね?

639:デフォルトの名無しさん
20/10/23 22:37:29.74 jmwa0xlU0.net
何をやってるかにもよるがそもそも一度に全部読み込まなきゃいいんじゃね

640:デフォルトの名無しさん
20/10/23 23:22:27.59 /Kxbsbpt0.net
曜日の色付けなんてWEEKDAY関数と条件付き書式で良くないか?
曜日ごとに文字列記入するところはマクロにしてるけど

641:デフォルトの名無しさん
20/10/24 06:26:18.80 Uy2SF5SV0.net
>>634
>一度に全部読み込まなきゃ
そうやねぇ・・・
週ごとにデータを集計してんだけどいまんところ一括で読み込ませてる
常時PC立ち上がってる環境だから逐次データ吸い上げていけば一番いいんだけどそうなると小手先の変更じゃなくて大枠に手を加えなきゃなんなくなるのが頭痛いところ
てかこんなのエクセルでやらせんなよって話でもあるんだけどそうはいかない

642:デフォルトの名無しさん
20/10/24 08:29:55.58 Q0nf4D4p0.net
>>635
それでも良いんですけど、行ごとに工程の開始日と終了日を設定して工程の期間のセルは計画達成率ごとに緑、黄、橙、赤って着色する必要があり、その着色は開始日が平日なら土日祝日は着色しない、開始日が土日祝日なら期間中全てのセルを着色
とかやるんで条件書式でやるのかなり面倒なんですよね
ユーザーには進捗率をスケジュール表に記入させるんですけど今日以降の進捗率は入力があっても認識から外さなければならないって仕様もあったりするんで

643:デフォルトの名無しさん
20/10/24 10:23:24.93 EYzilKe/0.net
そのぐらいなら自分なら条件付き書式でやる

644:デフォルトの名無しさん
20/10/24 10:53:59.72 Fj5xdFDia.net
毎回全部のデータつくりなおすのか
差分だけやるとか分割するとかしないのね

645:デフォルトの名無しさん
20/10/24 12:24:40.86 9i+KquaLM.net
あるフォルダに複数のエクセルがあります。
シートは必ず一枚。
一番ファイル名が短いエクセルに
他のエクセルのシートをコピーしてまとめたい。
どう書けば楽ですか。

646:デフォルトの名無しさん
20/10/24 12:36:09.77 Gp+9LQQ1p.net
>>640
一番短いファイル名で同じ長さのものが有った時点で破綻
次の方どうぞ~

647:デフォルトの名無しさん
20/10/24 12:41:50.27 hS/lv/UK0.net
その問題を作った先生を問い詰めろ!

648:デフォルトの名無しさん
20/10/24 12:43:08.02 hS/lv/UK0.net
>>640
前提条件にリアリティがなさすぎるw

649:デフォルトの名無しさん
20/10/24 13:11:38.58 uN2dIIGs0.net
>>640
「わかりません」って書いとけばいいよ

650:デフォルトの名無しさん
20/10/24 13:18:00.47 Lxq4fMOo0.net
>>640
その通り書けば楽です

651:デフォルトの名無しさん
20/10/24 13:35:27.35 hS/lv/UK0.net
エクセルがあるとは何ですか?

652:デフォルトの名無しさん
20/10/24 13:37:23.43 hS/lv/UK0.net
Excelファイルのことを単にExcelと呼ぶのも違和感がある。

653:デフォルトの名無しさん
20/10/24 13:45:51.01 9i+KquaLM.net
>>641
同じ長さになることはありません
説明不足ですみません

654:デフォルトの名無しさん
20/10/24 13:46:27.15 EYzilKe/0.net
何を条件にした楽なのか?

655:デフォルトの名無しさん
20/10/24 15:19:09.43 hS/lv/UK0.net
ファイル名のことなんてあとで考えればよい。
まず手順を考えてください。
ファイル名は重要ではありません。

656:デフォルトの名無しさん
20/10/24 15:29:59.50 VJA5Q+pD0.net
いつものあいつっぽい

657:デフォルトの名無しさん
20/10/24 15:59:31.92 h35l0z5Z0.net
シート"土曜日の小計"のA2から、祝日と会社の休業日以外の土曜日を書いていくマクロを考えています。
(シートカレンダーのA列に日付、B列にA列の日付が祝日であれば"1"が入力してあり、C列に会社の休業日なら"1"が入力してあります)
このマクロだと、「424 オブジェクトが必要です」になります。どう書けば良いですか?

Dim a As Long,r As Long
a = 2
For r = 1 To 365
 If Weekday(DateAdd("d", r, Date)) = 7 And _
   Worksheet.Function.VLookup(DateAdd("d", r, Date), Sheets("カレンダー"), 2, False) <> 1 And _
    Worksheet.Function.VLookup(DateAdd("d", r, Date), Sheets("カレンダー"), 3, False) <> 1 Then
Sheets("土曜日の小計").Cells(a, 1) = DateAdd("d",r,Date)
  a = a + 1
End If
Next bc

658:デフォルトの名無しさん
20/10/24 17:14:11.51 hS/lv/UK0.net
>>652
URLリンク(officetanaka.net)

659:デフォルトの名無しさん
20/10/24 17:16:31.42 hS/lv/UK0.net
>>652
可読性の悪さw

660:デフォルトの名無しさん
20/10/24 17:22:25.13 VJA5Q+pD0.net
土曜日のことを聞いていたのは例のあいつ

661:デフォルトの名無しさん
20/10/24 17:24:29.58 hS/lv/UK0.net
>>652
どのワークシートなのか指定がないけど?

662:デフォルトの名無しさん
20/10/24 19:06:56.46 kz7Ernxq0.net
例のあいつが好きな人か

663:デフォルトの名無しさん
20/10/24 19:44:26.47 EYzilKe/0.net
オブジェクトの指定も無いし存在しない命令も書いてあるし

664:デフォルトの名無しさん
20/10/24 19:53:11.40 rvK7EvYrd.net
>>610
個別的になるが出来る。
Application.VBE.ActiveVBProject.References.AddFromFileを使う。
VBEを弄るからセキュリティがザルだ。
わかってる奴以外は使わないことをお勧めする。

665:デフォルトの名無しさん
20/10/24 20:28:18.61 UZJZIrrqM.net
>>652
Sheets("カレンダー")のあとにセル範囲を書けば動くんじゃね

666:デフォルトの名無しさん
20/10/24 21:19:11.38 9VZVkXWLd.net
理解しないまま適当にいじって、エラーが出る位置を見直そうともせず修正丸投げか

667:デフォルトの名無しさん
20/10/24 23:09:15.96 ZLw1Oaa2M.net
だっていつもの人だもの

668:652
20/10/24 23:35:43.13 h35l0z5Z0.net
>>653
どこにSetをつければいいか分かりません


>>652
どうやって指定すればいいですか?


>>660
Worksheet.Function.VLookup(DateAdd("d", r, Date), Sheets("カレンダー").Range("A:C"), 2, False) <> 1

でも同じでした

669:デフォルトの名無しさん
20/10/25 01:39:45.83 eXluQ9/t0.net
うるさい

670:デフォルトの名無しさん
20/10/25 02:05:19.43 mQ0mp2TEM.net
>>663
いい加減にしろや
死ね

671:デフォルトの名無しさん
20/10/25 11:43:41.49 R1nDOxYO0.net
>>663
基本的なことができてないようなので職場の他の人に頼んだ方が早いだろう

672:デフォルトの名無しさん
20/10/25 12:51:32.04 6oKLzf6v0.net
ある変数に、なんでもいいから100文字セットしたい場合って
どの関数使えばいいの?
str = "*****..."(100文字)
と書くのはダサいから嫌です

673:デフォルトの名無しさん
20/10/25 12:58:10.18 cOgZifE90.net
ダサいとする基準は?

674:デフォルトの名無しさん
20/10/25 13:44:52.27 eJOhPHQ60.net
>>667
WorksheetFunction.Rept("あ" ,100)

675:デフォルトの名無しさん
20/10/25 14:25:26.14 f7KUnMgPd.net
>>667
String(255,"*")

676:デフォルトの名無しさん
20/10/25 14:26:14.56 f7KUnMgPd.net
100文字か。
String(100,"*")

677:デフォルトの名無しさん
20/10/25 14:53:37.82 SDXJVscja.net
>>667
その質問のほうがダサい

678:デフォルトの名無しさん
20/10/25 17:29:34.56 6oKLzf6v0.net
>667
です
669-671
おかげさまでできました有難う天才たち

679:デフォルトの名無しさん
20/10/25 19:06:05.20 DNLjJymIM.net
やっぱりいつものあいつでしたとさ

680:デフォルトの名無しさん
20/10/25 19:23:20.13 eXluQ9/t0.net
なんでもいいという要件がわからない。

681:デフォルトの名無しさん
20/10/25 20:13:10.48 R1nDOxYO0.net
からかわれている

682:デフォルトの名無しさん
20/10/25 20:37:35.14 cOgZifE90.net
というかバカにされてるなたぶん

683:デフォルトの名無しさん
20/10/25 21:38:09.03 eeV8PNBf0.net
複数行まとめてコメントアウトしたい場合
どう書けばいいですか
一行ずつ'を入れたくないです。

684:デフォルトの名無しさん
20/10/25 22:03:05.56 D3cPjOx/a.net
選択されたら行範囲をすべてコメント化/コメント解除はツールバーにある
そのバーが非表示だと表示しなければダメだが
あと、推奨されるかは分からないけど、
#if 0 then
コメント化したい行
#end if
とかよくやります

685:デフォルトの名無しさん
20/10/25 22:04:11.05 D3cPjOx/a.net
出だし
選択された行範囲…
です

686:デフォルトの名無しさん
20/10/25 22:18:31.00 D3cPjOx/a.net
自分で書いておいてなんだけど、#でぃれくてぃぶによるコメントはお勧めしません
知っておいてよいかも、で

687:デフォルトの名無しさん
20/10/25 23:22:51.95 JTBNO/Ek0.net
>>678
行の末尾に半角スペースとアンダーバーを入れて次の行と繋げてしまうとか?

688:デフォルトの名無しさん
20/10/26 00:23:04.45 qmNjcSj20.net
>>678
数行程度の編集作業で手を抜くってのはどうかな
むしろそのコメント残さないで削除した方がいいんじゃね
一時的に処理を分けるならプロシージャとかで追い出して呼び出し部分をコメントにするとかあるけど

689:デフォルトの名無しさん
20/10/26 12:01:16.14 fNFJMgyU0.net
>>678 は釣り

690:デフォルトの名無しさん
20/10/26 14:18:17.78 qmNjcSj20.net
やっぱりそうか

691:デフォルトの名無しさん
20/10/26 22:12:59.62 jYeoL4370.net
元々スプレットシート使ってて最近vba始めたんだけど
エクセルのvbaではスプレットシートで言うとこのsetvaluesみたいなのはないの?
2次配列をシートに貼り付けるみたいなことしたいんだけど

692:デフォルトの名無しさん
20/10/26 22:13:37.01 jYeoL4370.net
2次配列じゃなくて多次元配列でした

693:デフォルトの名無しさん
20/10/26 22:18:23.63 LUihbr1y0.net
>>687
VBAは2次元配列限定でRangeに代入すればまとめて書き込んだり読み取ったりできる

694:デフォルトの名無しさん
20/10/27 00:26:27.42 bFDGidnH0.net
VBAはなぜか裏技っぽい文法が好きらしい
Midステートメントなんて最悪

695:デフォルトの名無しさん
20/10/27 01:13:56.57 86zqMFTdM.net
>>686
>>689
釣られないように

696:デフォルトの名無しさん
20/10/27 02:21:37.66 rqaBQIGU0.net
>>688
何度もすいません
例えばこんな感じでrangeの範囲がわからない場合rangeのとこどうしたらいいの?
dim tmp
tmp = worksheets("sheet1").usedrange
worksheets("sheet2").range()= tmp

697:デフォルトの名無しさん
20/10/27 02:24:20.74 rqaBQIGU0.net
ソース間違いです
dim tmp
tmp = worksheets("sheet1").usedrange.value
Worksheets("sheet2").range()= tmp

698:デフォルトの名無しさん
20/10/27 02:30:47.78 9HNq6CFYd.net
例のあいつ

699:デフォルトの名無しさん
20/10/27 11:38:27.45 ptoZa2VhM.net
Wordの2ページ目以降にラベルを追加する方法について教えてください
エクセルからWordを呼び出して、ラベルを追加しようとしています
以下のように記載しました
Set newDoc wdApp.Documents. Add
newDoc.Shapes.AddLabel msoTextOrientationHorizontal, 35, 300, 30, 20
AddLabelの第二引数(300になっているところ)を増やせば2ページ目以降に追加されると思いましたが消えてしまい上手くいきません
すみませんがどうすればいいかご教示お願いいたします

700:デフォルトの名無しさん
20/10/27 12:32:20.10 g67UH/S6d.net
>>692
それ、Rangeの範囲わかるよね。

701:デフォルトの名無しさん
20/10/27 16:07:03.53 rqaBQIGU0.net
>>695
わからない場合です
いちおうuboundとかで出せるのは分かるけど流石にこれだと増長すぎるかなと
worksheets("sheet2").range(cells(1,1),cells(ubound(tmp),ubound(tmp,2))) = tmp

702:デフォルトの名無しさん
20/10/27 18:11:55.01 l1bcXJEN0.net
VBAを使うには記述の冗長さは諦めたほうがいい
その書き方で大正解だ

703:デフォルトの名無しさん
20/10/27 18:13:10.53 l1bcXJEN0.net
VBAの何が終わってるってこう言う書き方に少しも疑問を覚えない老害がいっぱいいるんだよな

704:デフォルトの名無しさん
20/10/27 18:22:43.09 qZwcfAyua.net
一旦変数にいれればいいんじゃね

705:デフォルトの名無しさん
20/10/27 18:42:07.59 6WpiGXJ0M.net
疑問に思ったところでどうしようも無く無いか
自分でクラスでも作るとか?

706:デフォルトの名無しさん
20/10/27 18:50:59.46 D9T+kNV20.net
冗長にしたくなければテーブル使うのが1番手っ取り早いかなぁ
プロパティの分かりづらさとネット検索結果の貧弱さは仕方ない

707:デフォルトの名無しさん
20/10/27 19:33:07.02 w/TzFTqy0.net
>>697
resizeはどうだ?

708:デフォルトの名無しさん
20/10/27 19:35:27.63 w/TzFTqy0.net
最近おもいついたこと
ワークシート関数→波紋
VBAマクロ→幽波紋

709:デフォルトの名無しさん
20/10/27 23:01:35.17 o6G0sPC10.net
>>689
裏技っぽいかは知らんがこれ好き
a = b = c

710:デフォルトの名無しさん
20/10/27 23:03:09.41 gj2Ohu8L0.net
>>679
ありがとうお勧めではないそうですが
教えてくださった方法でコメントアウトできたので
使いますww

711:デフォルトの名無しさん
20/10/27 23:05:41.35 WVQXu4mGa.net
代入が式の言語だと、結果 a、b、c が同値になるし、イヤだなぁ…

712:デフォルトの名無しさん
20/10/27 23:13:03.58 WVQXu4mGa.net
>>705
[表示]-[ツールバー]-[編集] で表示られるアイコンの左から9番目で選択範囲を一括コメント化、その右のアイコンでコメント解除
それも試してみてください

713:デフォルトの名無しさん
20/10/27 23:23:37.13 2iVpt4JMa.net
>>704
おれは嫌い

714:デフォルトの名無しさん
20/10/28 06:32:08.53 MUExsF8QM.net
マクロ実行後、
エクセルファイルを保存しようとすると
プライバシーに関する注意
というメッセージが出ます。
出ないよう設定できるようですが
セキュリティ的に不安です。
皆さんどのような対処をされてますか
いったんエクセルを全部終了するくらいしか
思いつきません

715:デフォルトの名無しさん
20/10/28 06:48:10.23 MGib4+U5M.net
マクロ実行後、 ←この時点で手遅れ

716:デフォルトの名無しさん
20/10/28 08:53:47.67 MUExsF8QM.net
>>710
実行前に他のエクセルを終了するのが
一般的でしょうか

717:デフォルトの名無しさん
20/10/28 12:22:09.47 VqefcRCnM.net
>>704
好きとか嫌いとかじゃなくて
If b = c Then
a = True
Else
a = False
End If
みたいなコード書くなら
a = b = c
ッて書いた方が楽じゃね?

718:デフォルトの名無しさん
20/10/28 12:26:16.35 SBFJNMXDM.net
後から見直すときに前者の方が見やすい
書く時に楽かどうかは別にどうでもいいです

719:デフォルトの名無しさん
20/10/28 13:08:13.57 Gcn0+siH0.net
a = (b == c)
ならいいんだけどなぁ

720:デフォルトの名無しさん
20/10/28 13:28:06.88 ArgZkv9MM.net
インタプリタの時代にif文の構文解析が遅いからって可読性皆無の謎の数式書いてた思い出

721:デフォルトの名無しさん
20/10/28 15:35:13.90 0lSgHaJH0.net
>>697
教えてくれてありがとうございます
これが普通なんですね
仕方ないので暫くはこれで大人しく頑張ってみます
何か荒れてたとこに変な質問して申し訳ありませんでした

722:デフォルトの名無しさん
20/10/28 18:57:08.32 koZ0sZlBM.net
>>696
冗長とか増長とか言う前にシートを指定せずにcells( )とか使うのはバグの元、せめて
With Worksheets("sheet2")
.Range(.Cells(1, 1), .Cells(UBound(tmp), UBound(tmp, 2))) = tmp
End With
にした方がいい

723:デフォルトの名無しさん
20/10/28 19:02:36.90 SBFJNMXDM.net
withはなんか嫌い

724:デフォルトの名無しさん
20/10/28 19:10:52.23 URI3IFfrM.net
DAIGO監修マッチングアプリ

725:デフォルトの名無しさん
20/10/28 19:13:48.38 Aw3ALjki0.net
..でもうひとつ上のwithが使えるとか変な拡張してほしい

726:デフォルトの名無しさん
20/10/28 19:29:16.70 n4xiXKpa0.net
>>717
With ThisWorkbook.Worksheets("sheet2")
.Cells(1, 1).Resize(UBound(tmp), UBound(tmp, 2))) = tmp
End With
おれはブックから指定しないと気が済まんな

727:デフォルトの名無しさん
20/10/28 19:32:00.41 XiKqUxDYM.net
withはなんか嫌い

728:デフォルトの名無しさん
20/10/28 19:40:24.53 8aJXN6gS0.net
Sheetオブジェクトにbookから指定したシート格納して扱うことが多いかなー

729:デフォルトの名無しさん
20/10/28 19:43:09.41 Aw3ALjki0.net
SetしたらNothing警察がウルサイんだよ

730:デフォルトの名無しさん
20/10/28 19:44:40.32 n4xiXKpa0.net
Withじゃないと他人がつけたSheetやRangeの変数名を把握するの大変じゃない?

731:デフォルトの名無しさん
20/10/28 19:49:35.60 HcvuYFHJd.net
>>696
???
worksheets("sheet2").usedrange.value= tmp
じゃ駄目なのか?
範囲の文字が欲しいなら
worksheets("sheet2").usedrange.address
とかでも駄目?

732:デフォルトの名無しさん
20/10/29 12:00:49.68 xpkBYj/E0.net
>>726
sheet1と2じゃUsedRangeの範囲が違うだろ
sheet1の範囲取得しないと

733:デフォルトの名無しさん
20/10/29 12:27:28.32 wp9TtuK3d.net
>>727
意味が分かった。
ならアドレスでOK。
アドレス違うなら関数作れ。
入ってる二次元配列がどんなであろうと貼り付け先1セル指定で貼り付く奴。

734:デフォルトの名無しさん
20/10/29 18:28:14.85 2VkEHk3qa.net
背中にお婆さんがはり付いているよ

735:デフォルトの名無しさん
20/10/29 21:30:53.07 4HKKGi1r0.net
vba配列操作貧弱すぎてつらい

736:デフォルトの名無しさん
20/10/30 14:29:28.42 mCzxAGXk0.net
ならVBAやめなよ

737:デフォルトの名無しさん
20/10/31 00:00:44.18 OI+kPxFG0.net
無理にやる必要わない
UB人口少ないし

738:デフォルトの名無しさん
20/10/31 19:30:50.69 ihhGxqs70.net
複雑な部分はpowershellでやれ

739:デフォルトの名無しさん
20/10/31 20:06:28.46 p/A/SH820.net
そしてそっちのスレでやれ

740:デフォルトの名無しさん
20/11/01 06:21:53.30 eo7/HsaKM.net
Excel add-insならJavaScriptでExcelを操作できる
URLリンク(docs.microsoft.com)

741:デフォルトの名無しさん
20/11/01 13:18:53.92 RpKdwAj80.net

老害がいっぱいでしょう

742:デフォルトの名無しさん
20/11/01 14:06:41.78 wVa8LgII0.net
会社でxlsmファイルを次の担当に引き継ぐことになりました。
microsoft scripting runtimeの設定をそのファイルに施してあります。
次の担当者は自分で設定しなくても普通に使えるんでしょうか。
それとも自分で開発タブを表示するところから設定しないと
エラーになってしまうのでしょうか。

743:デフォルトの名無しさん
20/11/01 14:29:30.14 rqDSIn020.net
参照設定はユーザー毎じゃなくてファイル毎に設定

744:デフォルトの名無しさん
20/11/01 14:51:11.65 HO7tvAnU0.net
>>737
なぜやってみないの?ゆとりなの?

745:デフォルトの名無しさん
20/11/01 15:54:59.46 wVa8LgII0.net
やってみたところ>>738の印象だったのですが
実際どーなのかなあって思いまして・・

746:デフォルトの名無しさん
20/11/01 17:10:27.45 osQdZjWG0.net
一時期excelでpthon使えるようになるとかあったけどあれどうなったんだ
正直ちょっと期待してたんだけど

747:デフォルトの名無しさん
20/11/01 22:02:08.34 8xLcKULEF.net
>>741
その話は消えたようだ
URLリンク(qiita.com)

748:デフォルトの名無しさん
20/11/03 03:00:31.66 N88Bm9k/0.net
僕「複数のブックから値を取得したい時どうしたらいいんだろ」検索
検索結果「全部のブックを開いて取得しましょう。外部参照しましょう。」
僕「こいつら正気かよ…」

749:デフォルトの名無しさん
20/11/03 07:44:54.83 Z7LuIdeU0.net
他にどうしろと
特にZIP圧縮になって以降

750:デフォルトの名無しさん
20/11/03 12:46:38.69 3Zl4+FN80.net
ちょっと読むだけなら4macroとか大量データでないならDB接続とか

751:デフォルトの名無しさん
20/11/03 15:03:36.63 Wl8qkqc+a.net
いつもの人でしょ

752:デフォルトの名無しさん
20/11/03 22:04:34.20 DcyztcMU0.net
クラスが便利なのは分かっているんだが、難しくてやる気なくしてたんだけど
ユーザー定義型Typeね、アレすげえな
バカなオレでもプログラミングしている気分にさせてくれるくらい簡単

753:デフォルトの名無しさん
20/11/04 06:49:14.88 dR//5Nki0.net
おれもクラスを調べてるけど要はオブジェクトを自分で作り出せるというところまでは分かった

754:デフォルトの名無しさん
20/11/04 18:04:37.59 H6E0ixtH0.net
>>745
おそらく4macroで使える程度の関数群は外部参照で元ファイル開かなくても参照できる
どんなデータを集計したいかしらんけどただ値を取得したいだけならブック開く必要ないよ(裏では開いてるけど)
一方最近の関数使ってるなら安全のためにブック開いてたほうがいい
DB接続ってのはエクセルファイルにDB接続できないから意味ないだろうね

755:デフォルトの名無しさん
20/11/04 19:12:35.17 LUbnrRil0.net
できることしか言ってないよ

756:デフォルトの名無しさん
20/11/04 20:01:28.17 YMXq55HT0.net
>>749
db接続できないと思ってるような人はコメントしなければいいのに

757:デフォルトの名無しさん
20/11/04 20:42:14.94 iJjhODSM0.net
>>749
ジェットでインストール可能なイサムすればつながるだろうが!

758:デフォルトの名無しさん
20/11/04 21:07:01.95 +u5LkCAg0.net
txtデータをダイアログから開いた時に
元のxlsmにあるテンプレというシートを
毎回そのブック内の右側に添付したいんですが
御教授お願いします。。
毎回txtデータの名前は異なります。
なかなか調べてもわかりません

759:デフォルトの名無しさん
20/11/04 21:12:25.29 iJjhODSM0.net
よくわからんが、単純に If right(filename, 4) = ".txt" Then じゃダメなんかい

760:デフォルトの名無しさん
20/11/04 21:32:08.71 +u5LkCAg0.net
>>754
初心者で理解できてなくてすみません
色々サイトを検索はしたのですが
Sub テキストを読み込む() Dim TARGET_TEXT_FILE As String
ChDir "C:\テキストデータフォルダ"
TARGET_TEXT_FILE = Application.GetOpenFilename("テキストファイル,*.txt")
If TARGET_TEXT_FILE = "False" Then Exit Sub Workbooks.OpenText TARGET_TEXT_FILE End Sub
今のところこれでテキスト開いてるだけなんですが
全く変えた方がいいですか?
これで開いた新ブック全てに元々あるテンプレというシートを添付させたいのですが
説明も下手で申し訳ないです

761:デフォルトの名無しさん
20/11/04 22:21:06.79 +u5LkCAg0.net
結構片っ端からヒットしたサイト調べてますが答えがあるのかもしれないのですがなかなか知恵が出てこず…どなたかお助け頂ければと

762:デフォルトの名無しさん
20/11/04 22:28:00.55 iJjhODSM0.net
開いた後にこうかな?
ThisWorkbook.Worksheets("テンプレ").Copy , Workbooks(Dir(TARGET_TEXT_FILE)).Sheets(1)

763:デフォルトの名無しさん
20/11/04 22:41:28.62 4kHESo6md.net
>>755
Dim tsh As WorkSheet
Set tsh = ThisWorkBook.Worksheets(″テンプレ″)
としておいて、
テキストファイルをオープンした後に
tsh.copy
ActiveWorkbook.insert
とかなんとかできないかね

764:デフォルトの名無しさん
20/11/04 23:45:56.25 +u5LkCAg0.net
>>757
>>758
お二方、本当にありがとうございます。
いまホテルでPCが無い環境になってしまったので
また試させていただきます。
もし上手く動かなくても勉強にさせてもらいます。本当に感謝します。

765:デフォルトの名無しさん
20/11/05 00:34:34.60 Hf0k6gxcd.net
初心者、勉強中って設定でくれくれするスタイル

766:デフォルトの名無しさん
20/11/05 00:55:08.79 E/zWC4JEM.net
ID:+u5LkCAg0
いつものあいつだろ

767:デフォルトの名無しさん
20/11/05 01:18:00.31 MmJj0qw00.net
わざわざこんなとこで聞くよりググったほうが早いからな
ただのかまってちゃんだ

768:デフォルトの名無しさん
20/11/05 01:33:03.90 wTkbtAOfd.net
>>762
意味もわからずコピペするだけの馬鹿だから無理なのだろ

769:デフォルトの名無しさん
20/11/05 01:37:27.03 eUwwuQR20.net
>>759
死ね

770:デフォルトの名無しさん
20/11/05 13:00:01.73 OVMdlSXB0.net
>>751
>>752
直じゃなくて一旦DB化(一括インポート)しなきゃなんねえの
Jet.OLEDB,ACE.OLEDB,SQL Server,Power Query
外部DBが使えるならなんでもええがな
こいつら通さずエクセルに直にSQL送ったところで何も帰ってこないよ
さらにいうとエクセルファイルにDBアクセス中にエクセルファイル書き換えると整合性が取れなくなる
別物をかましてるんだからエクセル同志でDB接続とは言えんだろ

771:デフォルトの名無しさん
20/11/05 13:45:53.52 eUwwuQR20.net
>>765
黙っていればいいのに

772:デフォルトの名無しさん
20/11/05 17:33:55.88 E/zWC4JEM.net
ODBC全否定の馬鹿がいる

773:デフォルトの名無しさん
20/11/05 18:57:09.85 hU6fY/MX0.net
凄く初歩的な質問ですいません。
VbaでEDGEを操作することは可能ですか?
可能ならIEで使っていたコードは使えるんでしょうか?

774:デフォルトの名無しさん
20/11/05 19:50:31.94 SbS9cEmY0.net
>>765
ただの屁理屈だそんなもん
ADOだのMSクエリ前提で話しているに決まってるだろうが
パソコンでテレビを見るには、チューナを外付けしないといけないから、
パソコンでテレビを見られるとは言えない、とか言ってるようなものだぞ。

775:デフォルトの名無しさん
20/11/05 19:55:08.43 f0srNcEJ0.net
それは見られるとは言えなくないかな

776:デフォルトの名無しさん
20/11/06 08:21:13.15 aBeRil+I0.net
いつものあいつって、最初はものすごく下手に出ておいて、希望した回答が得られないと態度が豹変するあいつ?

777:デフォルトの名無しさん
20/11/06 08:41:53.56 OISZDae80.net
元管理職の失業組だろ

778:デフォルトの名無しさん
20/11/07 18:11:38.24 6yLRlRLnd.net
VBAで業務の効率化ってさ
そもそもその会社の業務自体に無駄があるってことなんじゃないかと思う

779:デフォルトの名無しさん
20/11/07 20:19:13.66 ufTrf7Gx0.net
職場によるだろ

780:デフォルトの名無しさん
20/11/08 11:01:30.15 j+tA5MDCr.net
ipodを水槽にいれて泡がでたら無駄な隙間があるとか言う人いたな

781:デフォルトの名無しさん
20/11/08 19:42:01.52 T0G2ZKHSd.net
>>775
それ、Walkman

782:デフォルトの名無しさん
20/11/08 21:47:30.07 EFkAxVvD0.net
ジョブズじゃなかったんだな
そしてウォークマンでもなくてハンディカムのようだ
URLリンク(www.youtube.com)
このサイトから URLリンク(www.netlorechase.net)

783:デフォルトの名無しさん
20/11/08 23:24:57.18 FZ/N1P5c0.net
そうだったか

784:デフォルトの名無しさん
20/11/10 00:58:18.05 e7NaagA90.net
ExcelのM言語のMはマイクロソフトのM??

785:デフォルトの名無しさん
20/11/10 03:15:43.67 Zw48sTQ/M.net
M言語
M数式言語
M formula language
Mathemstics?

786:デフォルトの名無しさん
20/11/11 01:18:20.78 410+hQkP0.net
>>777
マジか。俺もジョブズだと思ってたわ

787:デフォルトの名無しさん
20/11/11 04:19:34.31 WkAepZ970.net
3つの整数をA1,B1,C1にいれるとE1に最大公約数を返すプログラムの作り方をforを用いてプログラムを教えてください

788:デフォルトの名無しさん
20/11/11 05:44:55.43 VHf4ZVdyd.net
>>782
まずVBEを起動するんだfor!
アルゴリズムを調べてコーディングするんだfor!
うまく動くかテストするんだfor!

789:デフォルトの名無しさん
20/11/11 07:39:17.89 8Vps9xVZF.net
関数だけでできそうだけど
そういう課題なのか

790:デフォルトの名無しさん
20/11/11 09:12:45.50 NzDVkmVe0.net
>>782
GCD関数使えよforw

791:デフォルトの名無しさん
20/11/11 10:48:02.91 Dk9c6JTy0.net
worksheetfunction.gcd

792:デフォルトの名無しさん
20/11/11 10:56:58.34 IB1GfatT0.net
>>782
最大公約数ってどうやって求めるか学校で習わなかった?

793:デフォルトの名無しさん
20/11/11 13:53:58.74 e2rtbcNbd.net
習った方法を使えっていう宿題でしょ

794:デフォルトの名無しさん
20/11/11 21:28:17.72 vTolfJQJ0.net
最大公約数ってなんだっけ

795:デフォルトの名無しさん
20/11/12 02:56:54.96 D//YL0tK0.net
Option Explicit
Sub a1tob1toc1nosaidaikouyakusuuwoe1ni()
  Dim i As Integer
  For i = 1 To 32766
    Range("E1").Value = Application.WorksheetFunction.Gcd(Range("A1"), Range("b1"), Range("c1"))
  Next
End Sub

796:デフォルトの名無しさん
20/11/12 09:09:00.81 ST9GqaMQx.net
integerは内部的にlongで

797:デフォルトの名無しさん
20/11/12 09:53:50.69 dLdd5MAGd.net
for文にするだけ時間の無駄でワロタ

798:デフォルトの名無しさん
20/11/12 10:00:33.57 PR3AJwPG0.net
>>789
URLリンク(ent.smt.docomo.ne.jp)

799:デフォルトの名無しさん
20/11/12 10:05:34.74 D//YL0tK0.net
「最大公約数的に言ってもさあ、チーズはトマトと合わないだろ」

800:デフォルトの名無しさん
20/11/12 10:12:44.88 3oP0YSbIM.net
URLリンク(ja.wikipedia.org)

801:デフォルトの名無しさん
20/11/12 12:26:30.98 jhXNMBL9d.net
>>790
E1のセルに穴が開いてしまいそう

802:デフォルトの名無しさん
20/11/12 13:00:21.74 Xe+3GA0qr.net
セルに穴が開くは草

803:デフォルトの名無しさん
20/11/12 13:14:40.95 0RDn4/V3a.net
実行時エラー
E1 セルに穴が空きました。

804:デフォルトの名無しさん
20/11/12 13:28:50.78 wc/lKUuCa.net
ソルバーって難しい?

805:デフォルトの名無しさん
20/11/13 10:02:25.42 LV0NFHn10.net
ザッパーを256発当ててもバキュラは壊れません

806:デフォルトの名無しさん
20/11/13 20:33:56.91 O1u/8jBw0.net
VBAでシフトJISファイルをEBCDICに変換するマクロ作ってみたわ。
URLリンク(tamajimu.sytes.net)
VBScriptのやつはあったけどVBAのがなくて移植しようと思ったら手こずってしまった。
もっといいやり方あるのかな?
ネット上にはVBAのやつがなかったので自分のを公開する。

807:デフォルトの名無しさん
20/11/13 22:57:57.42 BOglHVUm0.net
VBSで済むならVBSでいいんじゃない?

808:デフォルトの名無しさん
20/11/14 11:53:56.66 vG/wLc460.net
>>801
wikiに詳しく書いてあるのを読んで目的の動作をしたならそれでいいと思う

809:デフォルトの名無しさん
20/11/15 12:06:41.61 2IkUI34w0.net
昔VBで自作した覚えがあるなぁ
VBSの移植で、どこにどう手こずったんだろ
.NETのSystem.Text.Encoding使う手はどうだろうと考えたみたが
GetEncodingでエンコード取得するのがうまくいかんな
誰かこれうまいことやる方法しってる?

810:デフォルトの名無しさん
20/11/15 17:00:18.68 11DSlt/B0.net
無いと思うな
最悪、CreateObject("WScript.Shell")で逃げられるし

811:デフォルトの名無しさん
20/11/16 14:27:06.48 yPbGtyDu0.net
ウインドウ固定をスクロールに応じて動的に変えるにはどうすればいいですか?
例えば、最初は2018年の列が固定されていて、2019年の列までスクロールしたら、2018年の固定を解除して2019年の列を固定するように変えたいです。

812:デフォルトの名無しさん
20/11/18 17:51:40.71 kO5sqIUGM.net
>>773
残業代欲しくてわざとチンタラ仕事したり自分にしかわからないようにするのをVBAでどーにかするのは無理だわな。

813:デフォルトの名無しさん
20/11/20 19:59:25.75 eS+rN1Snr.net
shapes.count、chartobjects.countで数えても引っ掛からないグラフってどうしたら操作できますか?
そのグラフは隣シートを参照して自動的にできるものっぽいんですけど

814:デフォルトの名無しさん
20/11/20 20:06:15.76 4NTNOb8s0.net
リストボックスの検索結果をダブルクリックすると該当セルを選択するようなものを実現したいのですが
実行時エラー 13
型が一致しません
とでます
該当箇所は
.Range(.Cells(ListBox1.List(ListBox1.ListIndex, 0) + 1, 1), .Cells(ListBox1.List(ListBox1.ListIndex, 0) + 1, 13)).Select
です
恐らくネットからコピペして来たものなのでセルの選択が間違っているのかと思うのですが、このコードの意味がわかりません…
どう修正すればいいでしょうか
またどこがなんの意味を表しているのか教えてください
全文 URLリンク(writening.net)

815:デフォルトの名無しさん
20/11/20 20:13:05.23 4NTNOb8s0.net
全文 URLリンク(writening.net)
上げ直しました

816:デフォルトの名無しさん
20/11/20 21:26:13.24 u+DVE/AE0.net
なぜ中途半端にあげるかね?
いちいちコマンドボタンやらテキストボックスやらデータなんて
作ってられるかっちゅうの

817:デフォルトの名無しさん
20/11/20 21:38:29.90 YhokOqrJM.net
だっちゅーの!

818:デフォルトの名無しさん
20/11/20 22:41:32.48 D5mBkKKe0.net
いつもの人だからなぁ

819:デフォルトの名無しさん
20/11/21 02:17:04.68 Kfg2B/Kg0.net
一々ソース見てないけど
どうせ標準モジュールでちゃんとどのブック、どのシートと指定していないと決めつけていい?

820:デフォルトの名無しさん
20/11/21 02:48:01.11 sGgCeBQZ0.net
>>809
貼り付けミスしなんじゃないかな

821:デフォルトの名無しさん
20/11/21 06:39:44.77 Q7uFQ1A40.net
.Range(.Cells(略),.Cells(略))

Range(.Cells(略),.Cells(略))

822:デフォルトの名無しさん
20/11/21 13:47:07.56 NgQ98i5wM.net
Excel VBAでも証券会社(e立花証券)のAPIを操作できるのでしょうか?
ExcelのVBA以外やったことがなくpytonなどからAPIを動かしてる動画などはよく見かけるんですが

823:デフォルトの名無しさん
20/11/21 15:32:34.25 3xACDtrT0.net
またいつもの人か

824:デフォルトの名無しさん
20/11/21 18:28:17.03 P16HPZ2I0.net
JSONって書いてあるから出来るんじゃないかと思ってググったら、
トレードステーションスレとマルチしてるのが見つかったわwwww

825:デフォルトの名無しさん
20/11/22 02:36:45.00 xXy7jV1TM.net
人に聞きまくるだけのクズ

826:デフォルトの名無しさん
20/11/24 19:01:29.52 IcwWHa740.net
クズは悪意のあるマクロとか平気で作るからな

827:デフォルトの名無しさん
20/11/29 03:39:08.87 zPhy879P0.net
ExcelでADOを使ってcsvを取り込む前に、
①csvの1行目を削除

②csvの特定の列の1行目(①の前は2行目)の文字を修正
これを自動化するにはどうしたらいいですか?
業務システムから出力されたcsvをExcelに取り込む作業があるのだけど、
1行目に邪魔な出力日時が出てきてこれを消さないとADO+SQLのselect文で2行目のフィールド名を使えません
あとフィールド名に一部重複があるので、
例えば「日付」→「日付2」に修正した上で取り込みたいです

828:デフォルトの名無しさん
20/11/29 06:51:19.70 FO1CPqk3M.net
データとして読み込む前に、一行目棄てる、フィールド名変える処理したテンポラリファイルを作る。

829:デフォルトの名無しさん
20/11/29 09:01:56.95 Kj8zNz7J0.net
ああ、俺もそういうカスみたいなCSVに当たったことあるわ。
何のためのCSVだボケって言いたくなるような。
最初に1行だけテキスト読み込みして日付を調べておいて、
SELECT [出力日:2020/11/29] AS 商品コード
      F2 AS 商品名
      F3 AS 単価
      F4 AS 数量
WHERE 商品コード <> '商品コード'
とか無理矢理やるわwww

830:デフォルトの名無しさん
20/11/29 09:12:18.87 sYtQed9+0.net
フィールド名に重複とかどんな出力したんや。。Excelからくらいだろそんなの

831:デフォルトの名無しさん
20/11/29 09:20:35.18 Kj8zNz7J0.net
CMやってるような有名なシステムでも、そういうアホな出力あるよ
あとカンマ入れるとそのまま出てきて1列ずれるとか

832:デフォルトの名無しさん
20/11/29 09:47:04.02 GxGIo6I2d.net
アホかねえ。
別にそんなのどうとでもなるから不満にもならんな。

833:デフォルトの名無しさん
20/11/29 10:21:13.40 cY0oCL3I0.net
>>823
できました!
csvの取り込み方を工夫するのではなく、
tmpシートを新たに用意してそこに読み込ませて加工、
今度は今までのコードの接続先をcsvではなくtmpシートに変えてなんとかなりました
>>824
作った業者がアホなのか依頼した会社がアホなのかわかりませんが、
例えば商品コード的なものも正式表記と略号表記があって、
どちらも同じ「商品コード」というフィールド名になってたりします

834:デフォルトの名無しさん
20/11/29 19:32:45.82 0shL7X0+0.net
前々スレくらいで乱数発生教えてくれた人
今でも本当にありがとうと感謝してる
仕事で役立ちすぎて凄いわ
ある範囲を元に乱数発生させるがその数値は変化をさせないジレンマのあるようななるほどと思わせる構文ですね
と言われたわ

835:デフォルトの名無しさん
20/11/29 20:57:17.58 IKbaIR8zM.net
元スレ読んでないけど仕事で乱数使うの?

836:デフォルトの名無しさん
20/11/30 03:02:50.68 sOcEfqne0.net
ちょっと前にランダムなデータを提出する謎仕事の質問があったなあ
VBA化したら一瞬で終わるようになって事務員がクビになったとか、そんな話

837:デフォルトの名無しさん
20/11/30 08:57:41.49 xTe8QWkix.net
んん??
ランダムなデータを手作業で作るの?
かなり偏り出そうな…

838:デフォルトの名無しさん
20/11/30 11:41:47.50 iR+tWSWoM.net
データ数が有限だと、それが本物の乱数なのか人工的な物なのか判断する方法は存在しないんだよね
どんな数字列でも無限にある乱数列のどこかに存在するってのが本来の乱数の性質だから

839:デフォルトの名無しさん
20/11/30 12:10:12.72 Jnj49cs/M.net
仕様書の範囲内でバラけた成績を印刷するお仕事

840:デフォルトの名無しさん
20/11/30 13:26:59.23 owcTZSsV0.net
無限のデータって何よw
あったとして、お前それ仕事で扱うの?www

841:デフォルトの名無しさん
20/11/30 20:42:38.07 ocjeHolz0.net
無限発射編と言っても実際には無限じゃないしな
本当に無限発射すると宇宙がヤバイ

842:デフォルトの名無しさん
20/11/30 23:51:07.47 14M55Ual0.net
毎日出力される日報の各数値を手打ち入力とかよくあるわな
そんな無駄な作業専門で雇われている人、無駄ともおもわず人件費払っている企業
なんて古き良き日本にいくらでもあるわな

843:デフォルトの名無しさん
20/12/01 01:02:20.49 KOqkaYUf0.net
夢幻には続かないだろ。
人類がドンナニ存続したところで地球が太陽に飲み込まれたところで終わり。
はい。どこが無限?
無限舐めてんの?

844:デフォルトの名無しさん
20/12/01 13:40:24.29 ONuiiYDb0.net
設計書のヘッダー全部オブジェクトにしたやつなんなんだよ
頭わいてんのか

845:デフォルトの名無しさん
20/12/01 15:04:54.04 5apuVehDa.net
許可とって修正すればいいのに

846:デフォルトの名無しさん
20/12/01 15:57:24.69 vDY3LCcWa.net
本文と共通ヘッダーの構成があわないからオブジェクトで無理くりヘッダー作ってたりするんだよな
うちにもそういうのあるわ

847:デフォルトの名無しさん
20/12/02 18:57:34.84 EOzgXD7Pr.net
すいません、全くvbaについて無知なのですが、A2セルに入力した数字を、A3セルに=A2にて反映させてます。A2セルに続けて数字を入力した時に、A3セルの数値は、続けて入力した値になると思うのですが、入力した内容を上書きせず、A4.A5.A6...と、下のセルに移動させることは可能ですか?また、その数値も自動的に小さいものから並び替えできるでしょうか?


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch