Excel VBA 質問スレ Part77 at TECH
[2ch|▼Menu]
[前50を表示]
550:デフォルトの名無しさん
22/09/08 13:19:53.66 E2yDW5TJ0.net
Wordがどうしようもなく使いにくいので、
Excel VBAで代わりのツールを作りたいと思います。
こんな考え方は邪道でしょうか?

551:デフォルトの名無しさん
22/09/08 13:50:27.43 N6XG++JQ0.net
WordVBAを何故つかわない?
マウロ記録がないOutlookVBAやPowerpointVBAなら一瞬気持ちがわかるが

552:デフォルトの名無しさん
22/09/08 14:17:07.18 Sm7a3fWy0.net
loopのカウンタを使用後に消さないと
順番入れ替えたらバグるとか気にする初心者にはvba向いてないと思う

553:デフォルトの名無しさん
22/09/08 16:06:28.64 e4Jhfn6X0.net
ワードにできることはエクセルでほぼ出来るからワードの使いかた忘れてしもた
しかし困ったことはない

554:デフォルトの名無しさん
22/09/08 17:02:48.44 dSUuwrfW0.net
>>548
> 全部纏めて同じ位置にあった方が「この変数はこのシチュエーションのときにこう言った意味で使う」とか命名し易いじゃん。
コボル臭が... w
まあ使ってる近くにあれば宣言なども簡単に確認できるメリットより命名のメリットを重視する人もいるんだね
> 使ってる変数名を再宣言しようとして「あ」となる
んだから
> 同じ変数をバカみたいに使い回して本当は値変えると不味かったのに変えちゃったりとかアホなことも減るよ。
なんてなるわけないと思うけど?

555:デフォルトの名無しさん
22/09/08 19:47:18.35 wUuMBq/Ad.net
Excel → Markdown → Word アウトライン変換のマクロを作れば大分マトモになる予感
Excelの列で見出しを識別する感じで

556:デフォルトの名無しさん
22/09/10 00:50:29.07 yQKHhevv0.net
intersect( activecell.ListObject.HeaderRowRange,activecell.EntireColumn).Address
テーブル上にアクティブセルがあり、そのセルの列ラベルのアドレスを調べたく
こんなのを書いたのですが、もっと他にイケてる書き方はないでしょうか

557:デフォルトの名無しさん
22/09/10 10:48:25.59 +u60WJ7w0.net
activeCell.End(xlUp).Address は?
上に隣接する別のテーブルがないことが条件だけど

558:デフォルトの名無しさん
22/09/10 15:51:20.36 qRafw5tCp.net
>>557
それだとテーブルが1行目開始でなくて
テーブルの項目名の部分にアクティブセルがあった場合は
テーブルから離れた位置にカーソルが行ってしまうな

559:デフォルトの名無しさん
22/09/11 01:14:19.08 W9G67fQJ0.net
バイナリデータの書き込みについて質問です。
hello という文字列をいったんバイナリにしてファイル書き込みするような
プログラムを書いているのですが、書き込みすると
h e l l o
というように変なゴミが入ってきます。
vbaではバイナリデータの書き込みは完全にはできないということなのでしょうか。
該当コード
URLリンク(ideone.com)

560:デフォルトの名無しさん
22/09/11 01:15:18.73 W9G67fQJ0.net
書き込みすると変なゴミデータが見えなくなってしまいましたが、要するに
正確に半角英数字でhelloという文字が再現できないのです。

561:デフォルトの名無しさん
22/09/11 01:27:32.82 PnV//sAoa.net
>>560
どういう内容なのかダンプして確認しないのかい?

562:デフォルトの名無しさん
22/09/11 01:41:57.90 yPB6Wd0g0.net
>>559
Option Explicit
Sub main()
  Dim bs(4) As Byte
  bs(0) = Asc("h")
  bs(1) = Asc("e")
  bs(2) = Asc("l")
  bs(3) = Asc("l")
  bs(4) = Asc("o")
  Dim fn As Integer: fn = FreeFile
  Dim fpath As String: fpath = "C:\指定のパス\output.txt"
  Open fpath For Binary As #fn Len = 1
  Dim i As Integer
  For i = LBound(bs) To UBound(bs)
    Put #fn, , bs(i)
  Next i
  Close #fn
End Sub

563:559
22/09/11 01:50:58.58 W9G67fQJ0.net
>>562
for each で受ける変数をvariant型にするとうまくいかんということですか?
open の変数にLen=1(1バイトごと)っていれられるんですね。

564:デフォルトの名無しさん
22/09/11 01:53:10.28 yv0WXRwp0.net
>>559
説明はちゃんと読もう
vbaはかなりゆるゆる言語なので、なるべくvbaにあわせたコードにしたほうがいい
URLリンク(docs.microsoft.com)
>書き込まれる変数が 数値型の Variant である場合は、Put により、Variant の VarType を識別する 2 バイトが書き込まれた後に、変数が書き込まれます。
こんなもん追いかけてられんよ
ステートメントは極力使わず、関数にした方がいいと思う
もう少し言うと、実現したい事を直接聞いた方がいい。
vbaでバイナリとかめんどくさすぎて誰もやってないので、
できるかどうかなんてあんまりみんな分かってない
>>561
してもあんま意味ないだろ

565:デフォルトの名無しさん
22/09/11 02:05:46.07 yPB6Wd0g0.net
>>563
Len = 1 にしても無駄
あと、EachはVariantしか使えない
>>564
ところがバイナリダンプしてみると1文字あたり2バイトしか書き込まれてないんだよな
その説明の通りだと3バイトずつ書き込まれるはずなのに

566:デフォルトの名無しさん
22/09/11 02:07:03.03 W5Eoe6lQa.net
>>564
今回はもう結果が出ているけれど、入出力を行ったら確認しないのか?
出力結果から意図するものとどう異なるかによって予測できる場合もあるだろ

567:559
22/09/11 02:11:34.10 W9G67fQJ0.net
>>564
正直説明一々読むの大変なのでここで聞いてそのあたりをつけようと思ってます。
>ステートメントは極力使わず、関数にした方がいいと思う
ちょっとここがよくわからないんですがどういうことですか。
>もう少し言うと、実現したい事を直接聞いた方がいい。
vbaの練習のためにとりあえずbase64エンコーディングを実装しようとしてました。
エンコーディングはできました。デコードでつまづいて格闘してましたが、デコードもとりあえずできました。
つぎは、bmpファイルを読み込んで1x1pixcelに縦横絞ったセルのシートに画像表示させるとか
やろうと思ってます。

568:デフォルトの名無しさん
22/09/11 02:12:49.77 yv0WXRwp0.net
>>565
3バイトずつだぞ
URLリンク(i.imgur.com)

569:デフォルトの名無しさん
22/09/11 02:19:41.47 yv0WXRwp0.net
>>567
結局やりたいことはライフゲームとか、画像処理だろう
vbaは、事務処理特化なんだ。本当にやめたほうがいい。
vbaでクリエイティブな事をやろうとすると、めちゃくちゃ遅い
入出力用のセルがすごく見やすいのはわかるんだけど、別言語でやったほうがいい
具体的に言うとC#かvb.netがいい。
jsならそのままアプリにも移行できる

570:559
22/09/11 02:24:11.91 W9G67fQJ0.net
とりあえず入門したいんで、アルゴリズムわかるやつ実装してるだけなんであんま考えてない。
最終的には機械学習実装できりゃいいなと思ってるんで、bitmap表示実装できたら
vbaでそこまでやるレベルになるかなと。

571:デフォルトの名無しさん
22/09/11 02:44:48.34 +Dglx5gI0.net
vbaの使い方間違ってますよ

572:デフォルトの名無しさん
22/09/11 11:47:30.27 scHPWuyOa.net
他人が何をやろうと勝手なんだから質問にこたえないなら放置すればいいと思うけど
説教野郎って減らないよね

573:デフォルトの名無しさん
22/09/11 13:01:03.57 qfkrXmQcd.net
>>567
>正直説明一々読むの大変なのでここで聞いてそのあたりをつけようと思ってます
死ね

574:デフォルトの名無しさん
22/09/11 13:48:26.08 4omWB5g70.net
いや、普通に頭くるだろ?
ダメダメな使い方してると

575:デフォルトの名無しさん
22/09/11 17:18:35.58 9MrulJbSd.net
>>569
ライフゲームってなんなのかグーグルで検索したら
結果ページ上で勝手にライフゲームが始まってたわ
さすがグーグル

576:デフォルトの名無しさん
22/09/11 18:42:32.58 +bJdyqft0.net
>>575
気づいたときにはライフがゲームオーバーになってるよ

577:デフォルトの名無しさん
22/09/11 20:43:41.22 yPB6Wd0g0.net
本当だ
ブラウザの背景でライフゲームが動いてるw
無駄な機能多すぎるだろGoogle

578:デフォルトの名無しさん
22/09/11 22:06:38.09 mrmcBHlY0.net
URLリンク(excel-ubara.com)
エクセルの神髄さんのところにあるクイックソートの引数について質問です
lngMinとlngMaxを必ず指定しないといけないようなのですが、
どんな数字を入れればいいのですか?
 vBase = argAry(Int((lngMin + lngMax) / 2))
こうなっていて、argAryインデックスの2倍を超える数値は入れられないようです。
インデックスとしての真ん中であるなら関数側でuboundとかlboundとかから計算すればいいように思いました。
バブルソートやインサートソートと違ってイマイチやってる事がわからないので、
lngMinとlngMaxの引数にいれるべき数値がわかる方おられましたら教えてください。

579:デフォルトの名無しさん
22/09/11 22:37:51.72 3GTYFVAp0.net
>>578
配列のうちでどこをソートするか指定できるようになってるんじゃないですかね

580:デフォルトの名無しさん
22/09/11 22:42:49.09 6zTUjY+M0.net
>>578
ソートしたいレンジの最初と最後のインデックス
クイックソートは最初にピボットを決めてそれより小さいものをピボットより前に、大きいものをピボットの後ろに移動して、ピボットの前の区間と後ろの区間をそれぞれクイックソートする方法を繰り返す
ピボットの決め方は色々あるけど、その人は配列の真ん中のオブジェクトを選んでるだけ。ランダムに選ぶと平均的には最も良い結果が得られるけど、もうひと手間かかる

581:デフォルトの名無しさん
22/09/12 01:30:49.61 0s0pxnwOM.net
ユーザーフォーム内のコマンドボタンではfunctionの呼び出しはできない仕様でしょうか?
似たようなコードのボタンがあり、特定ブックを取得するための同じコードを全部のボタンに書いています
ごちゃごちゃしてしまっているのできれいにしたかったのですが、functionが呼び出せず変数が空でエラーになってしまいます

582:デフォルトの名無しさん
22/09/12 07:39:53.33 STPpGgy+0.net
>>581
呼び出し出来るよ。そのエラーになったコードをここに書いてもらえれば原因がわかるかと。

583:デフォルトの名無しさん
22/09/12 11:53:11.04 fWVKyvtQa.net
sub から呼ぶとか

584:578
22/09/13 09:42:49.11 g8hgly2P0.net
>>579
やってみたら確かに!驚きです。
>>580
クイックソートって発明品みたいなものですよね。
人間が手動で並べ替えても慣れる程にクイックソートみたいなやり方が高速になっていくんですかね。
皆さんありがとうございました。

585:デフォルトの名無しさん
22/09/13 10:05:15.02 kJFB2T9s0.net
いえいえ

586:デフォルトの名無しさん
22/09/13 23:06:23.52 m4C/g6mCM.net
>>582
フォームが3階層くらいありますが
1.モジュールからフォームの呼び出し
Sub commentForm()
rowBtn = ActiveSheet.Shapes(Application.Caller).TopLeftCell.Row
colBtn = ActiveSheet.Shapes(Application.Caller).TopLeftCell.Column
大分類.Show vbModeless
End Sub

587:デフォルトの名無しさん
22/09/13 23:09:43.50 m4C/g6mCM.net
すみません、1つ目フォーム呼び出しのモジュール内に以下のコードがあります
Public ShIndex As String
2階層目で3つの大分類の選択
2.分類選択
Private Sub CommandButton1_Click()
'コマンドボタンのタイトル反映 ※エクセルのセルを反映させています。
中分類.CommandButton1.Caption = Worksheets("2-1").Range("C1").Text
中分類.CommandButton2.Caption = Worksheets("2-2").Range("C1").Text
中分類.CommandButton3.Caption = Worksheets("2-3").Range("C1").Text
中分類.CommandButton4.Caption = Worksheets("2-4").Range("C1").Text
中分類.CommandButton5.Caption = Worksheets("2-5").Range("C1").Text
中分類.Show vbModeless
End Sub

588:デフォルトの名無しさん
22/09/13 23:11:31.11 m4C/g6mCM.net
3.さらに次の分類へ
Private Sub CommandButton1_Click()
ShIndex = "2-1"
'コマンドボタンのタイトル反映 ※エクセルのセルを反映させています。
中分類1.Caption = Worksheets(ShIndex).Range("C3").Value
中分類1.CommandButton1.Caption = Worksheets(ShIndex).Range("D3").Value
中分類1.CommandButton2.Caption = Worksheets(ShIndex).Range("D7").Value
中分類1.CommandButton3.Caption = Worksheets(ShIndex).Range("D11").Value
中分類1.CommandButton4.Caption = Worksheets(ShIndex).Range("D15").Value
中分類1.Show vbModeless
End Sub

589:デフォルトの名無しさん
22/09/13 23:36:32.69 m4C/g6mCM.net
4,最終の選択ボタン
コメントアウトの範囲内をfunction(wbSerch)として、値を返して変数を使用したいです
Private Sub CommandButton1_Click()
Dim wbRepName As String
'########## ここから ##########
Dim i As Long
Dim wb As Workbook
Dim wbFullPath As String
For i = 1 To Workbooks.Count
Set wb = Workbooks(i)
If wb.FullName Like "*検索ワード*" Then ' * *に挟まれた文字を含むブックを検索する
wbFullPath = wb.FullName
Exit For
End If
Next
Dim pos As Long
pos = InStrRev(wbFullPath, "\")
If (pos > 0) Then
wbRepName = Right(wbFullPath, Len(wbFullPath) - pos)
End If
'########## ここまで ##########
Dim rowRep As Long
rowRep = Worksheets("シート名").Cells(rowButton, "Q").Value
Dim num As Long
num = 1
If Workbooks(wbRepName).ActiveSheet.Cells(rowRep + 1, "H") = "" Then
Workbooks(wbRepName).ActiveSheet.Range(Workbooks(wbRepName).ActiveSheet.Cells(rowRep + 1, "H"), Workbooks(wbRepName).ActiveSheet.Cells(rowRep + 2, "H")) = _
Worksheets(ShIndex).Range(Worksheets(ShIndex).Cells(3 + (num - 1) * 4, "E"), Worksheets(ShIndex).Cells(3 + (num - 1) * 4 + 1, "E")).Value
End If
Workbooks(wbRepName).ActiveSheet.Range(Workbooks(wbRepName).ActiveSheet.Cells(rowRep + 4, "H"), Workbooks(wbRepName).ActiveSheet.Cells(rowRep + 7, "H")) = _
Worksheets(ShIndex).Range(Worksheets(ShIndex).Cells(3 + (num - 1) * 4, "F"), Worksheets(ShIndex).Cells(3 + (num - 1) * 4 + 3, "F")).Value
End Sub

590:デフォルトの名無しさん
22/09/13 23:37:53.43 m4C/g6mCM.net
コードをアップする際に一部書き換えで変数が微妙に違うのは許してくださいw

591:デフォルトの名無しさん
22/09/14 01:24:17.40 jzWlgqKP0.net
>>589
大量のコード張るなら、どっかコード張るサイトあるからそこ使ってくれ
>コメントアウトの範囲内をfunction(wbSerch)として、値を返して変数を使用したいです
やれば良いとしか
自分でやって動かなかったっていうコード出せよ
エラーが出たならエラー内容も
Functionが呼び出されないんじゃなくて、呼び出したけど値を返してないか
返された値をちゃんと受け取ってないんじゃないかと予想したがな

592:デフォルトの名無しさん
22/09/14 05:04:23.30 Pxkwm+eH0.net
>>589
色々気になるところばかりですが、Functionだけについていうと
Public Function プロシージャ名() As String
'処理
プロシージャ名 = ファンクション内で作成した文字列
End Function
という感じで作って、呼び出す側は下記で
wbRepName = ファンクション名

593:デフォルトの名無しさん
22/09/14 08:09:29.31 wHV8fEyKd.net
>>592
ありがとうございます
やっぱりそれでいいんですよね
とりあえず動かないのは困るので、関数を呼び出すコードは削除してしまったのでまたやり直してみます
適当にネットで検索して継ぎはぎしているのですが、これはやめた方がいいみたいなところがあれば教えていただけると

594:デフォルトの名無しさん
22/09/14 08:09:41.99 wHV8fEyKd.net
>>592
ありがとうございます
やっぱりそれでいいんですよね
とりあえず動かないのは困るので、関数を呼び出すコードは削除してしまったのでまたやり直してみます
適当にネットで検索して継ぎはぎしているのですが、これはやめた方がいいみたいなところがあれば教えていただけると

595:デフォルトの名無しさん
22/09/14 10:47:45.73 DQiHAQaU0.net
>>594
ネットで継ぎはぎはやめたほうがいい

596:デフォルトの名無しさん
22/09/14 14:30:03.63 AS+oyxbj0.net
継ぎはぎっていちばんやってはダメな事でしょ
不具合でたら修正困難

597:デフォルトの名無しさん (スプッッ Sd0a-JgIN)
[ここ壊れてます] .net
>>594
お前みたいな奴がVBAを使うのはやめた方がいい

598:デフォルトの名無しさん (ブーイモ MM3e-lqbG)
[ここ壊れてます] .net
それな

599:デフォルトの名無しさん (アウアウウー Sa21-bmfI)
[ここ壊れてます] .net
ネットの情報をうのみにするのはよくない

600:デフォルトの名無しさん
22/09/14 15:23:36.39 mWSu9Hj1M.net
特にここの奴らの言うことなど……

601:デフォルトの名無しさん
22/09/14 16:32:30.56 AS+oyxbj0.net
このスレも含めてネットをなんでもかんでも鵜呑みにしないように。

602:デフォルトの名無しさん
22/09/14 20:19:10.06 qlFB5bFT0.net
むしろガンガンコードのコピーでも継ぎはぎだらけでも何でもやれ
それで痛い目を見れば二度とやらなくなるだろう
ただし、他の人に迷惑を掛けない範囲でな

603:デフォルトの名無しさん
22/09/14 20:25:13.51 tyPb8uvVM.net
継ぎ接ぎでもなんでも動きゃいいよVBAなんて

604:デフォルトの名無しさん
22/09/14 22:09:32.51 LR6kMMNU0.net
どんなにひどいコードを書こうが仕事は結果がすべて
過程を見て部分点がもらえるのは高校まで

605:デフォルトの名無しさん
22/09/14 23:32:37.08 XFOFR3Sy0.net
ひどいコード書いて、エクセルに殴られたら嫌だなあ

606:デフォルトの名無しさん
22/09/15 02:24:16.54 mZ1kOEzbd.net
>>604
馬鹿はメンテナンスのことを考えない
こういう馬鹿がいるからVBAが禁止の会社が出てくる

607:デフォルトの名無しさん
22/09/15 07:02:34.29 K2oLP0MfM.net
と、馬鹿が申しております。

608:デフォルトの名無しさん
22/09/15 07:47:29.25 p0uH79QOd.net
VBA禁止はメンテがどうのこうのじゃなくて
スキルが低い人間が酷い結果をもたらすコードを書いてしまうからじゃね
下手に書くと他人の労働の成果が一瞬にして無に帰すからね

609:デフォルトの名無しさん
22/09/15 08:13:47.40 V+/rW9Cpd.net
そもそもエクセル側でVBA使ってごちゃごちゃやる職場がセンス無い
エンジニアが管理画面を作ってVBAでやってた処理をそっちでやって、事務系の人は管理画面からcsvを落としてそれをまんま使うぐらいが良い

610:デフォルトの名無しさん
22/09/15 08:15:36.60 HISUe1p20.net
ほいきたばーかばーか

611:デフォルトの名無しさん
22/09/15 08:16:33.94 HISUe1p20.net
CSVって発想がだめだね
プロは引用符も不要になるTSVを使う
うんこ

612:デフォルトの名無しさん
22/09/15 08:20:49.72 tsRCCw+k0.net
いや事務員にはcsvがちょうどいいよ
tsv開けませ~んとか言われるだけ
もっと目線を合わせろ技術キモオタ

613:デフォルトの名無しさん
22/09/15 10:16:19.88 HISUe1p20.net
TSVはメモ帳で開いて全選択のコピペでシートに貼り付けできるんだよ
見事に馬鹿が露呈したな

614:デフォルトの名無しさん
22/09/15 11:34:27.47 9BPOZrDw0.net
いやいや
そこは用途に合わせようよ
PDFやEXCEL出力した場合が良い場合もあるよ

615:デフォルトの名無しさん
22/09/15 14:52:36.98 5XNYG1220.net
なんで事務員がエラーの対処法を知らないんだよ。。
毎日いじってるから一通りの対応はできるだろ?

616:デフォルトの名無しさん
22/09/15 16:19:16.15 9BPOZrDw0.net
エラーの対処法「システム部にお問合せ下さい。」

617:デフォルトの名無しさん
22/09/15 19:11:05.38 5XNYG1220.net
そんなのExcelできる事務員じゃないわ!

618:デフォルトの名無しさん
22/09/15 19:27:19.21 2CSrOwDy0.net
最低限のことしかできないって人結構いるけどな

619:デフォルトの名無しさん
22/09/15 19:44:47.37 bsuDXGPV0.net
ボタン押してるだけの事務いるいる。

620:デフォルトの名無しさん
22/09/15 20:05:30.90 /Qo8z/Hb0.net
ボタンの押し方で仕上がりが変わる。
優秀な事務員はボタンの押し方が素晴らしい。
日本の技術は世界一。

621:デフォルトの名無しさん
22/09/15 20:17:03.66 QyIKtajFH.net
>>608
いいえ、コードは汚いしドキュメントを残さないので、便利であってもレガシーとなってしまうからですよ

622:デフォルトの名無しさん
22/09/15 22:23:17.31 5XNYG1220.net
事務員=Excelを極めている

623:デフォルトの名無しさん
22/09/15 22:31:56.27 QsPmWhIy0.net
VBA のファイル・テキスト処理などは、Ruby に比べて、圧倒的に可読性が悪い。
作った瞬間から、修正できない産業廃棄物となるw
だから、常に廃棄して新規開発しているw

624:デフォルトの名無しさん
22/09/16 00:12:03.43 vQLtnuER0.net
VBAで複雑なものを作ろうという思考がおかしい
適当に組んで動きゃいい程度のスクリプトだろ

625:デフォルトの名無しさん (ワッチョイ 5d79-VPVD)
[ここ壊れてます] .net
VBAに飽きたらVBSがいいよ
VBAの枷から開放される

626:デフォルトの名無しさん (スッププ Sd0a-vfPx)
[ここ壊れてます] .net
>>621
いいえ、レガシーとなることの問題は認めるけど、それは禁止になる理由とはならないわ

627:デフォルトの名無しさん
22/09/16 02:37:02.68 l4bz3k9Q0.net
他人がどんなに良いコードを書いてあろうが、容赦無く切り捨ててイチから書き直すのがプログラマーだと聞いたからよ

628:デフォルトの名無しさん
22/09/16 04:32:30.78 UN95gjXqd.net
>>627
他人から聞いたことを鵜呑みにする馬鹿

629:デフォルトの名無しさん
22/09/16 09:26:48.43 jiIjsvyj0.net
そもそもなんだけど
どんなPG言語使ったって綺麗に書く人は綺麗に書くし
ぐちゃぐちゃにする人はぐちゃぐちゃにする

630:デフォルトの名無しさん
22/09/16 11:41:36.71 eDTruZ7Ya.net
だからほっとけばいい
自分の担当部分だけ直す

631:デフォルトの名無しさん
22/09/16 13:52:21.47 Zuqq5jJMd.net
自分の書くコードと自分に影響する人が書くだけ気にすればいいのに
無関係の人が書くコードなんてきたなかろうがどうでもいいのにな

632:デフォルトの名無しさん
22/09/16 20:53:11.37 IL7FnXUn0.net
>>627
プログラマーはプログラムを書く人だし、設計すればエンジニアだし、営業や事務処理をすることもあるよ
会社員ならわかると思うが他人のコードは他人の給料、自分のコードは自分の給料になるってわかるよね?

633:デフォルトの名無しさん
22/09/17 00:16:02.34 lfSciaka0.net
ならねぇよ。
コード書くだけで給料貰えるとかいつの時代だよ?

634:デフォルトの名無しさん (スップ Sd3f-w3i5)
[ここ壊れてます] .net
下請けの下請けのそのまた下請けの派遣だろ

635:デフォルトの名無しさん
22/09/17 14:40:46.13 P15Vbqti0.net
書けないでコピペするやつのひがみw

636:デフォルトの名無しさん
22/09/17 16:20:56.81 93E6/MjHa.net
コピペばかりのヤツってある意味恥ずかしく無いのかや?
知識ありませーん!
あるのはコピペのスキルだけです!
と、言っているようなモノだぜ。

637:デフォルトの名無しさん
22/09/17 18:06:13.42 T834+5z1M.net
コピペを極めるとオブジェクト指向になるのかもしれんな

638:デフォルトの名無しさん
22/09/17 20:26:19.25 eUUvOszSM.net
オブジェクト指向って奥深いな

639:デフォルトの名無しさん
22/09/17 20:30:59.86 P15Vbqti0.net
コードのコピーじゃなくアプリをコピーして販売したら違法だからな

640:デフォルトの名無しさん
22/09/17 20:39:13.29 lfSciaka0.net
でも現実はコピペ野良マクロ職人が各職場に溢れているんでしょ?

641:デフォルトの名無しさん
22/09/17 21:30:27.81 c/Rfax+qa.net
何もかもは覚えられんからそりゃみんな多少はコピペするでしょな。
問題はちゃんと意味わかって使いこなして、修正や変更の対処ができるかどうか。

642:デフォルトの名無しさん
22/09/17 21:33:47.44 VC1vunq70.net
アマチュアはコピペと卑下するけど
プロは既存コードの利用と言って車輪の再発見で悦んでいる給料泥棒はクビにする
って誰かが言ってた

643:デフォルトの名無しさん
22/09/17 23:02:08.58 Q8wI91eUd.net
>>642
参考にするのとコピペは違う
お前、>>627の馬鹿だろ

644:デフォルトの名無しさん
22/09/17 23:46:26.93 lfSciaka0.net
>>643
そうやってすぐ他人と同一人物と決めつけるヤツの方が余程バカだと思うけどな。
あ、思い込み癖のある病気かゴメンゴメン。

645:デフォルトの名無しさん
22/09/18 05:37:23.90 kct9LvbO0.net
とあるアルゴリズムはコピペして使ったな

646:デフォルトの名無しさん
22/09/18 06:53:23.17 6BtvF8DRa.net
アルゴリズムは脳内コピペで使ってる
でないと例えばクイックソートなんて一生思いつかんし

647:デフォルトの名無しさん
22/09/18 08:41:21.39 flQCTRcU0.net
参考という意味でならコピペすることはあるね。
訳も分からずただ貼り付けて使うのは論外だと思うけど。

648:デフォルトの名無しさん
22/09/18 10:16:08.09 Nn59gXvs0.net
gitやらスニペットやらの今時機能たちを使う試みはよく見ますが
皆さんはどうされていますか

649:デフォルトの名無しさん
22/09/18 10:25:50.10 XVqHa/Kgd.net
>>648
VBAの使用を必要最小限に留める

650:デフォルトの名無しさん
22/09/18 11:33:12.72 Nkc7aKdEd.net
回答の出なくていい話題ばかりでレスが増えてうんざりだな

651:デフォルトの名無しさん
22/09/18 13:38:06.64 KpBP36NGa.net
VBAはオワコン
excelもオワプリ

652:デフォルトの名無しさん
22/09/18 13:39:06.35 RKuP+gWA0.net
>>650
そして一番の問題はそれなのにお前が来て文句を書きなぐることか

653:デフォルトの名無しさん
22/09/18 15:31:19.98 umLTL+l4M.net
>>651
代替ソフトは?

654:デフォルトの名無しさん
22/09/18 16:13:20.55 wwX2JCe10.net
VBAと他言語できる人にしつもん
今までVBAしか知らなくていま他言語勉強してます
VBAだったらエクセルのシートに書いとけば良かったデータとか
一体どこに書いとけばいいのかしら
プログラム内の配列とかじゃ電源切ったら消えちゃうでしょう
やっぱデータベースソフトとか別にいるの?
言語はPythonとC
記録したいのは株価の過去データとかです

655:654
22/09/18 16:25:19.20 wwX2JCe10.net
ちなみにSQLとかあるのは知ってますが
数千行程度のデータでもそんなの使わなくちゃいけないのでしょうか
また別に勉強しなくちゃなんないし、面倒くさい
もっと楽な方法ないもんかと(´・ω・`)

656:デフォルトの名無しさん
22/09/18 16:34:05.92 K8Zbj7cX0.net
データベースの導入が敷居が高く億劫と思うのならば
Pythonから慣れているexcelファイルを操作すればよい
そしてプログラムを組んでいるうちにいろいろ面倒で非効率である感じ
データベースの素晴らしさに気づいたときにデータベースを始めればよい
確かにpythonとデータベースを同時に学習するのは大変だよね

657:デフォルトの名無しさん
22/09/18 16:45:16.35 aJoH8T5Ea.net
>>655
> もっと楽な方法ないもんかと(´・ω・`)
はい、解散!

658:デフォルトの名無しさん
22/09/18 16:46:45.71 Ufv82Dax0.net
>>654
VBAで作ったのをGoogleスプレッドシートに移行しつつある。
シートを複数人で同時参照できるとかメリットも多い。

659:デフォルトの名無しさん
22/09/18 16:47:16.95 si+E4x/dd.net
csv,tsv,xml,データベースとか色々あるだろ
そういうのが難しいと思うならやめとけ

660:デフォルトの名無しさん
22/09/18 17:54:45.16 69Jy4am90.net
>>654
Python のオブジェクトとしてデータがもう手元にあるなら pickle でそのままディスクに残せる。もしくは csv か json に出力するか
データベースでもsqliteならサーバー立てる必要もない

661:デフォルトの名無しさん
22/09/18 17:57:42.22 qB0Seojna.net
>>651
そう
そしてお前らもここも終わり
~終了~

662:デフォルトの名無しさん
22/09/18 18:49:48.79 Nkc7aKdEd.net
>>654
「とか」に何が含まれるかしらんけどその程度のデータならDBなんて使わなくても
今まで通りExcelブックでもいいし、テキストファイルでもなんでもいいのでは
今時の言語(ツール)ならそれぞれのデータにアクセスするライブラリもあるから
質問にある内容だけなら言語なんてなに使っても問題ない
>>655
自分ができる中で楽な方法を探すならまだしもできないことだらけで楽な方法なんてないんじゃない
お金があるなら外注で作ってもらえば楽かもね
世間にあるIT企業はそういうもんだし

663:デフォルトの名無しさん
22/09/18 19:07:54.85 N1Q6b8hc0.net
世の中は金あるヤツが強い

664:654
22/09/18 19:53:45.66 wwX2JCe10.net
皆々様がたありがとう
とりあえず>>656氏の方針でいく
>>657
君はなにもわかっていない
他の商売は知らんがプログラマーの場合
「面倒くさい、なんか楽な方法ねえかな?」からスタートする
Zed Shawがそう言っている

665:デフォルトの名無しさん
22/09/18 19:55:06.18 si+E4x/dd.net
はい、また他人の言葉を鵜呑みにする馬鹿でしたとさ

666:デフォルトの名無しさん
22/09/18 20:11:40.98 /3elu/X80.net
>>664
お前なにを勘違いしてるのか知らんけどプログラマーは
「楽をするためには苦労をいとわない」
という生物だぞ
単に楽をしたいなら>>662が言うように外注しろよw

667:デフォルトの名無しさん
22/09/18 21:07:19.77 a87PubfG0.net
んなわけない。
そういうのは、安月給でヤリガイ搾取されてるような交渉力のないゴミムシ。

668:デフォルトの名無しさん
22/09/18 21:30:30.41 N1Q6b8hc0.net
このスレを含めてインターネットを鵜呑みにしてはいけません!

669:デフォルトの名無しさん
22/09/18 21:53:06.97 oVIBC1f90.net
>>655
vba、C#、python、web系色々と勉強してきたけど、
単純なデータの入出力だけならエクセルvbaがダントツで一番楽
超絶高機能なエクセルってものがあるのにわざわざ他言語を選ぶ理由がない
なおスプレッドシート+jsでも良い

670:デフォルトの名無しさん
22/09/18 22:11:40.89 JTgtpdd/0.net
プロのバックエンド・エンジニアなら、
YouTube で有名な雑食系エンジニア・KENTA の初心者向けRuby on Rails サロンが有名。
他には、RUNTEQ、東京フリーランスのデイトラなどもある
バックエンドは、Linux, Docker, AWS, データベース(DB)などが必須。
データベース・スペシャリストの資格があれば、部長クラス
RailsのO/R マッパーでは、DBの設計の仕方・組み方ばかり勉強する。
第3正規形、1対多・多対多とか、検索用インデックスの作り方など

671:デフォルトの名無しさん
22/09/18 22:19:10.17 si+E4x/dd.net
>>670
釣り?それとも真正馬鹿?
それもいつものキチガイRubyクズ?

672:デフォルトの名無しさん
22/09/18 22:23:40.29 oVIBC1f90.net
rubyとかもうすぐ無くなる言語じゃん

673:デフォルトの名無しさん
22/09/18 22:27:42.29 K8Zbj7cX0.net
VBAももうすぐ無くなると言われてから延命してるな

674:デフォルトの名無しさん
22/09/18 23:15:37.10 69Jy4am90.net
Rubyとか2005年で時間止まってる?

675:デフォルトの名無しさん
22/09/19 01:07:42.95 iZ5Ix3Ky0.net
>>669
ほんとうにそう思う
データをシートに書けばいろいろ考える必要なくアクセスできるもんね
IDEでそういうとこが簡単にできるシートを作って欲しいもんだ

676:デフォルトの名無しさん
22/09/19 01:41:49.94 iY8r+Bg+0.net
この人もRubyがいいと言っている。
URLリンク(youtu.be)
完全に時代遅れ。
もうむちゃくちゃ。
自分を客観視できていない。

677:デフォルトの名無しさん
22/09/19 05:00:23.87 EY8w4DgiM.net
>>675
小規模なデータしか扱ったことのない馬鹿

678:sage
22/09/19 08:40:56.76 ReLBLDbZ0.net

なんか幼稚な煽りしてる奴いてるなあ
そんなことしてて楽しいのか

679:デフォルトの名無しさん
22/09/19 09:31:55.83 vK/zDm8+d.net
このまえ2000万レコード扱った時はC#でSQLite使った

680:デフォルトの名無しさん
22/09/19 10:27:41.73 WQozd2gd0.net
そろそろExcelもビッグデータを扱えるようにしないと時代に取り残される
最低2億レコードぐらいは一発で実用時間内で処理できないと

681:デフォルトの名無しさん
22/09/19 11:09:06.92 NE4NRLG3F.net
tksqlite便利ですぉ

682:デフォルトの名無しさん
22/09/19 11:17:10.29 /tS0t+5W0.net
それソフトよりもハードの問題じゃね

683:デフォルトの名無しさん
22/09/19 14:37:24.08 Z9ZARiSG0.net
>>679
どうだった?
更新、遅くならんかった?

684:デフォルトの名無しさん
22/09/19 14:45:49.33 LZxjUErQd.net
>>678
内容を理解できない馬鹿は黙っていればいいのに

685:デフォルトの名無しさん
22/09/19 15:32:14.37 Z9ZARiSG0.net
>>680
アクセスでさえテーブル容量に2GBの制限bェあるらしいのbナ、エクセルにbサんなもの求めbトも仕方がないbフでは?
2GBでも、中小企業の在庫管理には十分だし。
エクセルの使い道がない人は、無理して使うものでもないと思います。

686:デフォルトの名無しさん
22/09/19 16:01:28.33 vK/zDm8+d.net
>>683
てか、VBAスレでその質問するからには、エクセルとの比較で聞いてるんだろうけど
そもそもエクセルでこのボリュームのデータ扱えないから比較できない
データベースファイルだけで4GB超えるから

687:デフォルトの名無しさん
22/09/19 16:05:58.47 Z9ZARiSG0.net
>>686
SQLiteで2000万レコードについて聞いてますよ。
以前試したときは、ファイルが10GB超えるあたりから性能が悪化したんだけど、今はどうなのかなと思って。

688:デフォルトの名無しさん
22/09/19 16:10:19.86 vK/zDm8+d.net
>>687
遅いですよ
自分の用途だと十分だけど

689:デフォルトの名無しさん
22/09/19 16:24:13.35 Z9ZARiSG0.net
そうですか。
ご親切にどうも。

690:デフォルトの名無しさん
22/09/19 18:23:11.48 mA0CNwkF0.net
win10
office2019
VBAの相談なんですけど、test.xlsmというファイルで練習をしていて
エラーが出てエクセルが落ちてしまいました。
そのあと、復旧したファイルでコードチェックをしてエラーが出ないようになりました。
しかし、test.xlsmファイルを開くと「セキュリティに問題がある」うんぬんという警告が
そのファイルでだけ出るようになりました。
ささいな事ですが気になっています。
もしかして特定のコードを含んでいると出るのでしょうか?
ループ処理が多いとか。

691:デフォルトの名無しさん
22/09/19 18:26:26.58 QQSMzDQg0.net
マクロの場合って必ずでなかったっけ

692:デフォルトの名無しさん
22/09/19 18:47:49.51 b1CdxAyP0.net
トラストセンターで有効にしておけば警告は出ないよ、って言うかこのスレにいる人ならほとんどこの設定にしてると思う
URLリンク(www.officepro.jp)
あとは1番下の「VBA プロジェクト オブジェクト モデルへのアクセスを信頼する」がクリアされててtest.xlsmにコードを触るようなコードが入ってる場合ぐらいかな

693:690
22/09/19 21:28:16.87 mA0CNwkF0.net
>>692
ありがとうございます。
もともとそのチェックはどのファイルにも入っていませんでしたので、
触るコードを書いてるという事かと思います。
どんなコードが該当するのですか?
バグに気付けていない可能性もあるので、知りたいです。
オブジェクトモデルっていってもdictionaryを一回重複チェックで使ってるくらいで、
後はsetしてるのは条件付き書式とかworksheetとかworkbookとかrangeくらいでしょうか。
たいした事はしてないのですが、結構長くなってるので特定しづらいです。

694:デフォルトの名無しさん
22/09/19 21:42:09.79 b1CdxAyP0.net
>>693
> どんなコードが該当するのですか?
そんなもん説明しきれんわ
そもそも
> しかし、test.xlsmファイルを開くと「セキュリティに問題がある」うんぬんという警告がそのファイルでだけ出るようになりました。
のスクショなりを上げなよ

695:デフォルトの名無しさん
22/09/19 22:00:45.12 ai3lFfV6d.net
コードを新規作成したtest 2.xlsm にコピペしてみりゃ一発だろうに

696:デフォルトの名無しさん
22/09/19 22:01:05.04 s9D2fBDK0.net
>>679
Ruby on Rails では、2千社・2億レコードでも全く問題ないと、外人が言ってた
Railsでは、開発環境ではSQLite も使うが、
本番環境では、MySQL, PostgreSQL
Heroku では、PostgreSQL
>>676
セレブエンジニアの小松和貴は、反SES/Java で有名。
Java土方はうつ病になるから、やるなと言ってる

697:デフォルトの名無しさん
22/09/19 22:05:09.07 LZxjUErQd.net
rubyみたいなオワコンを持ち上げるキチガイは消えろ

698:デフォルトの名無しさん
22/09/19 22:36:59.93 O/s366mO0.net
火に油を注ぐ発言はやめような

699:デフォルトの名無しさん
22/09/19 23:45:50.71 A/Pc+E3NH.net
火に油を注ぐから楽しいのに

700:デフォルトの名無しさん
22/09/20 00:31:18.18 Rlnm1h+Y0.net
それあぼーんな人だから触らないほうがいいよ

701:デフォルトの名無しさん
22/09/20 07:23:58.96 Qfc1UF5x0.net
>>697
黙れハゲ童貞

702:デフォルトの名無しさん
22/09/20 08:18:55.69 TKjURbNB0.net
なんだかんだで、納品物はエクセルで!とか言ってるからいつまでもVBAやめられなくて辛い

703:デフォルトの名無しさん
22/09/20 12:12:55.21 ZsS5zbqxM.net
>>702
Excelやめてなんのソフトを代替にしたいの?

704:デフォルトの名無しさん
22/09/20 14:20:11.48 E6px8L9o0.net
Excelを使わない事務仕事なんか無いだろうね

705:デフォルトの名無しさん
22/09/20 14:37:00.62 a8qXzxjlM.net
うちの会社は弥生会計をずっと使ってるぞ

706:デフォルトの名無しさん
22/09/20 17:24:35.64 Qfc1UF5x0.net
>>704
うちの会社の経理は紙の帳面だぞ
古代エジプト時代と変わらん

707:デフォルトの名無しさん (スップ Sd3f-w3i5)
[ここ壊れてます] .net
>>706
パピルスと現代の紙とは異なる
髪はその頃と一緒だが

708:デフォルトの名無しさん
22/09/20 19:11:26.07 bPcXAKoD0.net
>>702
そんなに辛いなら転職したらいいんじゃね

709:デフォルトの名無しさん
22/09/20 20:36:15.87 E6px8L9o0.net
>>706
The 昭和

710:デフォルトの名無しさん
22/09/20 20:42:24.19 z6cIhAGk0.net
昭和の頃はすでにMZ-80とか有ったからね。

711:デフォルトの名無しさん
22/09/20 21:20:11.78 9PvWzZvw0.net
>>695
ありがとうございました。
それで徐々にコードを消していったら判明しました。
助かりました。

712:デフォルトの名無しさん
22/09/20 21:52:40.24 9PvWzZvw0.net
ユーザー定義型を配列に入れて使っているのですが、nameでソートしたり、
idでソートしたり、ageでソートしたり、その都度いろいろなプロパティでソートをしたいのです。
いままでは一旦二次元配列に入れてソートしていましたが、二次元配列のkeyposにあたるような
key elementsみたいに引数で渡す事はできないのでしょうか?
Sub Sort(ByRef User as Usertype,ByRef Property asここがわかりません)
なんというかworksheetオブジェクトとrangeオブジェクトみたいな関係みたいな
最悪プロパティ毎に違う名前のソート関数にすれば一応好きなプロパティの値でソートして返せるのですが
こんな感じで

713:デフォルトの名無しさん
22/09/21 15:26:19.55 IxQ+qaQI0.net
まずユーザー定義型をクラスにして、その後は IComparer インターフェイスでよしなに
Sorting of objects by their properties in VBA
URLリンク(scripts4all.eu)
個人的にはここまでやるならVBA以外を検討するけどね

714:デフォルトの名無しさん (ワッチョイ f749-GjCD)
[ここ壊れてます] .net
別の方法としてADODBでメモリ上にテーブルを持つのもある
テーブルにぶち込んでしまえば、ソート、フィルター、その際の項目指定とかどうにでもなる
その分のメモリは必要だし、テーブルに対する出し入れの処理はあるので
配列の大きさやソートの頻度で使うかどうか考える

715:712 (ワッチョイ bf66-W3aP)
[ここ壊れてます] .net
>>713
そちらを見に行ってEnumの便利さに気付きました。
二次元配列のfor for ネストでやってるような処理、列が増えるほどだんだん
わからなくなりますが、enum使えば二次元配列の利便性も残しつつ
ユーザー定義型みたいに使えますね。
二次元配列の悪い所はだんだん自分が何を指定してるのかわからなくなるところだったので、
Enumと相性抜群ですね。

せっかく教えてもらった高度な手法は今回は見送りさせて頂いて、簡単なEnum&二次元配列でやってみようと思います。
感謝です。

716:デフォルトの名無しさん
22/09/21 20:40:31.74 NsHiQ7yd0.net
元データがどこにあって、それをソートしてどうしたいのかわからんが
普通に考えればエクセルシートに展開すれば良いんじゃないかと思うんだが


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

314日前に更新/265 KB
担当:undef