Excel VBA 質問スレ P ..
[2ch|▼Menu]
523:デフォルトの名無しさん
22/09/07 19:40:46.55 qgePcMk7a.net
>>519
同意する
まあ>>516は理由を書いてない時点であまり信用できないと思ってる

524:デフォルトの名無しさん
22/09/07 19:45:10.64 qgePcMk7a.net
>>522
> 違うブロックで宣言された変数と宣言が被るリスクが上がるだけなんだが
そんなものどこで宣言しても同じだろ
> むしろ直前宣言が優れている点ってどこだよ?
コードを追う時に見える範囲に宣言あれば型とかも分かるだろ

525:デフォルトの名無しさん
22/09/07 19:47:45.63 URQHgzNh0.net
>>522
・別functionにしない
・設計が出来ない
・順番がコロコロ変わる
こういう場合は直前の宣言がいいんだろうな

526:デフォルトの名無しさん
22/09/07 19:48:48.00 ie60y+bR0.net
インデックスとはいえ変数を使い回すのはNGなのです!
VBAだとしても許されません!ロボコン0点

527:デフォルトの名無しさん
22/09/07 20:14:29.57 lr2lUZXda.net
質問でもなく他人のコードの変数をどこに書こうがどうでもいいのに書き方に熱くなる人はバカなんだろうね
まあそういう技術的な部分に関係ないところしか語れない程度が集まるスレなんだろうけどw

528:デフォルトの名無しさん
22/09/07 20:36:38.49 pBpkzzj3a.net
>>527
そんなに熱くなるなよw

529:デフォルトの名無しさん (スッップ Sd7f-VPUc)
[ここ壊れてます] .net
>>517
で、答えられずに逃げたのかよ

530:デフォルトの名無しさん
22/09/07 20:55:49.52 qYDBMpOU0.net
>>529
マジでアホなの?
PowerShellって書いてあるだろw

531:デフォルトの名無しさん
22/09/07 21:25:08.49 dOhAzb3IM.net
>>530
へー、shellコマンドと言語の違いがわからない人か
納得

532:デフォルトの名無しさん
22/09/07 21:50:42.41 qYDBMpOU0.net
>>531
PowerShellって結構リッチなプログラム言語ですけど?
頭大丈夫?

533:デフォルトの名無しさん
22/09/07 22:25:03.60 GXE70sRqM.net
シェルとシェルスクリプトは間違えてませんですわー

534:デフォルトの名無しさん
22/09/07 22:55:46.20 N0bzWtYO0.net
>>524
そうね。ブロックスコープは確かに便利。
ただ、匙加減の問題にもなるけど
ブロックスコープに慣れるとついつい
単一責任原則の考え方がおざなりになりがちで
密結合なものを作ってしまい易くなる。
なので、あくまで俺はだけど
EXCELのVBAに関してはメソッドや関数の
頭に変数定義を行うようにしている。
それでコードが読み辛くなるようであれば
その時点でリファクタリングの対象になるという考え。

535:デフォルトの名無しさん
22/09/07 23:29:34.28 N0PmJDO50.net
でも誰も読まないんだよなー

536:デフォルトの名無しさん
22/09/07 23:46:23.08 QgSPv1dJ0.net
ここの回答者は上級者なんだからVBAの事端から端まで知っていると思っていたんですけど??
なんでこんなに荒れているのですか?

537:デフォルトの名無しさん
22/09/07 23:51:19.61 oCHm3LOdM.net
VBAで単一責任て
そもそも表計算ソフトで画面やDBモドキ作ってる時点でおかしいと思わないのか

538:デフォルトの名無しさん
22/09/08 00:18:03.89 GEpvz+Yp0.net
知識と人間性には何も関係がないからじゃね

539:デフォルトの名無しさん
22/09/08 01:29:45.47 ih3U5PTX0.net
だって回答者に回れるって事は知り尽くしてるって事なんでしょ?
ちょっと詳しいだけじゃ回答できるはずないもんね?

540:デフォルトの名無しさん
22/09/08 01:40:01.52 eb3KVsRH0.net
>>539
ソースは?
誰の発言?

541:デフォルトの名無しさん
22/09/08 04:43:57.30 dSUuwrfW0.net
>>534
なので、の前後の関係がよくわからん
> EXCELのVBAに関してはメソッドや関数の頭に変数定義を行うようにしている。
それこそ余計蜜結合になるかと

542:デフォルトの名無しさん
22/09/08 06:11:23.79 vw1M88UR0.net
誰が上級者と認定したん?
ここのカキコに資格試験なんかあるかいな・・・
回答が使えるかどうか、正しいかどうかが全てじゃ。

543:デフォルトの名無しさん
22/09/08 06:33:16.02 13BgqVgC0.net
どこで宣言するか問題って、画面上部をスクロールせず固定出来るようになれば解決するんだろうな。
エクセルは出来るんだから、VBAの画面も出来るようにして欲しいものだ。

544:デフォルトの名無しさん
22/09/08 06:54:06.36 9KZ4CtoQa.net
>>543
VBEは昔ながらのUIなので垂直スクロールバーの上部を下にドラッグすると同一オブジェクトコードの水平分割表示ができるけれど

545:デフォルトの名無しさん
22/09/08 08:07:26.88 YfOXyicz0.net
>>541
分かり辛かったかな?
平たく言うと変数が何に使っているか分かり辛くなるような長いコードをひとつの関数やメソッドに書くなということ。
そもそもひとつの関数やメソッドにはひとつの役割だけ持たせるべきで、そうした場合、変数が何に使ってるか分からないくらい長くなること自体あまりないし、
それで長くなるようであればそもそもの作りがおかしいのでリファクタリングの対象とする、ってことなんだけどね。

546:デフォルトの名無しさん (アウアウウー Sa8b-Ro21)
[ここ壊れてます] .net
VB/VBA/ExcelもAccessもOfficeごと窓からポイッ

547:デフォルトの名無しさん
22/09/08 10:06:01.26 dSUuwrfW0.net
>>545
> 平たく言うと変数が何に使っているか分かり辛くなるような長いコードをひとつの関数やメソッドに書くなということ。
それ変数の宣言位置とは違う話だろ
まあ先頭に変数宣言するメリットを説明できないならいいや、バイバイ

548:デフォルトの名無しさん (ワッチョイ 5f4f-ozIc)
[ここ壊れてます] .net
>>547
なんで?
どうせ同じ関数内で同じ名称の変数なんて作れないんだから
全部纏めて同じ位置にあった方が「この変数はこのシチュエーションのときにこう言った意味で使う」とか命名し易いじゃん。

使ってる変数名を再宣言しようとして「あ」となることもないし、
同じ変数をバカみたいに使い回して本当は値変えると不味かったのに変えちゃったりとかアホなことも減るよ。

549:デフォルトの名無しさん (ワッチョイ 5f4f-ozIc)
[ここ壊れてます] .net
ま、そもそもそんなこと気にするくらい長いコード書いちゃいけないんだけどね。
そちらのレベルに合わせて話してもそれだけのメリットはあるよ。

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ファイルを開くと「セキュリティに問題がある」うんぬんという警告が
そのファイルでだけ出るようになりました。
ささいな事ですが気になっています。
もしかして特定のコードを含んでいると出るのでしょうか?
ループ処理が多いとか。


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

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