X



Excel VBA 質問スレ Part55
レス数が1000を超えています。これ以上書き込みはできません。
0002デフォルトの名無しさん
垢版 |
2018/07/22(日) 14:19:08.78ID:F/x1cwuJ
>>1
すれ立て乙

そして前スレ976のリストビューがずれる現象は
splitしてる結果を比較してみろとエスパー

↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
以下、知ったかぶりがVBAにマウントをとる長文と
VBA老害が見当外れのレスをする長文をお楽しみください
0004デフォルトの名無しさん
垢版 |
2018/07/22(日) 16:10:37.90ID:/S62SzuU
>>2
その解説はマクラーにやらせるわ
0005デフォルトの名無しさん
垢版 |
2018/07/23(月) 18:46:22.51ID:drz7RaL2
クラスモジュールの正しい使い方わからん
コレクションとかディクショナリとかそれらにぶっこむ変数定義して関数かましてMEをぶっこんで行くのって使い方として正しいん?
コレクションは標準側にもったり別のクラスに持つべき?
0006デフォルトの名無しさん
垢版 |
2018/07/23(月) 19:21:59.18ID:Q2zG7cPg
>>5
そんな事が知りたい?
オッケー
じゃあそれもマクラーに解説させるわ
0007
垢版 |
2018/07/23(月) 20:09:48.91ID:wdqn61b0
別に使わなくても良いよ。
コンストラクタ引数が使えないし、オーバーロードないしで読みづらくなるだけ。
0008デフォルトの名無しさん
垢版 |
2018/07/23(月) 22:37:38.24ID:AQkTIfCC
oopになりきれてないんだよね
正しいかどうかは状況によるけど俺は何度も繰り返す処理を自作クラスにしておく程度かな
vbaの文字列操作は遅いから自前でjavaのstringbuilderみたいなのつくったりとか
0009デフォルトの名無しさん
垢版 |
2018/07/24(火) 06:54:57.86ID:KA6Loe2t
マクラーがPSスレで大暴れしたけど反応薄くてワロタwww
0010デフォルトの名無しさん
垢版 |
2018/07/25(水) 12:44:56.02ID:xnPg1Ikh
たしかにYahoo知恵遅れのPGカテ見てると
なぜそれをVBAでやろうとする?て質問だらけでウンザリするな
0011デフォルトの名無しさん
垢版 |
2018/07/25(水) 13:42:04.43ID:ELoTVjgZ
VisualStudioとか他の開発環境はダウンロードもインスコも面倒だで
慣れてる人から見れば簡単だろうけど、未経験者には敷居がかなり高い
0012デフォルトの名無しさん
垢版 |
2018/07/25(水) 14:49:05.99ID:xnPg1Ikh
テキストファイルのコピー/マージ/分割、Webスクレイピングもどき
に貧弱で重いコーディングしかできないVBAですか?という…
せめてPowerShellもバッチも使えよという
0014デフォルトの名無しさん
垢版 |
2018/07/25(水) 23:29:59.75ID:GlwT5bgj
意識してスクレイピングという言葉を使っていないんだろうけど、Web操作なら分かるがスクレイピングにPowerShellは向かない。

取ってきたデータをどうするんだよ。
取ってきて終わりで、それをExcelの絡まない他のシステムに渡すだけというなら分かるけどな。
でもそれだったらそもそもExcel関係ないから俺でもそうするかも。
でもその場合でもPowerShellじゃなくて別の言語にするかも知れない。
多分VB.NetかC#とかの方が有力だな。

PowerShellからExcel起動してデータを表示するようなの作ってきたらセンスが無いの一言で終わりだね。
それにユーザーの使い勝手より自分のコードの書きやすさを優先するような奴は使えない。
0015デフォルトの名無しさん
垢版 |
2018/07/25(水) 23:35:58.97ID:GlwT5bgj
一緒に働いてたら、同じ動作するVBAのコードを提示して俺のが採用されるだろうな。
何でPS1とxlsxの2つのファイルを扱わなきゃならんと言われて。
0016デフォルトの名無しさん
垢版 |
2018/07/25(水) 23:41:43.01ID:UzfdtR0J
もうおまえら好きなの使えよwwwNGワード登録めんどくせーんだよ
ただここはExcel VBAスレだ
0017デフォルトの名無しさん
垢版 |
2018/07/26(木) 00:36:25.38ID:9WKx7EUj
ろくなパーサーもない、正規表現すら覚束ないVBAでスクレイピングとかマゾかよ
PowerShell以上に向いないのに

データ取り込んでVBA有利な作業したいって条件でも、
Excelからスクレイピングツール(psでもrbでもcsでもなんでもいい)呼び出すのが正解だろ
使い分けというの言葉を知らんのか

ほんとマクラーは何でもかんでもVBAだけでやろうとするのが好きだな
もしかしてそれしか出来ないのか?
0018デフォルトの名無しさん
垢版 |
2018/07/26(木) 00:44:22.92ID:9WKx7EUj
標準入力すら素直に受け取れないVBAじゃ他のツール呼び出すの難しかったね

ごめんね俺が間違ってた
全部VBAでやるのが正解だよ
それしかできないもん
0021デフォルトの名無しさん
垢版 |
2018/07/26(木) 04:09:18.23ID:i54gzLVo
再び降臨 パワーシェルキチガイ
0022デフォルトの名無しさん
垢版 |
2018/07/26(木) 08:14:35.04ID:OM9s1u3H
>>17
>>18
それでもお前のコードは採用されない。
2ファイルになった時点で埋めようが無い差だ。
VBAで出来ないことなら別だがな。

VBAで標準入出力使うことはあまり無いなあ。
それで困ったことも無い。
そういう環境だと思うが。
0024デフォルトの名無しさん
垢版 |
2018/07/26(木) 14:34:42.45ID:dRpGxBDU
PSなんて使う必要ないだろ
PSこそ中途半端な機能だわ
こんなの使うくらいならVSとかのIDEで良いよね
0026デフォルトの名無しさん
垢版 |
2018/07/26(木) 20:38:34.08ID:eYfujGzi
vbaだと云々かんぬんはまぁ分からんでもないけどあーするといいこうしろよとか無くps勧めてくるのはありえんわ
知識そこで止まってる化石かなんかかよ
0027デフォルトの名無しさん
垢版 |
2018/07/26(木) 23:24:39.34ID:8XjexWHE
使いにくい言語を使い本来不要な問題を作り出す
その問題を工夫して回避することが大事なんだ
便利なツールを手軽に作りたいだけの軟弱者は別の言語を使えばいい
0028デフォルトの名無しさん
垢版 |
2018/07/27(金) 00:34:59.37ID:3FMr3f7+
VBAを否定するつもりはないが固執する理由もない
どの言語も向き不向きはあるしExcel周りはやっぱVBAが一番手軽で楽なんだよ

ただ行番号くらいはデフォルトで設定設けろ
0029デフォルトの名無しさん
垢版 |
2018/07/27(金) 00:37:19.63ID:Npi7GBC0
VBAはWindow10になってさらにクソ化した
0030デフォルトの名無しさん
垢版 |
2018/07/27(金) 00:40:17.66ID:mbQIXxf8
VBA質問スレなんだからVBAに固執してくれよ
逆に固執したくないならこのスレに固執するなよ

てかなんでVBA質問スレで最適言語談義が延々続いてるのかさっぱりわからない
0032デフォルトの名無しさん
垢版 |
2018/07/27(金) 02:38:29.13ID:Aw8biuWY
Colloctionに入ってる要素をランダムに並べ替えたいんですが
どういうコード書けばよいですか?
0033デフォルトの名無しさん
垢版 |
2018/07/27(金) 06:08:47.10ID:zsHsTZpP
>>32
やりたいのはこういうこと?

Key1 → Value1
Key2 → Value2
Key3 → Value3

Key1 → Value3
Key2 → Value1
Key3 → Value2
0034デフォルトの名無しさん
垢版 |
2018/07/27(金) 06:20:20.47ID:Z7cB5M3n
>>28
これってVBAの言語的な優位性というかランタイムがエクセルに乗っかってるからってだけだよね
Pythonが乗っかったら急速に消え去りそう
VBAでおまんま食ってる人達は怯えてるだろうね
0035デフォルトの名無しさん
垢版 |
2018/07/27(金) 07:46:13.68ID:Aw8biuWY
>>33
いえこういうことです
>>32
やりたいのはこういうこと?

Key1 → Value1
Key2 → Value2
Key3 → Value3

Key3→ Value3
Key1 → Value1
Key2 → Value2
0036デフォルトの名無しさん
垢版 |
2018/07/27(金) 07:53:09.32ID:R37VLMlI
collectionは順番って概念がないからあまり意味ないけど。。
目的次第だけど一度配列にぶっ込んで
インデックス乱数で作ってその順でcollection作り直したら?
0037デフォルトの名無しさん
垢版 |
2018/07/27(金) 08:03:27.23ID:7rMzYIsO
inputboxにdefaultを設定すると選択状態になりますが、
これを選択しない状態にすることは可能でしょうか?
0038
垢版 |
2018/07/27(金) 08:20:43.06ID:VN9LlfpU
>>37
VBAにはinputboxは無いし、text boxにはdefaultプロパティもないんだが、一体なんの話だ?
0039デフォルトの名無しさん
垢版 |
2018/07/27(金) 08:21:57.58ID:hpcoy/E6
>>34
いや、あのね...
与えられた環境でどうするかって話で、そんなの当たり前だろ。
VBAも同時に使えるなら消えないだろうし、pythonに置き換わってVBAが使えないならpython覚えるだけだろ。
0041デフォルトの名無しさん
垢版 |
2018/07/27(金) 08:50:15.62ID:WxuEvi1L
VBAを.net対応にすれば良いのに
0042デフォルトの名無しさん
垢版 |
2018/07/27(金) 09:41:22.77ID:7Lss2z2K
>>34
VBAでおまんま食ってるPython未経験だけど
Python移行を熱烈に希望します
0043デフォルトの名無しさん
垢版 |
2018/07/27(金) 09:43:45.36ID:7Lss2z2K
>>41
せめてそれくらいはしてほしいよな
理想はC#AだがVB.netAでもいいわ
0044デフォルトの名無しさん
垢版 |
2018/07/27(金) 12:10:40.85ID:Aw8biuWY
>>40
なるほど。
テストでこういうコードを「アホレ スイスイスーダララッタ スラスラスイスイスイ」と一瞬で作ったら一発で成功した。
あらためてオレは頭がいいな。

------------------------------
Sub test()
Dim i As Integer
Dim r As Integer
Dim c1 As Collection
Dim c2 As Collection
Dim c As Class1
Set c1 = New Collection
Set c2 = New Collection
For i = 1 To 100
Set c = New Class1
c.i = i
c1.Add c
Next i
For i = 1 To 100
r = Int(Rnd * (100 - i + 1)) + 1
c2.Add c1(r)
c1.Remove r
Next i
For i = 1 To 100
Debug.Print c2(i).i
Next i
End Sub
------------------------------
Class1
Public i As Integer
------------------------------
0045デフォルトの名無しさん
垢版 |
2018/07/27(金) 12:24:17.95ID:9o30Opw+
Vbaってコレクションのランダムソートごときにすごい行数を使うんだなあ驚いた
0048デフォルトの名無しさん
垢版 |
2018/07/27(金) 17:04:08.64ID:ferZ4IGy
VBAもBASICの一種だから行番号は付けられるんだけどね

Sub Foo()
10 Dim i As Integer
20 Debug.Print i
30 i = i + 1: GoTo 20
40 End Sub
0049デフォルトの名無しさん
垢版 |
2018/07/27(金) 20:35:05.00ID:7rMzYIsO
>>37
inputbox関数のことです
引数defaultに文字を入力した時、選択されないようにしたいのです

Sub foo()
bar = InputBox("", "", "選択されてしまう")
baz = Application.InputBox("", "", "選択されてしまう")
End Sub
0051デフォルトの名無しさん
垢版 |
2018/07/27(金) 23:09:03.86ID:7rMzYIsO
>>50
そうです、文字が選択されてしまいます
フォームでも作るしかないみたいですね
ただ、右キーで選択解除できるのは大きな収穫でした(endキー使っていました)
ありがとうございました
0052デフォルトの名無しさん
垢版 |
2018/07/28(土) 00:48:56.31ID:kTSYe+MH
おれはテキストボックスにフォーカスが当たったらテキストが選択されてない方が嫌だけどな
ダイアログボックスのUIに対するガイドラインみたいなのなかったかな
0054デフォルトの名無しさん
垢版 |
2018/07/28(土) 01:21:56.22ID:kTSYe+MH
また偏った知識で変なUIがVBによって作られてしまうのかと思うと忍びなくてな
0057デフォルトの名無しさん
垢版 |
2018/07/28(土) 07:31:07.15ID:rUA3L/4N
クラスインスタンスをJSONにシリアライズしたいのですがどうすればいいでしょうか
クラスの種類が1000種類ぐらいあるので個別に作ると工数が足りません
0062デフォルトの名無しさん
垢版 |
2018/07/28(土) 08:35:55.74ID:RecypDDO
ならバカ決定
0064デフォルトの名無しさん
垢版 |
2018/07/28(土) 09:15:35.74ID:rUA3L/4N
そこをなんとか
バカは承知なのですが他の選択肢は禁止されているんです
工夫でどうにかなりませんかね?
0065デフォルトの名無しさん
垢版 |
2018/07/28(土) 09:59:39.84ID:mUQBcLm1
出来ませんって言えば?
実際出来ないんだし
正直に言えば済むだろ
0068デフォルトの名無しさん
垢版 |
2018/07/28(土) 10:21:59.57ID:rUA3L/4N
>>67
もしできるなら工数はほとんどかかりませんよ
できないから工数がかかって大変なのでなんとか工夫してできませんか?という話をしてます
人にバカという前に自分の理解力の程度を自覚したほうが良いのでは?
0070デフォルトの名無しさん
垢版 |
2018/07/28(土) 10:45:40.00ID:LmAaizbn
クラス定義はテキストだし、JSONもテキストだし、変換しようと思えばできるじゃない
まさかそこの手法レベルで悩んでたの?
クラス定義が1000種類もあり、変換定義を書く工数が足りないって話だとばかり思っていたよ…
0072デフォルトの名無しさん
垢版 |
2018/07/28(土) 11:18:14.54ID:bzfoDHBV
クラスのソースからコンバータ自動生成するプログラム作れば解決
つかクラス1000個とか、VBAに向いてないのを差し引いても、どう考えても設計間違ってるわ
0073デフォルトの名無しさん
垢版 |
2018/07/28(土) 12:09:18.04ID:IX5bbTr/
VBAではJSONシリアライズのようなちょっとした処理のためにVBAパーサーを書かなければならないんですか?
他の言語だと基本ライブラリを使って1行で出来る処理なのでにわかには信じられません

経験上、コード生成は資源管理や後々のメンテナンスでトラブルが発生することが多いのでできれば避けたいです
VBAは工夫しだいで何でも出来る言語だと思います
もっと工夫して実行時に解決することはできませんかね?

>>72
小さいオフィスの事務作業ではどうか知りませんが1000クラスは業務システムでは少ない方ですよ
1つのシステムでプロジェクト(機能)が100以上、それぞれのプロジェクトに画面がいくつか、クラスが10〜、なんてことは別に珍しくもないです
0076デフォルトの名無しさん
垢版 |
2018/07/28(土) 12:17:55.21ID:IX5bbTr/
VBAはRuby、Python、.NETと比較されるほどの優れた高級言語なので
他の言語で当たり前のようにできることがまさか出来ないとは思いませんでした
こんなことで見積もりを誤ったなんてまるで交通事故にでもあったような気分です
0077デフォルトの名無しさん
垢版 |
2018/07/28(土) 12:28:41.80ID:V98tNPxX
使った事ないけどリフレクションぐらいあるに決まってんだろwww
それ使えば簡単に実装できるわ
0079デフォルトの名無しさん
垢版 |
2018/07/28(土) 12:39:27.77ID:V98tNPxX
オブジェクトブラウザにクラス一覧やメソッド一覧が表示される
という事はメタデータの取得方法が存在するって事だ
詳しい方法はいつもの達人VBAerが教えてくれるだろう
0080デフォルトの名無しさん
垢版 |
2018/07/28(土) 12:43:27.54ID:+RGOdKJa
>>76
>他の言語で当たり前のようにできることがまさか出来ないとは思いませんでした
>こんなことで見積もりを誤ったなんてまるで交通事故にでもあったような気分です

ただの無能じゃん。部下がこんなしょぼいミスしたらブチ切れるわ
0081デフォルトの名無しさん
垢版 |
2018/07/28(土) 12:47:45.60ID:LmAaizbn
> VBAはRuby、Python、.NETと比較されるほどの優れた高級言語なので

その認識からしておかしい、ネタだろ?w
0082デフォルトの名無しさん
垢版 |
2018/07/28(土) 13:06:03.00ID:mUQBcLm1
>>66
実際、貴方が出来ないんだから僕には無理でした
って言えば?って事ですよ
カッコ付けて安請け合いするから変な事になる
0084デフォルトの名無しさん
垢版 |
2018/07/28(土) 14:11:14.29ID:bzfoDHBV
>>79
あれは定義が見れるだけで
実際のインスタンスから値が取れることにはならん

>>80
俺ならVBAに対する理解がこの程度の部下に
1000を超えるクラスが必要な規模のVBA案件見積させた上司にもブチ切れるわw
0088デフォルトの名無しさん
垢版 |
2018/07/28(土) 17:16:54.38ID:HsLGqaOr
>>86-87
あぁごめん、その続きの方貼ったつもりだったけど前のページ貼ってた
検証する気も起きないけど、ちょっとでも役に立てば
0089デフォルトの名無しさん
垢版 |
2018/07/29(日) 14:59:24.56ID:ZjGxu4jc
バカは適材適所を知らないという見本のような質問だな。

俺の職場にバカがいなくて良かった。
0090デフォルトの名無しさん
垢版 |
2018/07/29(日) 18:03:41.01ID:3KthijbH
>>89
でもお前無職じゃん
0091デフォルトの名無しさん
垢版 |
2018/07/30(月) 20:07:26.47ID:L4iRteYk
シートからデータを抜き出して重複しないリストを作ろうとしています。
For
If Cells(i+1,1) = .List(i) then
中略
Next
で重複の判定をさせているのですが、エラーが出ます。
InStrで判定させると期待通りに動きます。
検索しているのは数字なのですが、エラーの原因がわかりません。
挙動としては問題ないので、ひとまず満足はしているのですが、もし原因エスパーして頂けるようなら教えてください。
0092デフォルトの名無しさん
垢版 |
2018/07/30(月) 20:33:15.09ID:d+TLGZef
このスレの質問らしいw
エラーが出てるってだけでどんなエラーがどこで出てるのか言わない www
009391
垢版 |
2018/07/30(月) 20:40:42.50ID:L4iRteYk
>>91
今確認し直したらエラーが出ているのではなく、重複の判定ができていませんでした。
デバッグで変数を追っていましたが、表面上は同じ数字が入っているように見えるのですがifの中身を読みに行ってくれません。
例えば100〜110の数字を重複なしでリスト化したいのですが、
100
100
101…
といった表示になってしまいます。
質問の仕方もわからないような有様で申し訳ありませんが、よろしくお願いします。
0094デフォルトの名無しさん
垢版 |
2018/07/30(月) 21:22:34.72ID:bLz+Q6Zv
>>91
重複なしのリストは、フィルタをうまく使えば一瞬でできるぞ


あと色々とめんどくさいから
・どういうリストを
・どうしたい
を書いてくれ
コードを書くから、それとどう違うかを照らし合わせると良い
0095デフォルトの名無しさん
垢版 |
2018/07/30(月) 21:27:58.45ID:MdDdO1Hd
まず質問する前にちゃんとデバッグしようぜ。。
0096デフォルトの名無しさん
垢版 |
2018/07/30(月) 21:33:24.66ID:mAgRmfNY
>>91
>検索しているのは数字なのですが
まずこれがあやしい
エクセルは表示されてる物と実際の値は違うぞ

そもそもそのコードで重複除去できると思えんけどな
1重ループで重複除去できるアルゴリズムあるなら教えて欲しいわ
009791
垢版 |
2018/07/30(月) 22:26:44.11ID:L4iRteYk
>>94
         納入日…
納入先1 納入先1' 製品名 納入額
納入先1 製品名1'' 製品名 納入額
納入先2 納入先2' 製品名 納入額
このような元データから納入先1と2をそれぞれリスト化してUserFormのリストボックス1と2に表示、そこから納入先のデータを引き渡して別途データまとめるものを作ろうとしてました。
納入先については数字で管理されています。
納入先1にはさらに細かくいくつかの納入先2があり、リストボックス1に納入先1のリストを表示、選択された納入先1に紐付いている納入先1'を表示させるのが目標です。
ExcelVBA逆引き辞典とネット参考に関係しそうなコードを自分で打っていくと上記のようなコードが出てきたので使ってました。重複除外のコードは本から流用してます。
よろしくお願いします。

>>96
なんとなくそこが原因だとは思うのですが、具体的にどうなっているのかわかりません。
cellsでは数値を返して、listでは文字列として見ているような理解でいいのでしょうか。

>>95
一行ずつ動かしてみましたが、cellsと.listの中身は同じ表示をするのにifの中に入ってもらえなかったのでどうなっているのかもわかりませんでした。
0098デフォルトの名無しさん
垢版 |
2018/07/30(月) 22:28:08.17ID:lLAVt4bp
Dim d As New Dictionary(Of String, MyClass)

なぜかエラーが出るのですがなぜでしょうか???
0101デフォルトの名無しさん
垢版 |
2018/07/31(火) 07:15:42.13ID:viAsjoyM
やはりVBAばかりやるとプログラミングの基礎がおろそかになるね
見た目を意識したスプレッドシートをそのままデータとして使う、といった発想は基礎ができてないVBAer特有の現象
Excel VBAは入門用と宣伝されることが少なくないが、正直、特殊な環境だから初心者は避けたほうがいい
0102デフォルトの名無しさん
垢版 |
2018/07/31(火) 07:18:36.03ID:9D920yGd
と、VBA利権にたかるウジ虫がほざいてます
0103デフォルトの名無しさん
垢版 |
2018/07/31(火) 07:21:50.77ID:hnMeVpcj
>>101
誰もvbaでプログラミングの基礎なんて覚えないでしょ
よっぽどで無い限りフレームワークは無料

vb6以前なら仕方ないけどね、あの頃は色々と有料だった
0105デフォルトの名無しさん
垢版 |
2018/07/31(火) 08:10:41.76ID:QKgssm6F
どの言語でも言えることをさもVBAでのみ起こるかのように言うw

CだろうがPythonだろうが誰かが頓珍漢なことをした時に言えば良いんだから
0107デフォルトの名無しさん
垢版 |
2018/07/31(火) 08:26:46.09ID:7/S9zeio
専ブラJune使ってるんだけど何の設定もしてないのにあぼーんされてるのってなんで?
デフォでNGワード登録されてる単語あるの?
0109デフォルトの名無しさん
垢版 |
2018/07/31(火) 16:04:06.73ID:v6ZYNw/G
レベルが低いから質問しに来てるのに
質問者のレベルが低いとあざ笑うだけの書き込みしに来る人ってのは
やっぱりVBAプロなんでしょうか
0111デフォルトの名無しさん
垢版 |
2018/07/31(火) 19:23:40.75ID:9D920yGd
>>110
答えになってない!
0116デフォルトの名無しさん
垢版 |
2018/07/31(火) 22:34:16.53ID:HEdj3l67
>>112
できるっちゃできるし、現にSheet1をメニューのように使って
Sheet追加したりも可能 それはすぐにメニューに反映されるし
文字で説明するよか現物Upした方が早いだろうから あした
0120118
垢版 |
2018/08/01(水) 19:37:48.99ID:CrgSL/Mw
>>119
アホ。
やり方を聞いておるんじゃ。
0123デフォルトの名無しさん
垢版 |
2018/08/01(水) 20:47:02.77ID:Cx2XTKqG
あの説明じゃ何したいんだかさっぱり判らんけど出来るかってんなら出来るんだろうなぁ w
0124デフォルトの名無しさん
垢版 |
2018/08/01(水) 20:49:54.52ID:atM50NE9
>>121
日本語に不慣れな外人ならその言い訳は通用かもだね
(普通の常識というか社会経験があれば、外人であっても通用しないと思うけど)
0125デフォルトの名無しさん
垢版 |
2018/08/01(水) 20:58:32.29ID:ADJFw6Sc
( )の中が長すぎる
0127デフォルトの名無しさん
垢版 |
2018/08/01(水) 21:14:43.63ID:dwiwmIsf
つーかVBAスレで関数とはどういうことよ
WorksheetFunction?
0129デフォルトの名無しさん
垢版 |
2018/08/01(水) 21:56:40.95ID:714hG0Tb
>>121
文は文脈に関係なく不変の意味を持つという形式意味論の立場ですね

一方で、自然言語の解釈は文脈や発話者の意図と密接に関係しているという
立場をとるのが語用論です

夏目漱石は「I love you」を「月が綺麗ですね」と訳しなさいと
言ったらしいですがこれなんかは文脈を考えないとわからない言葉です

それでは問題です

最初にりんごが3個あります、あと2個りんごを買ったらいくつになるでしょう?
0132デフォルトの名無しさん
垢版 |
2018/08/02(木) 07:19:05.05ID:M9+gUzRN
>>131
文脈を理解してないあなたの方が馬鹿です
死んでどうぞ
0133デフォルトの名無しさん
垢版 |
2018/08/02(木) 07:19:41.69ID:M9+gUzRN
>>130
ただいま
0135デフォルトの名無しさん
垢版 |
2018/08/02(木) 10:09:33.51ID:kHzgrEZ3
>>118
の者です
なんだかお騒がせしてしまってすいません
Sheet2の別の列に検索キーとして氏名と県名の結合文字列を作ってvlookupで参照するようにしました
もっとスマートなやり方があれば一番良いのですが…
0136デフォルトの名無しさん
垢版 |
2018/08/02(木) 19:14:12.00ID:dYoMhZad
>>135
sheet1のデータの持ち方がはっきりしないとむずかしいかも
各人名でどれか1つの値しか持たないなら最初の表から簡単にできる
0137デフォルトの名無しさん
垢版 |
2018/08/02(木) 21:04:52.53ID:TLBzkUIv
複数シートのデータを3次元配列に格納する効率の良いコードを組みたいんだけど、
サンプルコードをお願いできない?

条件
・三次元配列は(シートのインデックス番号,行,列)を想定
・対象のシートはインデックスの二番目から最後までで、現状5シートだが10シート程度まで増える見込み
・一枚のシート内におけるデータ数は、列数は30程度で固定、行数はシート毎に可変で現状は100程度だが1000程度まで増える見込み
0138デフォルトの名無しさん
垢版 |
2018/08/02(木) 21:39:08.04ID:2BgkbQH+
>>137
行、列、シートで三次元になってるから、
sheets(1).cells(2,3)
みたいに配列にいれずそのまま扱うのは駄目なの?

効率がいいかどうかは知らんけど、
二次元配列ならセルを直接保折り込めばok
これをシートの数だけ回せば瞬殺
Sub foo()
a = Range("a1:b2")
End Sub
0139デフォルトの名無しさん
垢版 |
2018/08/02(木) 22:04:18.70ID:rqIgowuq
>>137
max_row = 0 : max_col = 0 : result = array() : jug = array()
for i = 1 to Worksheets.Count
buf = Worksheets(i).UsedRange.Value
Redim Preserve jug(ubound(jug) + 1) : jug(ubound(jug)) = buf
if max_row < ubound(buf, 1) then max_row = ubound(buf, 1)
if max_col < ubound(buf, 2) then max_col = ubound(buf, 2)
next

redim result(ubound(jug) + 1, max_row, max_col)

for i = 0 to ubound(jug)
for row = 1 to max_row
if row > ubound(jug(i), 1) then exit for
for col = 1 to max_col
if col > ubound(jug(i), 2) then exit for
result(i + 1, row, col) = jug(i)(row, col)
next
next
next
これで result(1, 2, 3) で取り出せるし
インデックスが0オリジンでよければ jug(0)(2, 3) でも取り出せる
UsedRangeのとこは適当に書き換えてね
0140
垢版 |
2018/08/02(木) 23:16:22.80ID:XQFP0WAE
>>139
こういう感じになるから三次元配列に複数シートのデータを入れようと考えること自体が無駄。
素直に二次元配列をdictionaryにシート名つけて打っ込むのが一番効率的かと。
0143デフォルトの名無しさん
垢版 |
2018/08/03(金) 05:28:19.46ID:wa60SFcl
ユーザ定義型に対してforeach的なことってできないの?
Dictionaryやcollectionじゃないとだめかね
0145デフォルトの名無しさん
垢版 |
2018/08/03(金) 10:48:59.11ID:efvhV3fR
VBAで多態性(ポリフォーリズム)が実現できることを発見した。
ただし親オブジェクトはObjectクラスのみ。
これ以外に方法ないよね?

あとどうしてもコンストラクタを実現したいけど方法ある?
Class_Initializeのブロシージャは使えるんだけど引数が取れないという致命的な欠陥がある。
0146デフォルトの名無しさん
垢版 |
2018/08/03(金) 10:49:43.01ID:efvhV3fR
ポリモーフィズム
0147デフォルトの名無しさん
垢版 |
2018/08/03(金) 11:24:42.37ID:WNWnteXi
>>145
ないんじゃないの
諦めて初期化メソッド作ってそれを利用してるわ、面倒だけど

あー早く.NET化かPythonにならないかなあ
0148デフォルトの名無しさん
垢版 |
2018/08/03(金) 12:10:29.95ID:7xkrIrco
>>145
オブジェクトをNEWして初期化メソッドを呼ぶ
でオブジェクトを返す関数を作るぐらいしか回避策が思いつかない
0150デフォルトの名無しさん
垢版 |
2018/08/03(金) 19:49:24.72ID:GOZ9L8DI
>>145
VBAはインターフェースを定義できたりするよ
オブジェクトの生成はオブジェクト指向らしくファクトリクラス作るとか
0151デフォルトの名無しさん
垢版 |
2018/08/03(金) 20:07:46.13ID:EY4tsGwx
VBAは手軽だって言ってた人いたけど上のような事をするならVBAでする必要ある?
VBAでするには面倒だよね
0153デフォルトの名無しさん
垢版 |
2018/08/03(金) 20:21:52.83ID:Jes/PhJV
インターフェースを定義するか、そこまではしなくても良いかと考えるかだな。
どっちもあり有り得るけど、大きなプログラムなら定義して小さなプログラムなら定義しないって感じ。
でも、クラス作るべきって思うこともそんなに多くない。

VBAでするのは面倒とか感じることは無いな。
VBAでクラス作るのにピッタリな時は作って得られる恩恵が多いから感じないし、ピッタリな時は少ないから普段は無理して作らん。
0154デフォルトの名無しさん
垢版 |
2018/08/03(金) 20:36:12.66ID:P22i9c3x
VBAでクラス設計ってなんかうさんくさい感じがして使わないんだけどC#みたいな感覚で設計出来るの?
0156デフォルトの名無しさん
垢版 |
2018/08/03(金) 20:55:51.99ID:EY4tsGwx
気になる
何作ってるの?
0157デフォルトの名無しさん
垢版 |
2018/08/03(金) 22:16:03.36ID:19fg4Hec
ひと昔前ならともかく今はいろんなツールが無料だからねぇ
excelはさくっと一覧表やグラフを作るときにしか使ってないや
ちょっとした作業が1週間くらいの見積もりで入ったけど、Redmine立てるのめんどくせーな、
一人作業だしタスク100以下ならエクセル一覧表で管理すりゃ、まあいーかポチポチー、みたいな感じ
こうなるともうVBAは大した役にはたたんのだな
プログラム書くほどの込み入った仕事なら、別の手段で楽に、収穫を大きくしようかってなる

何でも揃ってるこの時代に、あえてVBAを主力で使ってる人たちが、
普段Excelでどんな仕事してるのか興味ある
0158デフォルトの名無しさん
垢版 |
2018/08/03(金) 22:24:24.13ID:GOZ9L8DI
Excelより優れた表計算ソフトはいまだにないからのお
0160デフォルトの名無しさん
垢版 |
2018/08/03(金) 22:51:02.21ID:TQSHsawm
例えあったとしても、デファクトスタンダードという地位はもう揺るぎないものだろう
0161デフォルトの名無しさん
垢版 |
2018/08/03(金) 23:02:27.33ID:IVrK95Nj
ハンバーガーとコカコーラは世界で一番売れてるから一番優秀な食品だとかいう話を思い出した
0163デフォルトの名無しさん
垢版 |
2018/08/03(金) 23:50:22.61ID:19fg4Hec
相変わらず具体例でねえなぁこのスレ
お前らほんとにVBA使ってんのか?www
0164デフォルトの名無しさん
垢版 |
2018/08/04(土) 00:14:17.09ID:HKzLzVCj
>>155
何作るってエクセル単独で何かするか
Accessに繋いでなんかするかぐらいだけど
Accessに繋ぐならクラス使った方がキレイにまとまるからクラス使うよ
0165デフォルトの名無しさん
垢版 |
2018/08/04(土) 07:34:19.25ID:h4pZIq0i
>>164
接続部分だけクラスにまとめるって感じ?
それならまぁ、わからんでもないけど・・・うーん
0166デフォルトの名無しさん
垢版 |
2018/08/04(土) 08:36:12.58ID:hMaWSw1n
エクセルは簡単な関数までで出来ることに使う
定期で使ってコードを書くような事ならC#でWinアプリかWebアプリにする
そんな使い分けです
0167デフォルトの名無しさん
垢版 |
2018/08/04(土) 08:59:40.72ID:Pz55ajO/
ある文字が文字配列の要素の中に存在するかどうかを調べるには
for i = 0 to Ubound(配列)〜のようにして
添え字を使ったループで一個ずつ比較するしかないですかね?
Pythonなどのように、 値 in 配列 とかで一発で判定できると楽なのだが
0169デフォルトの名無しさん
垢版 |
2018/08/04(土) 14:03:53.24ID:d9q3+5Xm
Worksheet Functionのmatchなら一発でしょ、インデックスはわからんけど
filter関数のほうが早いんだっけ?
てか職場の老害が作るコードがいちいちforでぶん回すコード書いててイライラ
0172デフォルトの名無しさん
垢版 |
2018/08/04(土) 14:50:32.42ID:MinsDCPQ
>>164
自分はAccessに繋ぐ所はクラス作らないからどんな所が上手くまとまると思うのか知りたいな。

自分はマ―クシートの管理と実際の用紙との比較をしやすいように管理上の結果(Excelシート)をForm上の用紙レイアウトに再現するようなプログラムでクラスを使ったのが良かった。
用紙上に配置するのはImageコントロールを使ったラジオボタンのようなものとテキストボックス、ラべル、他でユーザーが使う用紙にあわせて好きな位置に配置出来る編集モ―ドと配置後にデ―タにあわせてチェック状態を表示編集できる運用モードを持ったもの。
種類の違う可変個数のコントロールを同じように扱うのに便利。
0173デフォルトの名無しさん
垢版 |
2018/08/04(土) 15:05:27.11ID:iY2bfIdC
>>172
普通に接続して切断する処理はクラス使った方がキレイにまとまるよ
ファイル処理も同じ。
0175デフォルトの名無しさん
垢版 |
2018/08/04(土) 16:55:00.51ID:K8sTmQ88
>>174
シート上で使うとき?
なければ作る。

コード上で使うとき?
簡潔に書けるほう、またはパフォーマンスのいい方。
>>174
0177デフォルトの名無しさん
垢版 |
2018/08/04(土) 17:43:58.28ID:Pz55ajO/
>>176
このコードでいう test_string のことです
複数の値を取りうる入力項目のチェックなんかはいつもこうしています

Sub test()
Dim test_string As Variant
test_string = Array("one", "two", "three")

Dim i As Integer
For i = 0 To UBound(test_string)
If "one" = test_string(i) Then
MsgBox "one" & "はありまーす"
End If
Next
End Sub
0179デフォルトの名無しさん
垢版 |
2018/08/04(土) 17:51:01.98ID:/poCSM2A
>>177
ループで検索する、でいいじゃないですか。
一致(=)だけじゃなく Like での合致とかも選べるように汎用化しとくとなおよい
0180デフォルトの名無しさん
垢版 |
2018/08/04(土) 19:29:54.74ID:h4pZIq0i
>>174
重い時やミスしそうな処理が絡む時はvba
もちろん関数で実現できない時もvba

関数を使うのはビジュアルで見たい時

まぁ基本的には関数だな
0181デフォルトの名無しさん
垢版 |
2018/08/04(土) 19:58:42.71ID:FI6ie7QF
>>177
こういう処理は関数化した方がよい

Sub test()
  Dim test_string As Variant
  test_string = Array("one", "two", "three")

  If あるかな(test_string, "one") Then
    MsgBox "one" & "はありまーす"
  End If
End Sub

Function あるかな(a, b)
  If InStr(Join(a, "&"), b) Then
    あるかな = True
  Else
    あるかな = False
  End If
End Function
0182デフォルトの名無しさん
垢版 |
2018/08/04(土) 20:00:16.54ID:FI6ie7QF
バグ修正

Function あるかな(a, b)
If InStr("&" & Join(a, "&") & "&", "&" & b & "&") Then
あるかな = True
Else
あるかな = False
End If
End Function
0183デフォルトの名無しさん
垢版 |
2018/08/04(土) 20:08:45.16ID:ClJJf5ah
Functionの戻り値を関数名に代入する構文が最高に気持ち悪いんだけどどうにかならんの?
0184デフォルトの名無しさん
垢版 |
2018/08/04(土) 20:39:40.48ID:A9MJ7JgF
はじめまして。
下記のようなマクロを組もうと考えています。

x人の生徒がいます。
この生徒を1グループあたりy人となるようにzグループにわけます。
このときグループ毎の生徒のテストの平均点の差が小さく、またグループ毎の標準偏差の差も小さくしたいです。

このようなマクロを作るのにあたって、どのような方向性で作成していけば良いでしょうか。
0186デフォルトの名無しさん
垢版 |
2018/08/04(土) 21:04:16.50ID:u8rcbYXZ
>>184

→→→
←←←
→→→

こう割り振ればいんじゃないかな

A B C
-----
9 8 7
4 5 6
3 2 1
0187デフォルトの名無しさん
垢版 |
2018/08/04(土) 21:22:04.15ID:AH7fLvgn
>>177
> Dim test_string As Variant
> test_string = Array("one", "two", "three")
なんとなくだが名前はtest_stringsにして欲しいな

>>181
> If InStr(Join(a, "&"), b) Then
>  あるかな = True
> Else
>  あるかな = False
> End If
なんで
あるかな = InStr(Join(a, "&"), b)
って書かないんだろう…
0189デフォルトの名無しさん
垢版 |
2018/08/04(土) 21:38:34.48ID:h4pZIq0i
>>183
グローバル変数にでも代入してみるとか?
他の言語にも気持ち悪いとこいっぱいあるから気にしなくていいよ
C言語のint main()もそのint 0はどこへ返すんだよって気になるし
0190184
垢版 |
2018/08/04(土) 21:44:58.48ID:VLm3wLVC
>>186
レスありがとうございます。
しかし、その方法だと点数のばらつきが大きいときに、各グループごとの平均と標準偏差が均等にならずに使えないんですよね、、、

私としては下記の手順でできるのではないかと考えています。
@コンボボックスでグループ数と、グループ毎の生徒数を選択してもらう。
Aエクセルに新しいシートを作る
B既存のシートに記入されている学生について、1の条件のすべての組み合わせを、2で作成した新しいシートのセルに列挙する
C3で書き出したそれぞれの組み合わせについて既存のシートの点数を参照し、average関数およびstdev関数を用いて平均及び標準偏差を2で作成した新しいシートに書き出す
D3の各組み合わせについて、グループ毎の平均のばらつきの少ないものを上位 何%かのみを抽出
E5で抽出した組み合わせについてさらに、グループ毎の標準偏差のばらつきの少ないものを上位 何%かのみ抽出

質問としては
a)他に良い方法があるか
b)組み合わせを書き出す際に重複を作り出さないようにするためにはどのようにすれば良いか
の2点です。
これらについて特に詳しく教えていただけないでしょうか。
よろしくお願いいたします。
0193デフォルトの名無しさん
垢版 |
2018/08/04(土) 21:56:58.85ID:ClJJf5ah
>>189
???
グローバル?
まじでいみわからんどういうことなんだ
VBA職人の思考パターンほんと異次元なんだけど
0194デフォルトの名無しさん
垢版 |
2018/08/04(土) 22:05:27.29ID:h4pZIq0i
>>187>>192
多少冗長でもエクセルがうまく動いて正しい結果が得られるなら問題ない
手作業で10分かかるものが10秒になればそれでいいって世界
最適化すれば0.1秒になるところでも10秒かけていいのだよ
その10秒を最適化する時間で、別の5分の仕事を3秒に短縮する方がよっぽど大事

>>193
Public g
Sub s()
Debug.Print f
Debug.Print g
End Sub
Function f()
'これが嫌なら
f = "return f"
'こう書けば
g = "return g"
End Function
0197デフォルトの名無しさん
垢版 |
2018/08/04(土) 22:42:04.41ID:qDTSwX/K
>>184
ソルバーアドインのエボリューショナリーエンジンで解決できそう
生徒のグループ分けをなるべく少ない変数で表すモデル作るのが難しそうだが

バイトのシフト表作ってみるみたいなサイトあった気がするから参考に

頑張れば数理的に最適解も求まりそう
0201デフォルトの名無しさん
垢版 |
2018/08/04(土) 23:17:23.65ID:h4pZIq0i
>>199
>Functionの戻り値を関数名に代入する構文が最高に気持ち悪い
って言ってる人がいたので回避策を提示しただけ
勿論こんなコード俺は書かないよ
0202184
垢版 |
2018/08/04(土) 23:26:11.15ID:A9MJ7JgF
>>195
>>197
レスありがとうございます。

私がしようとしていたすべての組み合わせを試す方法だと、(仮に生徒48人を1グループあたり8人の6グループに分ける場合だと組み合わせの総数が4×10^30になってしまい、)かなり効率が悪いということですね。

アドバイスしていただいたソルバーを用いた方法とrand関数を用いた方法の双方について調査し、検討してみようと思います。
また行き詰まったら質問させてください!
その際はどうぞよろしくお願いいたします。
0203デフォルトの名無しさん
垢版 |
2018/08/04(土) 23:26:28.61ID:ClJJf5ah
>>201
いやぜんぜん回避策になってないじゃん
そもそも戻り値として返してないんだが
VBAコミュニティだとグローバル変数に入れると戻り値として返したことになるって風習でもあんの?
0204デフォルトの名無しさん
垢版 |
2018/08/04(土) 23:27:52.91ID:u3c/0jtm
ref使えばいいってなるわな
0207デフォルトの名無しさん
垢版 |
2018/08/05(日) 01:06:08.74ID:TorrOw0p
>>184
例えば、40人を、5グループ8人毎

min(最大平均点 - 最小平均点)
min(最大標準偏差 - 最小標準偏差)

こういう問題は、Ruby のアルゴリズムの問題だろ。
combination, permutation とか

こんな問題は、一筋縄ではいかない。
ものすごい組み合わせ爆発が起こるから、vba なら、何日も掛かる
0208デフォルトの名無しさん
垢版 |
2018/08/05(日) 01:14:27.29ID:jrr7Gub0
そんなん言語関係ないやん、アルゴリズムの問題だろ

Rubyの関数で短時間で解ける問題なら、VBAでも数倍ぐらいの時間で同じ結果は出せる
0209207
垢版 |
2018/08/05(日) 01:17:12.67ID:TorrOw0p
>48人を、1グループあたり8人の6グループ

グループA は、48*47*46*45* 44*43*42*41 / 8!
グループB は、40*39*38*37* 36*35*34*33 / 8!
...
グループF は、8! / 8! = 1

ここから、A〜F のグループ名を変えるだけで、
同一になるものを省くから、6! で割る
0210207
垢版 |
2018/08/05(日) 01:22:35.24ID:TorrOw0p
48人分のデータを作って「プログラミングのお題スレ」にでも書き込んでみ。
誰か解けるか、計算時間が掛かりすぎて解けないか

こういうのはプログラミングコンテストの問題だから、
vba で解くような問題ではない!
0213デフォルトの名無しさん
垢版 |
2018/08/05(日) 08:28:04.96ID:jOOhioBF
>>200
その通りだよね
それにJoinなんて例に出た短い配列にしか通用しないし
0214デフォルトの名無しさん
垢版 |
2018/08/05(日) 08:47:11.10ID:fib/Q9e8
>>203
戻り値を使わないという回避策なんじゃないの?

そもそも何が気持ち悪いのか分からない。
プログラミング経験無ければReturn 0よりVBAの方が感覚的にぴったり来るわ。
気持ち悪いという人はa=a+1を気持ち悪いと思う人?

関数名に代入する?
関数名じゃない。
関数そのものに代入してるというか、関数そのものを定義しているんでしょ。
俺は初めて見た時にすんなり頭に入ったね。
0215デフォルトの名無しさん
垢版 |
2018/08/05(日) 09:53:33.07ID:DQLB2G4w
何故関数名に代入するのが気持ち悪く感じるのかというと、後に述べるような危険性を無視しているからだと思う。

1.戻り値を関数名に代入しなければならない。
プロシャージャ中に何度も関数名が出てくるため、関数名を変更した時に変え忘れてエラーになることがある。
例えばhoge()全体をコピーして挙動の異なるhoge2を作ったとき、hoge2の中のhoge=***はコンパイルエラーにならないめ、テストするまでエラーを発見できない。
※コピペ直後に「完全に一一致」でプロシージャ内置換すれば良いのは分かっているが、そういう問題ではない。

対処法としては、関数の最初にDim Retしておき、文中ではRetに戻り値を代入、End Sub直前に関数名にRetを代入する。

2.戻り値を設定していないのにExit Subできてしまう。
せっかく1の対処法実施しても途中でExit Subされたら意味がない。
せめてExit Sub 戻り値 という書き方ができればよかったのだが。

対処法としてはExit Subを禁止して、そもそもExitが必要ない書き方に変えるかEnd Function直前までワープするGoToを使用する。

よって、関数を定義するときの推奨テンプレ
Function hoge() As Variant
Dim Ret As Variant
'-----
'処理
'Exit Subは禁止。GoTo ExitSubを使うこと

'-----
ExitSub:
hoge = Ret
End Function

もちろん異論は認める。
0216デフォルトの名無しさん
垢版 |
2018/08/05(日) 09:56:54.93ID:d78e98dl
>>214
a=a+1
これのどこら辺が気持ち悪くなる部分なの?
0219デフォルトの名無しさん
垢版 |
2018/08/05(日) 10:19:10.37ID:C8NdcnMU
>>215
> 対処法としては、関数の最初にDim Retしておき、文中ではRetに戻り値を代入、End Sub直前に関数名にRetを代入する。
手間を増やしてバグの確率上げるとか最悪の対処法だな w
そもそも2.の対処ができるなら書き換える個所は1箇所になるからこんなアホな対処法は意味がない
0221デフォルトの名無しさん
垢版 |
2018/08/05(日) 10:27:17.45ID:88RY240q
決め事だからどうでもいいけど代入が=なのに名前付き引数に渡すときは:=なのが統一感なくて気持ち悪い
0222デフォルトの名無しさん
垢版 |
2018/08/05(日) 10:37:44.10ID:R+WsVzw5
If文とか
冗長になっても数年後に見ても簡単に分かるようにしとく事も大事だと思うけど
0224デフォルトの名無しさん
垢版 |
2018/08/05(日) 11:02:08.70ID:lCYlyBjK
>>219
関数名は普通の変数と同等には扱えないからRetを使うのが必須な場面はある。
だから別に悪手ではない
0226デフォルトの名無しさん
垢版 |
2018/08/05(日) 11:12:01.18ID:vw7t6kWc
>>224
> 関数名は普通の変数と同等には扱えないからRetを使うのが必須な場面はある。
そういう場合はそうすればいいだけ
そういう前提がない場合にまでそうする奴は単なるバカ
0227デフォルトの名無しさん
垢版 |
2018/08/05(日) 11:18:09.78ID:DQLB2G4w
>>219
バグの確率が上がる状況ってどんな時?具体例を上げてくれ。
>そもそも2.の対処ができるなら書き換える個所は1箇所になるからこんなアホな対処法は意味がない
2の対処によって関数名に代入するのを1回にしてるんだが。どういう意味?

>>223
エラー対処を組み込んでも特に違和感ないと思うのだけど、どういう時?

Function hoge() As Variant
Dim Ret As Variant
'-----
On Error GoTo err1
Ret = 1 + "a"
If True Then GoTo ExitSub
'-----
GoTo ExitSub
err1:
Debug.Print Err.Number & Err.Description
Resume Next
ExitSub:
hoge = Ret
End Function

そもそもこの書き方って、自然と起こりうるものでコーディングルールとして定めるか臨機応変に使うかって話だと思うのだけどどうなん。
0228デフォルトの名無しさん
垢版 |
2018/08/05(日) 11:31:30.01ID:7RpOjRbA
変数宣言強制にしてれば関数名変えた時、戻り値返すための関数名も変更しないとエラーになるんじゃないの?
0230デフォルトの名無しさん
垢版 |
2018/08/05(日) 12:01:55.81ID:jOOhioBF
>>226

Retを使うという方法について>>219
> 手間を増やしてバグの確率上げるとか最悪の対処法だな w
と言い出したことから出ている話だが、
「手間が増える」とか「バグの確率上げる」という主張自体に根拠が無いよね。
>>224に書いた理由によりRetを使う方法は皆が習熟してるわけだから。

だからあんたの言う
>そういう前提がない場合にまでそうする奴は単なるバカ
も根拠薄弱。
0231デフォルトの名無しさん
垢版 |
2018/08/05(日) 12:06:39.32ID:DQLB2G4w
>>228
関数名変えるだけなら、コンパイルエラー出るから問題ないよ。
ただあまりたくさん使ってると次々とコンパイルエラー出てイラっとするだけで・・・。
0232デフォルトの名無しさん
垢版 |
2018/08/05(日) 12:11:44.20ID:C8NdcnMU
>>227
> バグの確率が上がる状況ってどんな時?具体例を上げてくれ。
記述量が増えればバグは増える、常識
> 2の対処によって関数名に代入するのを1回にしてるんだが。どういう意味?
だからそれなら1.の対処の意味がない
無駄なGoto増えるだけ
>>228の言うように関数名の変更忘れてたらOption Explicitでその関数に入る時にエラーになる
0233デフォルトの名無しさん
垢版 |
2018/08/05(日) 12:13:45.38ID:C8NdcnMU
>>230
>> そういう前提がない場合にまでそうする奴は単なるバカ
> も根拠薄弱。
必要もないのにコード量増やす奴はバカ
って書かないとわからんの? w
0234デフォルトの名無しさん
垢版 |
2018/08/05(日) 12:22:01.77ID:C8NdcnMU
> ※コピペ直後に「完全に一一致」でプロシージャ内置換すれば良いのは分かっているが、そういう問題ではない。

> ただあまりたくさん使ってると次々とコンパイルエラー出てイラっとするだけで・・・。

わかってるけどやりたくない
でもいらつくとかちょっと病院に行った方がいいレベル
0235デフォルトの名無しさん
垢版 |
2018/08/05(日) 12:32:44.13ID:jOOhioBF
>>233
最初の>>215の段階からRetが有効に使える場合のことしか書いてないよ

その前提を無視して>>219が変なこと言うから悪い
つまり>>219>>226>>233が悪い
0236デフォルトの名無しさん
垢版 |
2018/08/05(日) 12:39:05.42ID:DQLB2G4w
>>232
>記述量が増えればバグは増える、常識
そういう考え方もよく分かるよ。
だが途中で関数名代入を多様するのと、コーディングルールで途中でExitするというテンプレを定めるのとでは、バグの発生率は前者のほうが高いと自分は評価している。
実際この運用でうまく行ってるし意味がないなんてことはない。

そもそもは関数名代入が気持ち悪いと感じる原因と、自分がやってる対処法を上げて有用な異論がないか知りたかっただけだし。
0237デフォルトの名無しさん
垢版 |
2018/08/05(日) 12:46:59.88ID:jOOhioBF
記述量が増えるったって Dim ret と 最後の代入の2行だけじゃん。
途中の 「関数名 = 〜 」 という代入の記述を減らせるんだったら大した害悪じゃない。
最初からそういう話をしているのにね。
0239デフォルトの名無しさん
垢版 |
2018/08/05(日) 13:00:05.97ID:d6sOKofu
>>238
ヒープ使って合計の少ないものに足してます
0240デフォルトの名無しさん
垢版 |
2018/08/05(日) 13:30:42.82ID:VayD9W7b
行き違いがあるんじゃない?
コーディングルールとして決められていれば、多少記述が増えてもそんなもん何の問題もない
コーディングルールがない状態でいきなり>>227みたいな記述が出てくれば、ボンクラは意味がわからずに戸惑うだろう
0241デフォルトの名無しさん
垢版 |
2018/08/05(日) 13:51:42.51ID:7Eiwzs5v
な?
たかが返り値を返すだけの話なのに
グローバルにするだのRetに一時保存するだのExit Sub禁止するだの
名前を変えるときは注意深く使ってるとこ全部変えるだの
謎のオレオレルールが一気に湧き出してきた
これが関数名に代入方式の弊害だよ

VBAに染まってない一般的なプログラマなら
「関数名に戻り値代入ってなんかキモくね?」「せやなぁなんでreturn文ないんやろねぇ」
こう一瞬で同意を得られるはずなんだがVBAワールドだとこうなってしまう
まるで異世界に迷い込んだような感覚
0243デフォルトの名無しさん
垢版 |
2018/08/05(日) 14:22:10.24ID:C8NdcnMU
>>235
> 最初の>>215の段階からRetが有効に使える場合のことしか書いてないよ
>>215が有効とか思ってるのはお前らだけ

>>236
> 実際この運用でうまく行ってるし意味がないなんてことはない。
お前らは勝手にやってればいい。

>>237
> 途中の 「関数名 = 〜 」 という代入の記述を減らせるんだったら大した害悪じゃない。
記述は減ってない
関数名を変更した時の変更量が減るだけ
しかも本人が書いてる通り
> ※コピペ直後に「完全に一一致」でプロシージャ内置換すれば良い
だけなのに、何故はそれはやりたくないらしい w
0244デフォルトの名無しさん
垢版 |
2018/08/05(日) 15:39:03.72ID:fib/Q9e8
そもそも、仮に何度も関数名?に代入したとしてもその関数が長く無ければ混乱することも無い。
長い関数はそもそもダメるわけで最初から混乱することは無い。

関数を100行程度にするってのは常識だろ。
0246デフォルトの名無しさん
垢版 |
2018/08/05(日) 16:31:24.96ID:OTeO2/4+
>>245
そうか?
Cプログラミング診断室の人が許容される限界は100行までと言ってたからそれに準じたまでだが。
それに、だったらお前さんは短い関数で混乱してたということ?
0247デフォルトの名無しさん
垢版 |
2018/08/05(日) 16:32:17.90ID:lCYlyBjK
書き間違えでしょwww
俺は最長でも60行くらいだ。

それはともかく、関数名は最終的な答えを代入するためのものであって、
途中の値なんか決して代入したくないよって理由じゃないの?
少なくとも俺はそうだ。
0249デフォルトの名無しさん
垢版 |
2018/08/05(日) 16:39:11.36ID:OTeO2/4+
returnのある言語から入ってきたから違和感を感じるのかも知れないがreturnよりは自然だろ。

そもそも俺は関数名?に代入するということを習ったことが無い。
最初にFunctionプロシージャを見て全てを理解した。
自然に理解出来た。
0250デフォルトの名無しさん
垢版 |
2018/08/05(日) 16:53:49.71ID:DQLB2G4w
>>246,245
限界が100行なのであって、普段は50行とかに抑えるべきだと言いたかったんだと思う。
それを100行程度が常識だと勘違いしただけじゃないかな?
0251デフォルトの名無しさん
垢版 |
2018/08/05(日) 17:02:35.19ID:C8NdcnMU
> 関数を100行程度にするってのは常識だろ。
って言うのを限界と言うのは苦しいだろ w
0252デフォルトの名無しさん
垢版 |
2018/08/05(日) 17:40:35.93ID:FkgLp/sd
ちょっと待ってほしい
他の言語なら50行で書ける関数もVBAだと100行に膨れ上がるから仕方ないのではないだろうか
0253デフォルトの名無しさん
垢版 |
2018/08/05(日) 18:38:48.57ID:FpUB4uXn
Cプログラミング診断室の人がVBAに言及するのか?
VBAを使ってはいけない原理主義者の人は相変わらずこじつけがスゴイなw
0254デフォルトの名無しさん
垢版 |
2018/08/05(日) 19:19:38.85ID:OTeO2/4+
なんじゃそりゃ。
どんな言語でも短くすべきなのは常識だろ。

50行だろうが100行だろうが関数名?代入しても混乱しないだろ。
0255デフォルトの名無しさん
垢版 |
2018/08/05(日) 19:21:07.38ID:OTeO2/4+
>>251
何だ?
10行じゃマズい何かがあるとでも思ってるのか?

それはさすがにプログラミング知らなすぎ。
0256デフォルトの名無しさん
垢版 |
2018/08/05(日) 19:23:39.26ID:NFAVCAdx
手続き型だとそこまで細分化してもかえってわかりにくいけどな
0258デフォルトの名無しさん
垢版 |
2018/08/05(日) 20:48:23.33ID:xg7vFkon
質問です
他のBookから元bookの"テーブル1"を参照するになやんで
Range(myBook.Name & "!テーブル1")
としましたがもうちょっといい方法はないのでしょうか

Sub 元WBのテーブル範囲を名前から参照したい()
Dim myBook As Workbook
Set myBook = ActiveWorkbook
Debug.Print Range("テーブル1").Address
'
Dim TempWB As Workbook
Set TempWB = Workbooks.Add

Debug.Print Range(myBook.Name & "!テーブル1").Address  ’これ

End Sub
0259デフォルトの名無しさん
垢版 |
2018/08/05(日) 20:48:50.34ID:VayD9W7b
他の言語ならともかくvbaなんてスクリプトなんだから多少行が増えても普通でしょ
0261デフォルトの名無しさん
垢版 |
2018/08/06(月) 18:40:21.72ID:srsn67Ss
基本vbaは良くも悪くもやっつけ仕事片付ける用途だからなぁ
いっそ他人が読んだりメンテしたりすることを全く考慮しないのも手っていう記事見たことがあるけど
極論とはいえ、適材適所って意味ではそれも手だなとおもた
0262デフォルトの名無しさん
垢版 |
2018/08/06(月) 21:02:33.88ID:nuq1zyN5
vbaは使い捨てのマクロとかしょっちゅうだしね
他の言語とはかなり正確が異なる
0263デフォルトの名無しさん
垢版 |
2018/08/06(月) 21:57:34.50ID:DlUo5dI6
・誰かが質問をする
 ↓
・とりあえず誰かが質問にダメ出しをする
 ↓
・そのうち誰かが回答する
 ↓
・俺の方が上と違う人が別の回答をする
 ↓
・どちらの回答も的外れなためにダメ出し合戦が始まる
 ↓
・不利になってきた方がそもそもVBA自体が糞と論点をそらす
 ↓
・とことん荒れる
 ↓
・各自「やっぱり俺の知識が至上だったな」と思い矛を収める


・質問者「で、俺の質問は…」
0265デフォルトの名無しさん
垢版 |
2018/08/06(月) 22:09:50.77ID:1zJm1iav
>>261
自分しか使わない書き捨てツールと社内に配布して他の人に使ってもらうツールじゃ組み方は違うわな
別にVBAに限った話じゃないけど
0266デフォルトの名無しさん
垢版 |
2018/08/07(火) 01:29:58.65ID:8F5FPkZy
質問に対してこんな感じでいいんじゃね〜って教えるのと、
仕事で残すコードでも組み方は全然違ったりする
0267デフォルトの名無しさん
垢版 |
2018/08/07(火) 12:27:46.44ID:o04k1oyM
変数を宣言したら直ぐに初期化するように、と解説サイトにはよく書かれているのですが、
ループカウンタも初期化する必要があるのでしょうか
0268デフォルトの名無しさん
垢版 |
2018/08/07(火) 12:50:25.25ID:Hr4AgTw6
vbaレベルならいらないんじゃねて思うけどね
グローバルとかオブジェクト変数はやるけどそれ以外はして無いわ
0269デフォルトの名無しさん
垢版 |
2018/08/07(火) 12:58:23.99ID:zpIkHTy8
>>267
VBAの変数には既定値というのがちゃんと定義されているので、初期化は必ずしも必要ない
VBAの仕様を知らない人にコードを見せる可能性があるなら初期化してもいいけど、
俺個人の考えでは、宣言と初期値の代入は分けて書くべき

質問の文脈から判断して、ループカウンタとはFor文で使うカウンタ変数のことだろうけど、これは初期化しなくていい
しかし「ループカウンタ」はもっと広い概念を表すので、初期化が必要なケースも多々存在する
0271デフォルトの名無しさん
垢版 |
2018/08/07(火) 18:35:06.29ID:o04k1oyM
ありがとうございます。
特に初期値は設定せずにそのまま使うことにします。

ところで、VBAを触り始めてから他のプログラミング言語にも興味が出てきました。
使い勝手や習得時間を省みて、VBAを習得している者にとって一番コスパがいい言語は何でしょうか。
やはりVB.NETでしょうか。

スレチでしたら無視してください。
0272デフォルトの名無しさん
垢版 |
2018/08/07(火) 19:02:13.91ID:kevEyuIc
なんかの言語をひとつ習得できる人なら何でもいいよ
言語別の利用者数、給与、分野、いろいろ調べてみ
0273デフォルトの名無しさん
垢版 |
2018/08/07(火) 20:12:05.34ID:BqQIYASV
>>271言語よりIDEの開発環境が充実してる方が覚えやすい
VisualStudioがおススメ
C#の方が圧倒的にサンプルも多いし解説Webページも多いので良いのでは
0274デフォルトの名無しさん
垢版 |
2018/08/07(火) 20:40:19.29ID:50B7Hyqk
>>271
VB.NETとC#のコードを見比べて自分が分かりやすいと思った方かな
または、こっちの方が好きだと思える方
0275デフォルトの名無しさん
垢版 |
2018/08/07(火) 20:44:08.52ID:BqQIYASV
それにC#ならAndroidアプリも作れるしiOSアプリも作れる
0276デフォルトの名無しさん
垢版 |
2018/08/07(火) 20:56:18.42ID:i+W8MTkr
>>271
日常的な小手先の処理したいならPythonやNode.jsみたいなスクリプト言語
がっつりアプリ作りたいなら最近流行りのGoやSwiftやkotlin
0278デフォルトの名無しさん
垢版 |
2018/08/07(火) 21:33:21.73ID:eM6c9wNK
仕事で社内サイトの検索結果を数十ページ出して
その中から必要なデータをExcelに貼り付けるVBAをCreateObject(" InternetExplorer.Application"を使って作ったのだけど
社内ネットワークが重すぎて1ページあたり1分以上、つまり20ページあると20分以上というものすごい時間がかかります。
これ各ページの平行作業かなにかで、どんなにページ数があっても1分強くらいですます方法はないのですか?
0279デフォルトの名無しさん
垢版 |
2018/08/07(火) 21:44:50.55ID:eM6c9wNK
ちなみに今は
1ページ開いて、そのページを完全に読み取ったら(●ここに時間がかかっている。30秒〜60秒くらいか)、IEオブジェクトを利用してGetIdByIDなどでデータを読み込み、そのページを閉じ、
それをページ数だけ繰り返しています。
0281デフォルトの名無しさん
垢版 |
2018/08/07(火) 22:03:53.33ID:eM6c9wNK
いや、あるのでは?
他言語ではマルチスレッドというやつかな?
0282デフォルトの名無しさん
垢版 |
2018/08/07(火) 22:07:46.26ID:zpIkHTy8
IEオブジェクトを配列にしてWEBページの同時読み込みに挑戦してみたことあるけど、なぜかVBAではうまくいかなかった
これはいまだに理由がよくわからん
0283デフォルトの名無しさん
垢版 |
2018/08/07(火) 22:52:34.26ID:Ylf+FX0e
VBScriptで処理を書いて
マルチプロセスでやってみるのはどうだろう

ネットワークが遅いのが原因だとすると
変わらないかもしれないけど

2/3 ~ 1/2 くらいは期待できるんじゃないかな

社内DBに直結してデータぶっこ抜けないかな
0284デフォルトの名無しさん
垢版 |
2018/08/07(火) 23:01:00.74ID:WUtnzCvr
>>246
マーティン・ファウラーはメソッド平均6行ぐらいだってさ
俺もC#やJavaを使うときはだいたいそれと同じぐらいに自然と落ち着く
VBAは冗長で書きにくいから10行〜20行ぐらいになっても我慢するけどね(どうせすぐ破棄するってのもあるが)

100行ってのはおそらくだが速度最適化のために可読性保守性を無視したコードならそれぐらいまでOKってことではないかな
C言語は何よりもまず速度みたいなところがあるからね
0285デフォルトの名無しさん
垢版 |
2018/08/07(火) 23:10:51.13ID:50B7Hyqk
>>284
俺もC#では平均だと6,7行くらいだな
Javaも最近やってないがそんくらいだったと思う
0286デフォルトの名無しさん
垢版 |
2018/08/07(火) 23:14:03.05ID:zEgIKMkK
>>281
エスパーすると社内サイトの検索処理がダメダメで異様に時間食ってると思うのでクライアントでいくら頑張っても無理
0287デフォルトの名無しさん
垢版 |
2018/08/07(火) 23:19:30.40ID:EHUuk9/6
ネットワーク越しの処理ってVBA異常に遅かった記憶があるなぁ
0288デフォルトの名無しさん
垢版 |
2018/08/07(火) 23:44:33.38ID:+TFKzcWv
6,7行とか本当?
明らかに保守よりも作成する頻度の方が高いから、結構雑になる
下はディレクトリの一覧ファイル作るマクロ。確か5.6回しか使っていない
※数万ファイルのファイル名を一覧にしたかったらしい

Sub main()
Application.EnableEvents = False
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
strPath = InputBox("調べたいフォルダを絶対パスで入力してください。", "ファイル一覧", "c:\")
Cells(3, 2) = " "
Range("A3", ActiveCell.SpecialCells(xlLastCell)).ClearContents
Range("A3").Select
i = 3
FileDisp strPath, i
Application.EnableEvents = True
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
End Sub
0289デフォルトの名無しさん
垢版 |
2018/08/07(火) 23:44:40.74ID:+TFKzcWv
Private Sub FileDisp(strPath, i)
Set objFs = CreateObject("Scripting.FileSystemObject")
Set objFld = objFs.GetFolder(strPath)
'folder
Cells(i, 2) = objFs.GetBaseName(objFld.Name)
Cells(i, 3) = objFld.ParentFolder.Path
Cells(i, 4) = Int(objFld.Size / 1024)
Cells(i, 5) = "folder"
Cells(i, 6) = objFld.DateCreated
Cells(i, 7) = objFld.DateLastAccessed
Cells(i, 8) = objFld.DateLastModified
i = i + 1

For Each objFl In objFld.Files
Cells(i, 2) = objFs.GetBaseName(objFl.Path)
Cells(i, 3) = objFl.ParentFolder.Path
Cells(i, 4) = Int(objFl.Size / 1024)
Cells(i, 5) = objFl.Type
Cells(i, 6) = objFl.DateCreated
Cells(i, 7) = objFl.DateLastAccessed
Cells(i, 8) = objFl.DateLastModified
i = i + 1
Next
For Each objSub In objFld.SubFolders
FileDisp objSub.Path, i
Next
End Sub
0290デフォルトの名無しさん
垢版 |
2018/08/07(火) 23:46:49.50ID:+TFKzcWv
この辺は配列に入れようかと思ったけどもういいやってなった
使い捨てじゃなければもう少し綺麗にまとめたいんだけど、
そんな暇は、ない

Cells(i, 2) = objFs.GetBaseName(objFld.Name)
Cells(i, 3) = objFld.ParentFolder.Path
Cells(i, 4) = ・・・
0291デフォルトの名無しさん
垢版 |
2018/08/08(水) 00:43:07.64ID:vvQmCMQJ
扱うプログラミング言語によるエンジニアの年収差「Go」が1位に 2018年8月7日
 ・スタンバイが「プログラミング言語別年収ランキング2018」を発表した
 ・1位に輝いたのは、さまざまな分野で利用されている「Go」
 ・年収中央値は600万円で、10位の「C言語」と比べて75万円高いという
 http://image.news.livedoor.com/newsimage/stf/2/e/2e6a5_1524_19def02164a84861254ba51be419f53e.jpeg
http://news.livedoor.com/article/detail/15125851/

Goってなんやねん…
って言うてたらアカンのんか…
0293デフォルトの名無しさん
垢版 |
2018/08/08(水) 03:02:57.55ID:vtZ7Dair
>>282
複数のIE インスタンスがあっても、1つしか実体化されていないとか?
それか、それらが共有化されているとか?

すべてのインスタンスを、別々に実体化したか?
0294デフォルトの名無しさん
垢版 |
2018/08/08(水) 05:59:42.24ID:1w8vuJFc
>>293
インスタンスとは実体化されてるそのもののことだと思うけど。どういうこと?
0295デフォルトの名無しさん
垢版 |
2018/08/08(水) 06:57:52.22ID:QCGkbsMF
カップヌードルにお湯を入れます、これがインスタンス化です
カップヌードルにお湯を注いでいたとしても、それが同じカップヌードル
だったらできあがるカップヌードルは1つだけですよね、そういうことです
0296デフォルトの名無しさん
垢版 |
2018/08/08(水) 08:10:17.80ID:Ot2gBzQj
>>279
InternetExplorer.Applicationは遅い。
ページにもよるけどMSXML2.XMLhttpとかhtmlflle使った方が全然速い。
ページにもよるのは遷移後にJavaScriptなどでページ内容が変わる場合等は対応出来ない場合があるから。
0297デフォルトの名無しさん
垢版 |
2018/08/08(水) 09:27:23.26ID:wHDW8dSe
Webアプリを作って取得したデータをエクセルで読み込めば早いのでは?
0298デフォルトの名無しさん
垢版 |
2018/08/08(水) 11:19:22.65ID:wMtMcgI8
社内サイトなら>>283の言うとおりDBを直接アクセスするのが正解なんだが、
「そういう想定で作ってません」てパターンもありそう。
0299デフォルトの名無しさん
垢版 |
2018/08/08(水) 12:44:02.26ID:fnpjJPlP
一般社員用クライアント - WEBサーバ - DBサーバ - 管理者用クライアント
WEB経由じゃないと、DBには直接アクセスできないってケースもよくある
0300デフォルトの名無しさん
垢版 |
2018/08/08(水) 13:19:28.34ID:hYvxbMfU
以前データをCSVに書き出す社内Webがクソすぎて
解析したらページ内のパラメータjoinしてSQL文作ってPOSTで投げて取得してただけだったので
XmlHTTPで直接取るようにしたことあるわ
0302デフォルトの名無しさん
垢版 |
2018/08/08(水) 19:14:31.05ID:woeaWRrx
DBに無制限で直接アクセスってヤバくね?
0303デフォルトの名無しさん
垢版 |
2018/08/08(水) 20:01:33.99ID:5XCxVkf/
無制限のアクセスはやばいけど

このテーブルだけ許可しますとか
SELECTだけ許可しますとか
このIPからだけ許可しますとか
できるっしょ
0304デフォルトの名無しさん
垢版 |
2018/08/08(水) 21:58:07.18ID:F+QXSseb
社内DB全開放して自由にクエリ投げれるようにしたら事務の人間半分くらいいらなくなりそう
というかVBAなんかよりSQL勉強したほうが手っ取り早く幸せになれる人多いんじゃないかと前々から思ってる
0306デフォルトの名無しさん
垢版 |
2018/08/08(水) 22:22:03.67ID:+Hip1o5f
>>304
報酬次第だね
事務のコストを圧縮するごとにシステム部の報酬が上がるなら、
システムは本気で頑張り続けるだろうね

現実的にはなぜかそれが行われないので、いつまで経っても事務が事務事務している
0307デフォルトの名無しさん
垢版 |
2018/08/08(水) 22:23:00.50ID:+Hip1o5f
ただ、下手にアクセスで作ると自分以外触れなくなって何かあったら即死する
中小企業なら、エクセル+エクセルvbaが最強だと思っている
0308デフォルトの名無しさん
垢版 |
2018/08/08(水) 22:49:37.58ID:jNIJWXgx
>>307
アクセス専門業者を呼べばいいだけじゃん
0310デフォルトの名無しさん
垢版 |
2018/08/09(木) 00:59:24.50ID:JCoC1JfU
1から開発で今更Accessも無いだろう。データベースシステムでスタンドアロンのシングルユーザーというのがそもそも想定しにくい
0311デフォルトの名無しさん
垢版 |
2018/08/09(木) 01:02:04.53ID:cF5SxCfL
当たり前のことなんだけど、これまでなかなか上手いたとえが思い付かなかったが…

Manabu Ueno @manabuueno 16:46 - 2018年8月1日
 ユーザーの要求をそのまま機能にすると役立たない物になってしまいます。
 デザイナーはユーザーの要求を抽象化して本来的な原理を見つける必要があるのです。
 例えば「直進したい」「左折したい」「右折したい」という要求に対して、3つのボタンではなく、
 1つのハンドルを提案できなければいけません。
 https://pbs.twimg.com/media/Djf5rTuUYAEI9sw.jpg
https://twitter.com/manabuueno/status/1024562075526254592

この例えは現場の人と話すときにも使えそうだな
https://twitter.com/5chan_nel (5ch newer account)
0312デフォルトの名無しさん
垢版 |
2018/08/09(木) 06:36:39.58ID:Uz7F5Yyf
真の欲求って奴だな
これを知らないとデスマーチからいつまで経っても抜け出せなし
0313デフォルトの名無しさん
垢版 |
2018/08/09(木) 07:59:59.62ID:TQ/3uoG6
ソフトごとに違う使い方やI/F覚えるよりSQL覚えた方が早いしずっと役立つんじゃね?
0314デフォルトの名無しさん
垢版 |
2018/08/09(木) 08:16:05.94ID:XQnUSO4S
>>313
なるほど!
じゃあ社内DBに直接アクセスしたいのですが、その方法はどうしますか?
HTMLのフォームに入力してSubmitすれば次のページでいろんなデータが見れるようになっているのですが
そのHTMLフォームがあるページのHTMLソースを見ればその中のどこかに社内DBのアドレスやログイン方法みたいなのが書いてあるのですか?
0315デフォルトの名無しさん
垢版 |
2018/08/09(木) 08:22:15.68ID:0WK0pW+2
>>314
そんなバカな
HTMLから投げるのはサーバーサイド処理のスクリプト
ASPだったりCGIやPHP
ページのソースに書いてあったら怖いだろ
0317デフォルトの名無しさん
垢版 |
2018/08/09(木) 08:38:23.31ID:sKYMgflt
そういやExcel VBAでもADO使えばSQL使えるみたいだけど、どれくらい制限あるの?
0318デフォルトの名無しさん
垢版 |
2018/08/09(木) 09:09:17.52ID:BeIAvoie
???
そもそも何に接続したいの?
SQLといってもそれによるでしょ。

接続できるアカウント用意してもらって、
接続用ODBCドライバ入れて良いかどうかとか、情シスに聞いてみれば?
0321デフォルトの名無しさん
垢版 |
2018/08/09(木) 18:30:51.09ID:sKYMgflt
>>319
>>320
え、そうなんだ
じゃあ単にシート内を検索するときもDictionary使わずに、ADOで接続してSQL使った方がシンプルで応用がききそうだね
もっともExcelでSQLの命令書くのが簡単なのなのかはわからないけれども
0322デフォルトの名無しさん
垢版 |
2018/08/09(木) 18:39:29.03ID:XQnUSO4S
ところで新バージョンExcelで「游ゴシック」がうざくてしかたがない。
これ地獄の底へ抹消する方法ない?

しかも「游」ってなんだ?「遊園地」の「遊」でもないし。
0323デフォルトの名無しさん
垢版 |
2018/08/09(木) 18:47:08.22ID:JCoC1JfU
Web制作では游ゴシは福音なんだがな...嫌いならフォントだけアンインストールすりゃいんじゃね?
0324デフォルトの名無しさん
垢版 |
2018/08/09(木) 19:24:43.48ID:YxGb3uhT
>>311
たとえおかしくね?
ユーザーが右折したい左折したいっていってるならボタンが正解だろ
コーナーが90度だけじゃなくてたくさんあるっていう状況まで汲めってそりゃ無茶ぶりだろ
0325デフォルトの名無しさん
垢版 |
2018/08/09(木) 19:26:31.27ID:FjggVehY
既定のフォント設定で簡単に変更は出来るけど、他人の作るブックはどうにもならんからな…
0326
垢版 |
2018/08/09(木) 19:29:47.37ID:Iu9wUSgQ
>>325
それだけでは足りないぞ
0327デフォルトの名無しさん
垢版 |
2018/08/09(木) 20:56:51.04ID:cF5SxCfL
>>324
「コーナーが90度だけ『じゃなくてたくさんある』っていう状況」まで汲め

まずは、要求を抽象化してその可能性に気づき
次に、こちらから質問してそういうケースが起きうるのかを確認する
それだけの話で超能力でも忖度でもムチャぶりでもないよ
(あ、でも確かに最初の抽象化ができない人にやれというのはムチャぶりになるかもね)
0328デフォルトの名無しさん
垢版 |
2018/08/09(木) 21:10:58.19ID:ou4vsgQB
ヒアリングしても具体的な典型例のみが挙がるかレアケースばかり挙がることが多い気がする
実務やってる人間にとって当たり前すぎることは出てこなくて、試作段階で出来なくてもいいのかの確認とったら出来ないと話にならんとか
俺は自部署以外だと多部署からの依頼を受けて作る程度だからある程度実務がわかる分マシだけど、プロは畑違いの仕事の他社とやりとりするんだから大変だろうな
0331デフォルトの名無しさん
垢版 |
2018/08/10(金) 00:05:32.03ID:Xmz6l8g0
>>321
ODBCだったら
Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)
というドライバを使うことになるけど、これの機能が貧弱だから凝ったSQLは受け付けてくれない。
単純なWHERE文での抽出だったらできるから、形式が決まったシートなら便利に使える可能性はある。
0332デフォルトの名無しさん
垢版 |
2018/08/10(金) 00:07:31.23ID:Xmz6l8g0
>>327
大変だねえ、委託業務は
0334デフォルトの名無しさん
垢版 |
2018/08/10(金) 00:13:58.45ID:KVMpRfYs
あらゆることを想定したお見積がこちらです


なんでそんなかかるの?と
0335デフォルトの名無しさん
垢版 |
2018/08/10(金) 00:36:24.65ID:GY+5Xvxa
>>327
いや、ハンドルとコーナーの話だから抽象化やらも考えやすいだけじゃね?っていう
車とか曲がる行為とかがある程度普遍的だから敷衍できる
でも普段やってる仕事ってそのレベルで進んでるか?ってことよ
抽象化しろっていうのも一見正論だしある程度はしてるけど
曲がるを実装するためにハンドルは俺には飛躍が激しく思える
0336デフォルトの名無しさん
垢版 |
2018/08/10(金) 00:45:08.80ID:nHU64y35
抽象化が苦手そうなのがよく伝わってくる
アレはアレ、コレはコレで別モンとして対処するのが得意そうだな
0342デフォルトの名無しさん
垢版 |
2018/08/10(金) 13:30:13.92ID:u/kCZrV9
あるクラスのインスタンスをいっぱい作ってそれをCollectionに入れてて
それをその1つの要素でソートするためにはどうしたらいいですか?
VBAにはソート関数みたいなのはないのですか?

イメージとしては人間クラスがあって、年令でソートする感じ。
0344デフォルトの名無しさん
垢版 |
2018/08/10(金) 14:51:32.56ID:gxVIX6OQ
>>342
1 年齢と連番を入れた配列を別に作る
2 その配列を年齢でソートして順位を出す
3 インスタンス列をその順番で引っこ抜いて新しいcolllectionとする
0345デフォルトの名無しさん
垢版 |
2018/08/10(金) 16:02:16.73ID:ZQbSW7gd
列のソート時に行を崩さない方法について質問させてください。

手作業では成功してます。
一列オートフィルタ→ソートのカスタムから指定文字列選択→完。
マクロだと指定した行のみソートになってしまいデータが壊れてしまいます。
ご回答よろしくお願いします。
0346デフォルトの名無しさん
垢版 |
2018/08/10(金) 18:20:14.79ID:u/kCZrV9
>>344
2にもソートが入ってるけど
そのソートの方法が知りたいのですが。
VBAにはもともとの機能としてソートは入っていないかな?

作業シート作って、そこにデータ入れて、Excelの並べ替えの機能を使ってやる方法は思いついたけど
それはダサい、作業シート作るなんてスマートじゃない、等の理由で好きじゃないのですが。
0347デフォルトの名無しさん
垢版 |
2018/08/10(金) 18:55:47.50ID:9rAsrzZF
VBA自体がダサくてスマートじゃないから諦めましょう
生粋のVBAerはこういうとき自作のソートサブルーチンをコピペするらしいです
0348デフォルトの名無しさん
垢版 |
2018/08/10(金) 19:00:51.38ID:hEgtpW6D
お前の「ダサい、スマートじゃない、好きじゃない」なんて知ったこっちゃない
0349デフォルトの名無しさん
垢版 |
2018/08/10(金) 20:01:43.47ID:u/kCZrV9
VBAってソート関数ないの?
ほんとウンチみたいな言語ですね
0351デフォルトの名無しさん
垢版 |
2018/08/10(金) 20:26:39.07ID:u/kCZrV9
>>350
あまりわたしを怒らせないほうがいいぞ
0352デフォルトの名無しさん
垢版 |
2018/08/10(金) 20:27:17.52ID:u/kCZrV9
わたしは怒ったら怖いんだぞ
0353デフォルトの名無しさん
垢版 |
2018/08/10(金) 20:43:22.07ID:TzsaHsn2
自分でクイックソートでも組んでクソしながら寝とけ
0354デフォルトの名無しさん
垢版 |
2018/08/10(金) 20:53:13.90ID:cfNcxUIl
ソートってお前ら、せっかくのエクセルvbaなんだから
セルに一度いれたらいいだけじゃないか?
何万行かあってもエクセルのソートはそこまで遅くないだろう
0355デフォルトの名無しさん
垢版 |
2018/08/10(金) 20:54:14.30ID:EZ4av1qU
そういやSortがkeyが三つまでしか指定できない仕様は変わらんのかな
Excelだと四つ以上指定できるのに、VBAだと複数回に分けてやる必要があるとかいうよくわからない状態になってるし
0356デフォルトの名無しさん
垢版 |
2018/08/10(金) 21:13:10.19ID:DHT31mYJ
>>352
どうかこれで怒りをお鎮めください

Sub Sort(a)
 Dim i, j, t
 i = 0

 Do
  If UBound(a) <= i Then
   Exit Do
  End If

  j = 0

  Do
   If UBound(a) <= j Then
    Exit Do
   End If

   If a(j) > a(j + 1) Then
    t = a(j)
    a(j) = a(j + 1)
    a(j + 1) = t
   End If

   j = j + 1
  Loop

  i = i + 1
 Loop
End Sub
0357デフォルトの名無しさん
垢版 |
2018/08/10(金) 21:18:56.66ID:hElUeWw3
>>346
数値のソートは自分で頑張って実装しなさいよ
順序づけインデックスを使って任意のコレクションを並べ替えるロジックは汎用性のあるものだから
自作する意義は十分にある。
0358デフォルトの名無しさん
垢版 |
2018/08/10(金) 21:21:33.75ID:hElUeWw3
汎用性があるってだけでなく、
ひとつの順序づけインデックスを使って複数のコレクションを同じ順に並べ替えることが出来るからね
0360デフォルトの名無しさん
垢版 |
2018/08/10(金) 22:19:22.24ID:BBFwYEVu
>>359
ごめん一般的にどう呼ぶか知らんからテキトーな名前で言った
ソート対象のデータの横にナンバーが振ってあったとして、データと一緒にそいつもソートすると思ってください。
その後、ナンバー部分を取り出したもの。
0362デフォルトの名無しさん
垢版 |
2018/08/10(金) 23:42:39.74ID:tKZj7bhP
ソートが出来るコレクションは限られてる
目的にあった使用ができるか調べればいい
0364デフォルトの名無しさん
垢版 |
2018/08/10(金) 23:56:04.31ID:Xmz6l8g0
>>363
そうだけど>>358のメリットががが
0366デフォルトの名無しさん
垢版 |
2018/08/11(土) 11:39:39.78ID:K8a9DxhQ
>>365
それどうやって使えるようにするの?
0368デフォルトの名無しさん
垢版 |
2018/08/11(土) 12:05:04.95ID:YyI+aygL
λもLinqもないVBAに.NETコレクションを渡されてもあんまり嬉しくないでしょう

Private app As New MyDotNetComLib.MyApp

Sub イベントハンドラ()
 app.DoSomething ThisWorkbook
End Sub

こっちのほうが楽だよ
コレクションのソートはC#サイドで好きなだけできる
0369デフォルトの名無しさん
垢版 |
2018/08/11(土) 12:20:08.44ID:cu5jnq2r
>>368
比較関数は渡せるの?
0373デフォルトの名無しさん
垢版 |
2018/08/11(土) 13:11:49.02ID:0HQvSoaX
>>370
楽といっても、C#スキルのある人限定の話でしょ
VBAのメイン利用層は、現場のエンドユーザーであり
本職のプログラマーじゃないんだよ
0374デフォルトの名無しさん
垢版 |
2018/08/11(土) 13:13:13.81ID:XUOVQ5jM
そのC#側のコードはどう書くんだ
メモ帳か?HTMLタグ手打ちでホームページ作るのよりしんどそうだが
ああ、今はオンラインIDEってのもあるのか
IE11が使用環境に入ってなきゃ意味ないけど
0375デフォルトの名無しさん
垢版 |
2018/08/11(土) 13:15:21.09ID:K8a9DxhQ
>>367
ありがとうでガンス。
なんだかよさげザマスね。

ところでこのCreateObject("System.Collections.ArrayList")を収納する変数の型はなににしたらよいザマしょうか?
F2で出るオブジェクトブラウザに表示されてそんなメソッドが使えるか調べたいでガンスが、それにはどうしたらいいでしょうか?フンガー
0376デフォルトの名無しさん
垢版 |
2018/08/11(土) 13:38:17.51ID:KSv2Sz3+
>>375
受け手の変数をVariant型かObject型で定義しとけば処理実行時にArrayListオブジェクトを受け入れる
Scripting Runtimeとかのオブジェクトを実行時バインディングで使用するときとまったく同じ

.NETライブラリのパスを参照先に設定すれば、ArrayList型変数の宣言、インテリセンス入力、オブジェクトブラウザでのオブジェクトモデルのブラウジングも有効になるよ
ライブラリパスは自分で調べてね
0377デフォルトの名無しさん
垢版 |
2018/08/11(土) 13:53:32.73ID:cu5jnq2r
>>372
C#側をライブラリとして固定できなくなっちゃう
0378デフォルトの名無しさん
垢版 |
2018/08/11(土) 14:18:44.31ID:YyI+aygL
>>377
すまない
MyDotNetComLibと書いたのが悪かったようだね
これはライブラリじゃなくアプリケーションのつもりで書いた(MyApp)
キミが考えているだろう一般的な意味でのライブラリはアプリケーション内部で好きに参照してくれればいい
0379デフォルトの名無しさん
垢版 |
2018/08/11(土) 14:34:57.92ID:cu5jnq2r
>>378
ちょっと意味がわからん
比較関数をとっかえひっかえしたいときどうするの?
0380デフォルトの名無しさん
垢版 |
2018/08/11(土) 14:38:33.82ID:YyI+aygL
>>379
C#側でとっかえひっかえすればいい

互いのイメージに齟齬があるのかもしれない
まずVBAで書いたらどうなる?
0381デフォルトの名無しさん
垢版 |
2018/08/11(土) 15:02:32.83ID:cu5jnq2r
>>380
VBA側で
Function compare(a, b) As Boolean を書いて
ソートするときに compare を渡せるかって意味だけど。
「C#でとっかえひっかえ」っていうのはつまりC#のコードを都度書き加える、って意味だろ?
C#側でそんな粒度での改修はやりたくないよ。
0382デフォルトの名無しさん
垢版 |
2018/08/11(土) 15:11:49.88ID:YyI+aygL
>>381
そうか?
バックグラウンドで自動テストしてくれるC#のほうが高頻度の修正ではだいぶ有利だろう
逆にVBAでそんな粒度の改修なんて俺はやだよ
テストの工数で死んじゃうよ
0383デフォルトの名無しさん
垢版 |
2018/08/11(土) 15:24:07.75ID:cu5jnq2r
>>382
C#側に比較関数をいくつか書いたとして、VBAではどういう方法で比較関数を選ぶんだ?
それともVBA側に選択ないのか?
0384デフォルトの名無しさん
垢版 |
2018/08/11(土) 15:26:35.53ID:CkFe1vux
それってVBAでやる必要あるの?
0385デフォルトの名無しさん
垢版 |
2018/08/11(土) 15:31:01.25ID:759gB6fj
VBA側ではワークブックを渡すだけにしてあとは全部C#でやれっていう皮肉だろ
皮肉が面白くないってのは置いといて>>368を見てそれが理解できないのも相当ヤバい
0386デフォルトの名無しさん
垢版 |
2018/08/11(土) 15:44:44.45ID:YyI+aygL
>>383
比較関数を選ぶのはC#側だよ
当然VBA側じゃない

>>384
この手の処理はVBAでやる必要はまったくないよ
必要ないからC#でやろうって話をしている
ただしExcelそのものは優れたホスト環境なので捨てるのはもったいないし積極的に使いたい
なのでVBAはExcelとのインタラクションに集中してもらい
コアな仕事はすべてC#にディスパッチしてやってもらおうという考え方だね
0387デフォルトの名無しさん
垢版 |
2018/08/11(土) 15:45:41.89ID:cu5jnq2r
>>385
なんか1oもわからない
VBAでできないこと(コレクションのソート)をC#で補うという話なんだぜ。
0388デフォルトの名無しさん
垢版 |
2018/08/11(土) 15:53:33.14ID:cu5jnq2r
>>386
なんだ、やる仕事の数だけそれに対応したC#プログラムがあるってスタイルか。
それなら理解できるが極端だな。
0389デフォルトの名無しさん
垢版 |
2018/08/11(土) 16:01:58.82ID:YyI+aygL
>>388
そう
そしてそれ(仕事の数だけVBAプログラムがある)はVBAでも同じでしょ
だったらどうせ作るなら簡単なC#のほうがいいってこと
極端とは思わないけどね
コアロジックとインフラを可能な限り分離しようって発想はプログラマなら当たり前だから
0390デフォルトの名無しさん
垢版 |
2018/08/11(土) 16:03:32.17ID:WNr/dTgn
.NETFrameworkを使えばいいやんと言うのはわかるけどC#とか引っ込みつかなくなった知ったかのあがきにしか見えん w
0391デフォルトの名無しさん
垢版 |
2018/08/11(土) 16:18:50.45ID:KSv2Sz3+
VBA以外の言語を使用するアプリケーション開発が出来ない環境も普通にあったりするからね
なので、ArrayListやQueueやStackなど、.NETのオブジェクトであっても引数付きコンストラクタを使用しないクラスならば使えるってことは覚えといた方がいいよ
0392デフォルトの名無しさん
垢版 |
2018/08/11(土) 16:20:22.67ID:cu5jnq2r
>>389
VBA/ExcelはUIとデータホルダ役でしかなく、処理はC#ということ自体はわかる。
だけどきっかけはVBAのコレクションをソートするにはどうしたらいい、って話だった。
あんたのスタイルだと「さあここでソートしよう」なんて判断も要求もVBA側には要らなくなるな。
0393デフォルトの名無しさん
垢版 |
2018/08/11(土) 16:56:58.80ID:YyI+aygL
>>392
そうだ
VBA側には要らなくなるんだよ
これですっきりしたね
0394デフォルトの名無しさん
垢版 |
2018/08/11(土) 18:48:11.02ID:8odd+763
>>391
おまえがそういう畑を歩いてきたのはかまわないが、
そんな環境は「普通」ではないってこと知った方がいいよ
0395デフォルトの名無しさん
垢版 |
2018/08/11(土) 18:57:02.54ID:cu5jnq2r
まさかまたプロ様かね
0396デフォルトの名無しさん
垢版 |
2018/08/11(土) 19:09:51.09ID:BZfhgdqm
だから、何度も言ってるがユーザーインターフェースはExcelの方が良いんだよ。
業務のメインがExcelなんだから。
とすると.netの場合VSTOということになる。
で、わざわざそこまでする程のことがやりたいかどうかということになる。

結局殆どの場合はVBAということになる。
あとはやりたいことによる。
ソート1つのために頑張って、しかも使う側に余計な配付物が必要となれば、それを補って余りある程のリタ―ンが必要。

Excel上だけどVBAではどうにもならないことをしたい場合ぐらいだな。
0397デフォルトの名無しさん
垢版 |
2018/08/11(土) 19:14:22.31ID:BZfhgdqm
>>394
残念ながらVBA使ってる所はそういう所多いよ。
アプリ1つ入れるのに申請が必要な所は多いし、却下となることもある。

どうしてもって時は申請するけど、VBAだけでどうとでもなるからな。
どうとでもならない時にはじめてVisualStudioを入れてもらう。
0398デフォルトの名無しさん
垢版 |
2018/08/11(土) 19:35:19.38ID:0HQvSoaX
>>397
うちはきついぞ
・利益を生まない投資は不可
・フリーソフトのインストール禁止
・エンドユーザーによるアプリ開発禁止
・一般職員のインターネット利用禁止

何かしたければプリインストールのExcel・Accessで何とかしろという体制
0400デフォルトの名無しさん
垢版 |
2018/08/11(土) 19:51:49.13ID:YyI+aygL
>>391
いや無いだろ
仮にExcelがなくてもPowerShell、C#、VB.NET、VBS、JavaScriptあたりはまず間違いなく開発出来る
0401デフォルトの名無しさん
垢版 |
2018/08/11(土) 20:00:51.06ID:YyI+aygL
禁止されてるからで思考停止してないで使えるように根回しするなり
まともな権限をもらえる企業に転職したほうがいいぞ
俺だったらVBAしか使えないとか言われたらその日から転活だな
まあこれはVBAだけに限った話じゃなくてもっと一般的にも通じる話な
現代のビジネスマンは受け身の姿勢じゃ通用しない
0402デフォルトの名無しさん
垢版 |
2018/08/11(土) 20:03:41.93ID:BZfhgdqm
>>400
だからVisualStudioを入れられない環境はたくさんある。
メモ帳でもC#の開発はできるかもしれないけど、それじゃメリット無いんだよなあ。
他のソフトもそれ用のツールなりエディタなりが入れられなかったらメリットが殆ど無くなるな。

>>398
フリーソフトは駄目でむしろ有料ソフトは申請すれば入れられる場合もあるという所は多いだろうね。
0405デフォルトの名無しさん
垢版 |
2018/08/11(土) 20:08:11.63ID:BZfhgdqm
>>401
それは君がそれだけの人だってことだろ。
転職するかどうかは言語よりも仕事の内容や待遇の方が大きい。
それに、突然そういう会社になる訳じゃないから。
今の君はそういう会社には入ろうとしないし。
昔の君ならそういう環境が普通と思うだろ。
0407デフォルトの名無しさん
垢版 |
2018/08/11(土) 20:12:49.57ID:BZfhgdqm
>>398
エンドユーザーによるアプリ開発禁止ってのは、うちもそうだな。
そういえば。

あれだろ。
建前として、開発要員じゃないからだろ。
開発はベンダーにやらせるもので自らやるものじゃないってやつだろ。
0408デフォルトの名無しさん
垢版 |
2018/08/11(土) 20:15:59.00ID:BZfhgdqm
>>406
必要になることは無いと思うぜ。
VBAでほぼ何でも作れるから。

うちも建前では開発禁止なんだけど、入れてる奴はいる。
0409デフォルトの名無しさん
垢版 |
2018/08/11(土) 20:33:59.79ID:CkFe1vux
マクロ許可ってセキュリティ無しと同意
0410デフォルトの名無しさん
垢版 |
2018/08/11(土) 21:12:18.46ID:cu5jnq2r
>>398
それでよく競争になるね

よっぽどゆるい業界なのかソフトウェアで付加価値を生み出せないような業種なのか。
もしくはすでに負けつつあるか
まあそれは日本全体がそうなのかもしれんが
0411デフォルトの名無しさん
垢版 |
2018/08/11(土) 21:32:22.07ID:YyI+aygL
>>402
C#ならVSCodeでもサクラでも秀丸でもなんでもいいじゃん
まさかテキストエディタ1つも入ってないわけじゃないだろ
個人的にはメモ帳でもVBAよりはだいぶマシって感じるけど
PowerShellならISEが標準なのでおすすめ

>>405
俺はプログラミングが好きで就職したからVBAだけしか出来ないなんてことになったら地獄
幸いそんな嫌がらせみたいな環境で仕事をするはめになったことはないけどね

キミの言い方からするとキミは実はプログラムに興味ないんじゃないか?
今いる会社の待遇がいいから居続けたい
その会社がVBAしか使っちゃいかんというからVBAしか使わない
VBAしか使わないからVBAが何に対してでもベストだと思い込んでしまう
あるいは本心ではベストともなんとも思ってないけどVBAしか使えないのだから考えてもしょうがないと思ってる
キミはたぶん会社がVBAも含めて全部禁止だと言ってきたらとくに何の抵抗も感じずに受け入れるんだろう

>>410
上に立つ人間が競争に勝つことより自分の定年までリスクを避けて逃げ切りたいと考えてる会社なんだろう
こういう会社で後に残された若手~中堅の社員は悲惨だよ
0412デフォルトの名無しさん
垢版 |
2018/08/11(土) 21:58:11.03ID:Td/zZZ7D
了解しました
0413デフォルトの名無しさん
垢版 |
2018/08/11(土) 23:28:48.62ID:Ddi0PfCN
>>398
金融?
昔勤めてた証券会社がそんな感じだったな
初めての会社だったから何の疑問もなかったけど、今思えばクソだったな
0414デフォルトの名無しさん
垢版 |
2018/08/11(土) 23:48:16.13ID:cu5jnq2r
>>413
金融はマーケットに近い業務だったらエンドユーザによるエンジニアリングが命って部分もあるよ。
バック業務は違うかもしれないが>>398みたいなのは想像しにくい。
0415デフォルトの名無しさん
垢版 |
2018/08/12(日) 07:12:24.35ID:eDwYBbq+
>>414
あーそういや営業はネット見れたな
総務だったけど、な〜んにもできんかった
lhaca+だけ入ってたのが印象的だったわ(本部からこれだけは認められていた)
0416デフォルトの名無しさん
垢版 |
2018/08/12(日) 08:07:48.87ID:qQiXzzF2
確かに...

〓〓〓〓総務部がソフトウェア開発で付加価値を生み出して利益を出す〓〓〓〓

想像できないなw
0418デフォルトの名無しさん
垢版 |
2018/08/12(日) 09:48:52.50ID:YMBuKX4y
総務部の暇つぶしのおもちゃがVBAってこと?
そんなレベルでVBAなら何でも出来るとかVBAが最高とか言ってってこと?

いろんな環境や言語で開発経験が有って
人に売れる程度のモノを作った経験がある前提で話してるのかと思ってたがそうじゃなかったんだな
0419デフォルトの名無しさん
垢版 |
2018/08/12(日) 09:58:55.05ID:qQiXzzF2
>>418
そこまで行くとプロ様だからこのスレでは出禁になってますよw
0420デフォルトの名無しさん
垢版 |
2018/08/12(日) 10:36:29.18ID:eDwYBbq+
>>418
大企業は本部が全てのシステムを作り、画一されたものが支社に配られるってパターンが多い
全てのツールは基幹システムに集約されているからvbaを使う必要は無い

反面、中小・零細はvbaバリバリで使えないとしんどいだろうね

vbaは開発コストが高い上に単価を安く見られがちなので
わざわざvbaで開発したものを売ろうって奇特な会社は少ないと思う
0423デフォルトの名無しさん
垢版 |
2018/08/12(日) 12:00:36.42ID:G3Q4bI/2
>>422
こだわってるんじゃなく、選択肢がないんだよ
・有償ソフトを買う予算は通らない
・フリーソフトのインスコ禁止

この環境で君は何を使って開発するのかな
0426デフォルトの名無しさん
垢版 |
2018/08/12(日) 13:01:03.65ID:YMBuKX4y
>>423
いやいやメチャクチャこだわってるじゃんw
膨大な実績があってMSなど様々な企業や団体も採用してる無料のOSS製品やサービスなんていくらでもあるのになんでわざわざ禁止してエクセルVBA?
変なこだわりがあるとしか思えんなぁ
0427デフォルトの名無しさん
垢版 |
2018/08/12(日) 13:08:20.22ID:+KVVkWbV
禁止してるのはセキュリティ上の理由やろな
アホが上に立つとそうなるもんやで
0428デフォルトの名無しさん
垢版 |
2018/08/12(日) 13:22:01.64ID:YMBuKX4y
>>427
「セキュリティよく分からんけど何かあったとき俺が責任とるのやだから何もかも禁止」ってやつだね

というかこの場合も結局のところ「セキュリティにこだわってるからVBA以外禁止」ってことだろ
このセキュリティに対する(無意味な)こだわりを捨てれば選択肢はいくらでもある
やっぱりこだわり故の自縄自縛だな
選択肢はあるけど放棄してるだけ
0429デフォルトの名無しさん
垢版 |
2018/08/12(日) 13:49:02.84ID:uH5mjHL8
ここのVBAの質問に答えてる人が事務員って事はないでしょ
異常に詳しすぎるよね
本職のプログラマーよりも詳しい
それか本職の人たちはチョロチョロと色んなプログラムに手を出すけどVBA一本だから極めたとか?
0430デフォルトの名無しさん
垢版 |
2018/08/12(日) 13:50:21.92ID:+KVVkWbV
趣味でやってる人の方が詳しいもんだよこの業界
0431デフォルトの名無しさん
垢版 |
2018/08/12(日) 13:59:48.32ID:G3Q4bI/2
>>426
世間でどんなに実績があろうが、インターネットからダウンロードしたソフトを
業務マシンに入れることはセキュリティポリシーで禁止されてるわけ
だけど現場は手作業を自動化して楽したいわけ
だけど利益を生まないシステム開発には経費が下りないわけ
だからExcelに内蔵されてるVBAでこっそりシコシコやるしかないわけ
そうでなけりゃこんな時代遅れで融通の利かない言語を使うものかと
0434デフォルトの名無しさん
垢版 |
2018/08/12(日) 14:10:56.06ID:lJZ67VC6
>>431
「現場は手作業を自動化して楽したいわけ だけど利益を生まないシステム開発には経費が下りない」

プレゼン力が低すぎだろ、効率が上がればコストカットが出来、利益産むだろ
0435デフォルトの名無しさん
垢版 |
2018/08/12(日) 14:12:11.32ID:YMBuKX4y
セキュリティーポリシー
ポリシーってようするにこだわりじゃん?
世界中で安全に無料のOSS製品を運用して利益を出している実績があるのだから
VBA以外のすべてを禁止しなければセキュリティを確保できないというのは大嘘なわけだ
だったらなんで禁止するかっていうと「こだわり」でしかないんだよね
選択肢はあるけどへんなこだわりで放棄してるだけ
0437デフォルトの名無しさん
垢版 |
2018/08/12(日) 14:25:09.48ID:E6mj5Hz2
>>431
同感
ただこっそり作ったのを業務フローに組込んで来る奴は勘弁
一生面倒見てくれるなら構わんけど
0438デフォルトの名無しさん
垢版 |
2018/08/12(日) 14:34:45.54ID:+KVVkWbV
ジャップらしい文化だな
0439デフォルトの名無しさん
垢版 |
2018/08/12(日) 14:41:32.34ID:G3Q4bI/2
>>437
引継ぎが悩み
自分の後任がVBAを解さない人、あるいは努力して身に着ける気力のない人ならアウト
ただVBAは仕様が枯れていてExcelバージョン間の互換性が高いし、
書籍や情報も多いし、コードがブックと一体化して実行環境を成しているから何とかなると思ってる
0441デフォルトの名無しさん
垢版 |
2018/08/12(日) 14:57:07.79ID:auWodvpS
他の言語スレは見てないけどさぁ、なんでこうも他の言語をアレコレ強制しようとするやつが多いんだよ、ここは。
Excelを使うならVBA使うのが自然だろ?Excelを他の言語からVBAと同等に動かすこと出来るんかよ

ほんとうぜぇな。いつまでC#がいいだのパワーシェルだの、あげくはRubyがどーたらこーたらとか言ってんだよ
雑談したいんだったらそういうスレにでも逝けよ、さみしがりやの僕ちゃん連中は
0444デフォルトの名無しさん
垢版 |
2018/08/12(日) 15:39:42.82ID:uP5xtaXw
>>411
入ってないな。
エディタはメモ帳だ。

プログラミングには興味あるが、プログラミングと言ってもいろいろあるだろ。
たぶん君とは方向性が違う。
それに仕事でVBAだけっていっても1つの案件が続いていけばそんなの普通だろ。
それ以外の言語は趣味でやればいい。

競争の頂点にいるような会社はリスクを取りたがらない。
0445デフォルトの名無しさん
垢版 |
2018/08/12(日) 15:43:05.47ID:uP5xtaXw
>>420
逆。
本部はベンダーに任せるから。
本部の人間は逆にVBAとかで組んでる。

勿論大規模ではない。
大規模なのは本部の人間は作ってはいけない。
ベンダーにやらせるからね。
0446デフォルトの名無しさん
垢版 |
2018/08/12(日) 15:48:35.76ID:uP5xtaXw
>>431
よく分かってるじゃん。
でも、やりようだからね。
結局。

使い勝手が良くなる手を打てなかった、もしくは打つ前にVBAを辞めたとも言える。
0447デフォルトの名無しさん
垢版 |
2018/08/12(日) 15:52:52.87ID:uP5xtaXw
>>441
一応、C#でのVSTOというものがあって、どうにも行き詰まった時にそれで突破できるかどうかぐらいは知っといても良いと思うよ。
0448デフォルトの名無しさん
垢版 |
2018/08/12(日) 15:54:48.73ID:uP5xtaXw
>>442
何も分かってない。
散々やり合って、Excel上で動かすという簡単なことが他言語では難しいことがはっきりしてる。
0450デフォルトの名無しさん
垢版 |
2018/08/12(日) 16:32:57.41ID:+KVVkWbV
0452デフォルトの名無しさん
垢版 |
2018/08/12(日) 16:54:23.52ID:qQiXzzF2
全ての人間を満足させる方法なんてない。

ネット閲覧さえできずソフトもインストールできない環境の人はExcelとVBAで頑張れ。
インストール権限はないけどOSSのコピペならOKの人は自分に合ったライブラリをさがせ。
いろいろ導入できる人は好きなの使え。
0453デフォルトの名無しさん
垢版 |
2018/08/12(日) 16:58:06.19ID:pZvjUUz9
スレチだけどOSSなんか使わせてくれる会社あんの?
頭おかしいんじゃねえの
0455デフォルトの名無しさん
垢版 |
2018/08/12(日) 17:06:12.31ID:foPG/4Nx
ギクッ
0456デフォルトの名無しさん
垢版 |
2018/08/12(日) 17:09:00.64ID:YMBuKX4y
>>452
ネットにも繋げない奴隷環境ならPowerShellのほうがいいぞ
部品の再利用性が高いから長引くほど有利

>>453
いままでで最高のジョーク
0458デフォルトの名無しさん
垢版 |
2018/08/12(日) 17:16:07.41ID:eDwYBbq+
>>426
>様々な企業や団体も採用してる無料のOSS製品
互換性の問題で、どっかの役所がこれをやめた

>>441
誰がどうみてもvbaは完全に時代遅れのウンコちゃんなんだよ
機能以前に、Cライクじゃないことがあまりにもウザすぎるんだよ
今主流の言語はほぼ全てCライクなのに、何で今更Bなの
せめて比較演算子だけでもお願いしますって感じだわ

>>445
あぁ、すまん変な言い方してしまった。作ってはいないね
業者とやり取りしているのが本部だ

>453
レンタルサーバーのphpはオープンソースだよねって反論したら知るかボケって返ってきたわ
その辺は規模にも寄るだろう
0460デフォルトの名無しさん
垢版 |
2018/08/12(日) 18:23:06.11ID:qQiXzzF2
VBAが使えてネット閲覧OKというまあ普通の環境においては
ネットからサンプルコードをコピペしてきて使うことも当然あるだろ?
ソースをまるごと持ってくるのと何も変わらんよね。
インストールという行為がなければ区別つかないんだし。
0461デフォルトの名無しさん
垢版 |
2018/08/12(日) 18:28:40.34ID:E/Yl+18H
そうか
ネットに繋がらない環境でプログラミングするって凄い事だね
コードのスペルとか全部記憶してるのか
0463デフォルトの名無しさん
垢版 |
2018/08/12(日) 18:45:45.36ID:eDwYBbq+
>461
死ぬほどめんどくせーよ
worksheetとworksheets、
cells(y,x)、cells(x,y)、cell(x,y)、
何十回間違えたか検討もつかない
あと、再計算のcalculate

ただ、このスペルさえ覚えば別にどってことないんだよね
onerrorや高速化周りはさすがにコピペだし

vbaの場合、全然発達してないからある意味ネット環境がなくてもいいって奇妙な強みがある
0464デフォルトの名無しさん
垢版 |
2018/08/12(日) 18:48:04.27ID:YMBuKX4y
>>462
VBAかんけいなくてわろた

>>461
なので開発環境のインテリセンスが優れている言語は強い
C#とPowerShellはいいね
VBAはご愁傷さまって感じ
0465デフォルトの名無しさん
垢版 |
2018/08/12(日) 20:17:48.27ID:EkdmozDA
>>460
サンプルコードコピペは有るけど完全に理解してる物に限るだろ。
ソース丸ごと持ってきて、それを全部読んで、全て自分の知識から既に分かってる内容ならOKだろう。

そうじゃないなら仕事で使うべきじゃない。
これ、最低限。
実際はキチンと検証やら必要だし、何かあった時、特に損害が出た時に君が賠償できるならOKだ。

普通は賠償出来ないからこれまた申請やらが必要だろうな。
0466デフォルトの名無しさん
垢版 |
2018/08/12(日) 20:23:11.69ID:+KVVkWbV
社畜心得
0467デフォルトの名無しさん
垢版 |
2018/08/12(日) 20:26:12.54ID:EkdmozDA
>>463
何か、間違えの内容がごく初心者のやらかす内容だな。
さすがに、そんな間違いはあり得んから全く面倒くさくないな。
後、初心者が良くやらかすのがいきなりCellsで書き出して、ブックやシートを省略する奴。

基本ブックから省略せずに書くからそういうミスもあり得ん。
当然Withを使うかSetを使う。
0468デフォルトの名無しさん
垢版 |
2018/08/12(日) 20:31:35.18ID:qQiXzzF2
>>465
おいおいw
OSS利用なんてあたり前だろう
それにバグなら自分のコードだって出るんだし
0469デフォルトの名無しさん
垢版 |
2018/08/12(日) 20:41:45.49ID:pXo7RZSL
>>468
自分のバグとコピペにバグじゃ違うだろ。
それにコピペの場合、悪意あるコ−ドが入ってて機密情報が流出したら、自分が意思をもって流出させようとしたのと変わらんと思うが。
0470デフォルトの名無しさん
垢版 |
2018/08/12(日) 20:47:30.42ID:qQiXzzF2
>>469
じゃあ使わなければいい
保険をかけることにもコストがかかり、リスクを取らないリスクがあるってことも忘れるなよ
0471デフォルトの名無しさん
垢版 |
2018/08/12(日) 20:49:14.70ID:eDwYBbq+
>467
もちろんsetを使っているよ
withは入れ子できないのが気持ち悪くてあんまり使わない

ってか、Cライク言語でしばらく書いた跡の等価演算子とifインデント辺りの方がめんどい
if (foo = bar) then
と書いた跡のカッコを消す何とも言えない気分
0472デフォルトの名無しさん
垢版 |
2018/08/12(日) 20:49:42.20ID:pXo7RZSL
勘違いしてるかもしれんが、君の会社がOSSに対してどういうスタンスを取ってるかによる。
コピペからソース丸ごと持ってきてOKと解釈する所が間違いな。

君の会社だったら客から賠償されるだろうけど君はお咎め無しだろう。
0473デフォルトの名無しさん
垢版 |
2018/08/12(日) 20:57:36.30ID:pXo7RZSL
>>471
それは複数言語を同時に使えばどんな言語でも起こるだろ。
SQLだってOracleとAccessとSQLServerでそういうことは起こる。
0474デフォルトの名無しさん
垢版 |
2018/08/12(日) 21:25:16.26ID:sFpP4hR5
>>471
> withは入れ子できないのが気持ち悪くてあんまり使わない
入れ子はできるだろ
ただ入れ子にすると外側にアクセスできないのが不便
Pythonみたいに別名を付けられればいいのに
0475デフォルトの名無しさん
垢版 |
2018/08/12(日) 21:54:05.73ID:E/Yl+18H
VisualStudioを入れれる環境ならVBAは使わない?
そーいうことでもない?
0476デフォルトの名無しさん
垢版 |
2018/08/12(日) 22:32:25.31ID:eDwYBbq+
>>473
SQLの方がキツイね
あと、正規表現。細かいルールまで覚えてないと普通に死ぬ

>>474
そういやできるね・・・うん、できるね・・・

>>475
そういうことでもない。VBAはエクセルの便利機能の一つ
VSからエクセルを触ることもできるけど、割と冗談抜きでめんどくさい。
一回やってみると方が良い。俺はかなり昔、二度とやらないと決めた。今は便利になってるかもしれないけど、そこまでは知らないなぁ
0477デフォルトの名無しさん
垢版 |
2018/08/12(日) 23:56:34.44ID:G3Q4bI/2
>>475
まず前提として、これは総務や営業の事務部門のねーちゃん・オッサンたちが
手元のPC作業を自動化したいという話だと思ってるんだけど・・・
そういう人らには、例えPCにVisualStudioが入っていたとしても、それでバリバリ
開発したり開発後のコードを管理・メンテしていくことは無理だろ?

んでこの手の社内システムの支援が行き届かない末端業務では
大抵のデータはExcelやAccessに入ってて、それを手操作で処理してるのが典型
よって手になじんだExcelやAccessのまんまVBA処理に移行するのが手っ取り早い
C#やPythonなどからExcelを動かす荒業もあるらしいけど、わざわざそうする理由がない
0478デフォルトの名無しさん
垢版 |
2018/08/13(月) 06:22:10.19ID:2dORgvS5
>>477
> 総務や営業の事務部門のねーちゃん・オッサンたち
が、VBA使えるという前提もどうかと思う
0479デフォルトの名無しさん
垢版 |
2018/08/13(月) 07:05:16.10ID:JKsq+WjD
 
畏(おそ)れ多くも森喜朗元帥閣下の有り難いお言葉:
 「オレはIT(いっと)のことはよく知らんがぁ
   時計をたった2時間早めるだけだろぉ?
  オレなら1分あれば済ませるぞぉ!
   サマータイムの何がそんなに難しいんだぁ?」
 
システム開発現場の勇ましい言葉:
 「畏れ多くも森元帥閣下のご下命を賜った以上
   現場SEは有り難いお言葉に勇気百倍
  デスマーチとバンザイ突撃を敢行いたします!」
  
 「マラソン選手さまが涼しい時間に走るためなら
   現場SEの千人や二千人死んでも本望です!
  私たちSEの生命など、虫けらと同じです!」
 
 「畏れ多くも森元帥閣下の有り難いご下命にしたがって
   最前線システム開発現場で殉職出来るとしたら
  現場SEとしてこれに勝る喜びはありません!」
 
日本という国では
 体育会系が一番偉い(森元帥閣下、田中理事長)
  文科系がその次で(財務省、教授会)
 理科系は最底辺の奴隷とされています(現場SE)
 
0480デフォルトの名無しさん
垢版 |
2018/08/13(月) 07:29:38.19ID:J9TEOhCW
>>478
ifとforとエクセル操作ならそんなに難しくない
前提として十分成立するレベル。
プログラミングで難しいのは環境の話。
で、環境はExcelなので事務屋は知ってる。
動くコード書くだけなら誰でもできる。
0482デフォルトの名無しさん
垢版 |
2018/08/13(月) 08:28:37.19ID:wY5iWaZC
>>477
「ねーちゃん・オッサン」という言い方自体が印象操作だね。
部門部署はたくさんあるんだから。
「理系院卒のあんちゃん」と言ったら真逆の印象になるだろ?
まじめな話普通大学で少しはやってるだろ今どき。
0483デフォルトの名無しさん
垢版 |
2018/08/13(月) 08:43:35.15ID:2dORgvS5
>>482
総務、営業とかの事務職に就いてる
> 「理系院卒のあんちゃん」
ってどう見ても使えない奴だろ…
if, forなら簡単とか言うがそれはこんなスレを見てる奴らだから通じる話
わからん奴はとことんわからんし理解しようともしないよ
0484デフォルトの名無しさん
垢版 |
2018/08/13(月) 08:48:20.03ID:wY5iWaZC
>>483
「部門部署はたくさんあるんだから。」と書いてあるのにどうして総務と営業にこだわるのか。
俺にはさっぱりわからんね。
0485デフォルトの名無しさん
垢版 |
2018/08/13(月) 08:56:36.93ID:zRQUni3U
総務、営業、SEしかいない会社にいるからそれ以外の環境が想像つかないんだろ
0490デフォルトの名無しさん
垢版 |
2018/08/13(月) 09:47:32.84ID:SL48Gldu
>>477
そういう利用目的なら
Excel・Accessからデータを吸い上げてデータ処理がカンタンな別言語で処理したほうがいい
わざわざそうする理由がない、というがそもそもエクセルのランタイム上でなんでもやろうとするほうが理由がない
0495デフォルトの名無しさん
垢版 |
2018/08/13(月) 19:17:06.71ID:G2gqSSs3
>>489
日本語に弱くて前提が変わって無いのに気づかないんだろうなw

しようがねえな。
まず>>477に対して君が 総務や営業の事務部門という前提で>>478を書いた。
しかし>>482は君にレスしたわけじゃない。
>>477に対して 総務や営業の事務部門という前提をも否定して部門部署はたくさんあると書いたんだろ。
>>482>>477の前提がおかしいぞと言ってるんだよ。
0497デフォルトの名無しさん
垢版 |
2018/08/13(月) 19:28:34.14ID:G2gqSSs3
しかし君は>>482>>477の前提に最初から立っていないということに気付いて無いから>>482の前提自体を否定するような発言も出来ないし、>>482の前提に立った上で反論するということも出来ない。

それで>>484や俺(>>488)が気付かせてあげようとしたんだが、まだ気付かないようだw
0498デフォルトの名無しさん
垢版 |
2018/08/13(月) 19:33:44.73ID:G2gqSSs3
プログラミング言語もさ、日本語と同じように言語なんだよな。
論理的に考えれば日本語だって理解出来る筈なんだよ。
まあ、論理的に考えられない人はプログラミングは向いて無いな。
0500デフォルトの名無しさん
垢版 |
2018/08/13(月) 19:39:59.63ID:J9TEOhCW
部門部署はたくさんある、の一言にここまで思いが込められていたことは俺もわからなかったよw
0501デフォルトの名無しさん
垢版 |
2018/08/13(月) 19:41:32.91ID:Nxc0x6KD
>>497
これだけアンカー付くと壮観だな
読む気になれんけど
0503デフォルトの名無しさん
垢版 |
2018/08/13(月) 19:53:30.97ID:G2gqSSs3
論理的な思考の出来ない奴が外いな。
碌なプログラムも組めないと想像できる。
0506デフォルトの名無しさん
垢版 |
2018/08/13(月) 20:10:08.14ID:2dORgvS5
>>500
どう見ても印象操作がメインだしな
まあ、指摘されて引っ込みつかなくなったから>>502-503みたいに話そらそうと必死なんだろ w
0507デフォルトの名無しさん
垢版 |
2018/08/13(月) 20:21:55.47ID:wY5iWaZC
しかしまあ>>485が言うみたいな「総務、営業、SEしかいない会社」ってのも無視できない割合で存在してるんだろうな。
総務がSEやったりとか。
0508デフォルトの名無しさん
垢版 |
2018/08/13(月) 20:28:11.20ID:Nxc0x6KD
確かにSEもいない会社も普通に多いか
そしたらVBAでも大活躍だしVisualStudioで自作アプリなんて作った来たらキモいな
0509デフォルトの名無しさん
垢版 |
2018/08/13(月) 20:36:20.55ID:wBJkicYb
>>504
形容動詞「ろくな」が名詞「プログラム」を修飾して
連体修飾語「ろくなプログラム」になってるわけで
「ろくな」はまともなという意味だから
まともなプログラムも組めないと言ってるわけで
表現としておかしいところはなにもないと思った
0510デフォルトの名無しさん
垢版 |
2018/08/13(月) 20:41:45.48ID:lA4o8DKj
プログラミングはそれなりにできるけど、ExcelでGUIを作ろうという場合に参考になる書籍やサイトってない?
例えば、VBScriptからExcelをCOMで呼び出してのバッチ処理などは全然できる。
だから初歩的な分岐だとかループだとかは要らんわけで。

ざっと調べるとフォームとイベントが捌ければ何とかなりそうな気がする…んだけど何やればいいのか…
0512デフォルトの名無しさん
垢版 |
2018/08/13(月) 20:55:29.74ID:lA4o8DKj
Amazonで見たところ、
「アプリ作成で学ぶExcelVBAプログラミングユーザーフォーム&コントロール」
とか、
「小さな会社のExcel VBA業務自動化アプリケーション作成・運用ガイド」
とかかなぁと思うけどレビューがあんま参考にならん…

>>511
「俺の、俺による、俺のためのアプリ」ならExcelなんか使わないよ。
「会社の皆が使うちょっとしたアプリ」なら、なるべく金かけず維持・メンテ・引継ぎしやすいものを選ぶのは当たり前。
HTAやPowerShell+WPFや.NETなんか使ったら一生メンテさせられるっての。
0513デフォルトの名無しさん
垢版 |
2018/08/13(月) 21:01:25.25ID:FIAlujHy
>>510
書籍は見たこと無い

・excel フォーム デザイン
・windowsアプリ GUI デザイン
この辺りで検索すればそれなりに出てくるんじゃないか

もしくはシートをそのままGUIとする
mainシートに出力
settingシートに設定
inputには何かしらのデータ

俺はいつもこんな感じの構成
0514デフォルトの名無しさん
垢版 |
2018/08/13(月) 21:04:43.90ID:7g9HiHc/
自分がいる間動けば十分じゃないの
みんなで共有しないといけないやつならしゃーないけど
0515デフォルトの名無しさん
垢版 |
2018/08/13(月) 21:11:44.08ID:G2gqSSs3
>>506
メインw

あのね、>>482は「部門部署はたくさんある」という前提に立って「印象操作」と言ってるんであって、>>477に対して2つをバラバラに言ってるわけじゃ無いんだよ。

「ねーちゃん・オッサン」という印象操作して事務部門限定のように言ってるけど、実際は部門部署はたくさんあるという意味だろう。

悔しくて仕方ないかもしれんが今さら挽回は無理だな。
0516デフォルトの名無しさん
垢版 |
2018/08/13(月) 21:29:13.87ID:yoEa1bdZ
>>474
>ExcelなんざCOMで呼び出しゃいいんだよ

C#でExcel使ったことねーだろ
0517デフォルトの名無しさん
垢版 |
2018/08/13(月) 21:30:17.15ID:wBJkicYb
C#でもCOM呼び出すでしょうに
0518デフォルトの名無しさん
垢版 |
2018/08/13(月) 21:30:43.45ID:wBJkicYb
ラッパだろうけど
0519デフォルトの名無しさん
垢版 |
2018/08/13(月) 21:43:57.21ID:lA4o8DKj
>>513
どうも。手探りでやるしかないみたいねぇ…

>>514
だ・か・ら・さ。
簡易なVBScriptでもメンテが要るんだよ。VBScriptだからGUIがショボくて、例えば「〇〇課の職員」たらのメンテが不便だからな。
作ってもらえるだけでもありがたいはずなのに、プログラムが書けない連中は「職員が入ったから直して」「機能追加して」と平気で言うわけ。
たまに「スマホアプリにして」とか言うゴミもいるんだぜ?

俺はとりあえずExcelでそこそこのインターフェイスで作っといてリリースして放置したいわけ。
何か言われたら「Excelが得意」と周りに吹聴している馬鹿にやらせればいい。
「君の得意なExcelで作ったんだよ?できるんでしょ?」てね。
0520デフォルトの名無しさん
垢版 |
2018/08/13(月) 21:51:12.63ID:h5xj3US4
どうしてもVBAでGUIというなら図書館でVB6辺りの書籍を探してきた方がいいぞ
腐る程あるはず
0522デフォルトの名無しさん
垢版 |
2018/08/13(月) 22:14:11.12ID:SL48Gldu
>>512
>なるべく金かけず維持・メンテ・引継ぎしやすいものを選ぶ
それでVBAという答えはないわ
0523デフォルトの名無しさん
垢版 |
2018/08/13(月) 22:19:05.95ID:wY5iWaZC
現実問題、ツールの引き継ぎなんてものが本当に発生するのか疑問だ。
ツールなしで手作業でやってたらどうするのさ?
後任者には仕事の仕様だけ教えて1から使ってもらうのが正しいんじゃないのか。
0524デフォルトの名無しさん
垢版 |
2018/08/13(月) 22:21:49.65ID:wBJkicYb
VBAは良いと思うけどね
MS Officeは使ってること多いし
0525デフォルトの名無しさん
垢版 |
2018/08/13(月) 22:22:04.47ID:SL48Gldu
>>519
要望がうざいならリリースしなきゃいい
つうか他人のボランティア前提でリリースしてんのかよ
こういう人がいるから社内統制で野良マクロ禁止にする会社が出てくるのかね
0526デフォルトの名無しさん
垢版 |
2018/08/13(月) 22:22:44.45ID:wBJkicYb
まあまあ、そう悪いように解釈するのをやめなさいな
0528デフォルトの名無しさん
垢版 |
2018/08/13(月) 22:48:41.94ID:SL48Gldu
>>527
C#でもJavaでもPythonでもGoでもなんでもいいけどね
世界中で生産性・保守性が高いと認められて採用実績の多い道具を使う
0529デフォルトの名無しさん
垢版 |
2018/08/13(月) 22:50:41.41ID:2dORgvS5
>>515
そもそも>>477は総務、営業とかの事務部門の話ししてるだけで他の部門の話なんてしてない
他の部門がどうあれ総務、営業の事務部門の話が変わるわけじゃない
他の部門の話をしたいなら勝手にやっててくれ

> 悔しくて仕方ないかもしれんが今さら挽回は無理だな。
でかいブーメラン刺さってるぞ w
0531デフォルトの名無しさん
垢版 |
2018/08/13(月) 23:11:52.41ID:Yid0Gj7C
>>528
あんた何もわかってないなあ
システム部門の支援を受けられず、オプソを入れることも許されず、
VisualStudioを買う予算も下りない
そんな事務部門が、シコシコと手作業でやってるExcel処理を
何とか自動化したいって話題だぜ?
どこからC#やJavaなんてものが出てくるんだよ
0533デフォルトの名無しさん
垢版 |
2018/08/13(月) 23:49:52.57ID:FIAlujHy
ってかどんなマクロ想像してるの?
俺の中ではこんなレベルなんだけど

A1セルの値がvlookupのキーになっていて、
それを連番で変える→印刷
の繰り返し

こんな程度でも総務にはバカウケだぞ

Sub Macro1()
'
' Macro1 Macro
'
For i = 1 To 10
cells(1,1).value = i
calculate
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, IgnorePrintAreas:=False
Next
MsgBox "完了〜〜〜!"
End Sub
0534デフォルトの名無しさん
垢版 |
2018/08/13(月) 23:50:36.42ID:FIAlujHy
ちなみに
MsgBox "完了〜〜〜!"
これは実際に見たコード。俺のセンスじゃないぞ
0535デフォルトの名無しさん
垢版 |
2018/08/13(月) 23:53:07.84ID:yUNLe23N
過去に既出かもしれないが相談させてほしい
ExcelにPDF内のテキストを取り込んで別工程の作業指示書作成を自動化出来ないかと相談された
取り敢えず「希望のコスト・納期では不可能」と切り捨てておいたが、個人的に興味は沸いたので手持ちのPDFをいくつか見たところFlateDecodeなるもので圧縮されている模様
会社のPCはセキュリティ上の制約で外部のdll(zlib.dllとか)を追加出来ないのだが、FlateDecodeの圧縮ストリームを展開してExcelに取り込む手段ないかな?
0536デフォルトの名無しさん
垢版 |
2018/08/13(月) 23:55:07.23ID:SL48Gldu
>>531
ほかと比べたら敗色濃厚だからそうやって条件つけて逃げるしかないよな
よほど頑固な会社か交渉力ゼロの無能でもなきゃMS公式のVSCodeとdotnet-sdkぐらいすぐOKでるし
全部NGなんてレアケースで比べる意味ねえよ?
まあ仮に禁止したところでVBAよりはるかに便利なPowerShellもC#もカンタンに使えるんだけどな
0537デフォルトの名無しさん
垢版 |
2018/08/14(火) 00:06:03.69ID:n9VvPXNA
>>531
誰もそこまで限定してないと思うよ。
制約がキツい極端から制約がユルい極端までいろんな環境があると思うが、
あんたのは「制約が一番キツい環境を前提にして話せ」という主張に見える。

それはさすがに同意を得られないってことだ。
0540デフォルトの名無しさん
垢版 |
2018/08/14(火) 00:08:27.40ID:nfaXmVxR
普通に同意できるけどね
むしろ他の言語でやろうとするのはおかしいと思う
0542デフォルトの名無しさん
垢版 |
2018/08/14(火) 00:13:13.65ID:UeTN7rkw
VS眺めてみたら、普通にC#でエクセルアドイン作れるのな
これぐらい楽なら有りかも?
0543デフォルトの名無しさん
垢版 |
2018/08/14(火) 00:19:55.01ID:5GU0qsYr
業務の大半はExcelに依存しないので言語もExcelに依存しない使いやすいものを使えばいい
0544デフォルトの名無しさん
垢版 |
2018/08/14(火) 00:27:30.30ID:UeTN7rkw
>業務の大半はExcelに依存しないので
>言語もExcelに依存しない使いやすいものを使えばいい

ゆでたまご理論かな?
0545デフォルトの名無しさん
垢版 |
2018/08/14(火) 03:43:38.12ID:6NKcX7Ow
5ch ブラウザみたいに、スレに書き込んである画像のURL を、
自動的に、<img> に展開して表示するものを自作している

Ruby で、Selenium WebDriver を使って、Nokogiri で、DOM を構築して、
JavaScript(JS) を使って、そのDOMで、body 以下を更新しようとしている

わざわざ、Sinatra, Vue.js などを使うまでもない。
標準添付ライブラリのERB は、使っても良いかも

Ruby での表示には、Selenium WebDriver で、ブラウザを操作して使っている
0546デフォルトの名無しさん
垢版 |
2018/08/14(火) 05:59:12.23ID:IYCmiTRH
>>545
おいおまえ、Selenium WebDriverでエクセルの自動化をできるか?
0548デフォルトの名無しさん
垢版 |
2018/08/14(火) 06:35:25.29ID:IYCmiTRH
>>547
Selenium WebDriverを使って
エクセルの自動化をできますか?
と聞いてるんです
0550デフォルトの名無しさん
垢版 |
2018/08/14(火) 06:59:46.51ID:IYCmiTRH
>>549
S e l e n i u m W e b D r i v e r を 使 っ て

エ ク セ ル の 自 動 化 を で き ま す か ?
0551デフォルトの名無しさん
垢版 |
2018/08/14(火) 07:00:21.04ID:IYCmiTRH
なんでわからないんだろ
0552デフォルトの名無しさん
垢版 |
2018/08/14(火) 07:06:31.74ID:KIUgAfbf
あれは壮大なスレチなのでスルー
0554デフォルトの名無しさん
垢版 |
2018/08/14(火) 07:08:04.15ID:IYCmiTRH
>>553
S e l e n i u m   W e b D r i v e r を 使 っ て
エ ク セ ル の 自 動 化 を で き ま す か ?

こうですか?わかりません
0555デフォルトの名無しさん
垢版 |
2018/08/14(火) 07:08:55.18ID:IYCmiTRH
Selenium WebDriverを使って
エクセルの自動化をできるか聞きたいのですが
どう聞けばいいでしょうか?
0556デフォルトの名無しさん
垢版 |
2018/08/14(火) 07:36:51.87ID:z2MeDRaG
↑この人もしかしてカキコミスのレスにめちゃくちゃ食いついちゃったってこと?
そしてそれに気が付いてない?
0557デフォルトの名無しさん
垢版 |
2018/08/14(火) 07:38:14.66ID:IYCmiTRH
純粋な疑問としてSelenium WebDriverを使って
エクセルの自動化をできるか聞きたいのですが
0558デフォルトの名無しさん
垢版 |
2018/08/14(火) 07:38:38.70ID:IYCmiTRH
できるんですか? できないんですか? はっきりしてください!
0560デフォルトの名無しさん
垢版 |
2018/08/14(火) 07:50:58.08ID:9xPZi6uk
>>532
論理的に明らかに相手が間違ってる場合、悔しいとは感じないだろ。

ピエロを面白がってるだけだな。
0561デフォルトの名無しさん
垢版 |
2018/08/14(火) 07:57:41.73ID:9xPZi6uk
RubyもSelenium Web Driverも使えるけどどっちも会社じゃ入れられ無いけどな。

交渉とかバカが言ってるがVBAで同じことが十分出来るのに何で交渉しなきゃならんのだ?
交渉するのはどうにもならなくなってからだ。
0563デフォルトの名無しさん
垢版 |
2018/08/14(火) 08:35:41.90ID:z2MeDRaG
楽にできるように動いてどうしてもダメだったらあるものでやるってのが常識的で賢い判断
最初から金と労力をかける方向に進もうとするとはもしかしてビジネスを知らん人かな?公務員?

それと他がダメだったとしてもpowershellとC#で解決したほうが楽
0564デフォルトの名無しさん
垢版 |
2018/08/14(火) 08:41:25.34ID:9xPZi6uk
>>563
だからVBAじゃないと使う人が不便な場合が多いと何度書いたら・・・

Excel上からプログラム動かすのがVBAで組む場合の通常。
それにブック1つで完結出来ないのもダメダメだ。
0565デフォルトの名無しさん
垢版 |
2018/08/14(火) 08:44:30.97ID:vNNJJh8I
作ったコードから、モジュール/クラス/フォーム一覧と、使われている変数、関数(引数/返り値付)の一覧も表示してくれるツールはありませんか?

それを作ってくれるコードでもいいけど。
コードを書いてるエディターのWindowsのコード自体を取得する関数ってあるかな?
なければ自分でコピペしてそれを引数に自作関数に代入かな?
0566デフォルトの名無しさん
垢版 |
2018/08/14(火) 08:45:16.22ID:vNNJJh8I
いわゆるJavadocみたいな。
0567デフォルトの名無しさん
垢版 |
2018/08/14(火) 08:46:39.54ID:vNNJJh8I
https://ja.wikipedia.org/wiki/Javadocより

Javadocとは、サン・マイクロシステムズが開発したコンピュータソフトで、JavaのソースコードからHTML形式のAPI仕様書を生成するものである。
JavadocはJavaクラスの仕様書の標準の書式であり、「多くのIDEは自動的にJavadoc HTMLを生成する機能を備えている。」
なお、HTML形式は標準の書式であり、カスタマイズにより変更可能である。
--------------------------------------------------------------------------

「多くのIDEは自動的にJavadoc HTMLを生成する機能を備えている。」らしいですよ。
0568デフォルトの名無しさん
垢版 |
2018/08/14(火) 08:50:21.80ID:i5ysOntH
>>563
総務のおねーちゃんにPowerShellとC#で開発しろって言うのか?
てか、なんでVBAのスレで他言語推しするんだよお前は
0569デフォルトの名無しさん
垢版 |
2018/08/14(火) 08:54:02.58ID:vLkntRUX
C#がもっと使い勝手いいExcelのライブラリあればいいんだがなぁ
0572デフォルトの名無しさん
垢版 |
2018/08/14(火) 08:57:45.09ID:9xPZi6uk
>>565
今、通勤中でコード書けないけどApplication.VBEを弄れば出来る。
そんなに苦労はしない。

ただ、VBEを弄るのはセキュリティ的に勧めないし、Excelの場合はデフォルトでは弄れないようになっている。
0574デフォルトの名無しさん
垢版 |
2018/08/14(火) 09:01:03.44ID:9xPZi6uk
>>570
駄目だこりゃ、論理など全く無いようだ。
>>477は他に無いという立場で書いてる。
だから他にあれば否定している。

>>482は他にあると言ってるから前提を変えていない。
最初から前提に立ってない。

小学生からやり直したら?
0576デフォルトの名無しさん
垢版 |
2018/08/14(火) 10:58:56.44ID:TB9AjC50
>>574
> >>477は他に無いという立場で書いてる。
どこをどう読んだらそんなアホな解釈できるんだ? w

> 小学生からやり直したら?
お前がな
0577デフォルトの名無しさん
垢版 |
2018/08/14(火) 11:45:11.94ID:n9VvPXNA
まあまあ。

>>477はさ、自分だけの前提として「総務や営業の事務部門のねーちゃん・オッサンたち」の話をすればよかったんだよ。
それをこのスレ全体の前提事項にしようとしてるじゃん?
そのあとそこから敷衍して
「この手の社内システムの支援が行き届かない末端業務では ・・・が典型 」
なんて一般化したことを言ってるわけじゃん。

これでは「そんな前提には乗っかれないよ」という反論が出てくるのもしょうがないよね。
0581デフォルトの名無しさん
垢版 |
2018/08/14(火) 12:11:47.96ID:KfIbP3u9
捻くれた態度取るのがしょうがないと
開き直るその態度が気に入らないのよ〜
0582デフォルトの名無しさん
垢版 |
2018/08/14(火) 12:13:39.53ID:KfIbP3u9
>>580
前提に正しいも間違いもない
意見に良いも悪いもない
チミは議論というものをてんで理解していない
0584デフォルトの名無しさん
垢版 |
2018/08/14(火) 12:16:46.61ID:QgSZqWcZ
わかった
ここからはID:KfIbP3u9は死ぬべきだという前提を元に議論しよう

>>582
良い悪いかじゃなく意味がないって言ってんだよ死ね
0585デフォルトの名無しさん
垢版 |
2018/08/14(火) 12:24:01.35ID:3nAHhFbt
エクセルを使う業務ってメモ帳代わりとか電卓以外に何?
そんなに大切な事には使わないよな
そんな会社ないよな
0586デフォルトの名無しさん
垢版 |
2018/08/14(火) 12:27:09.59ID:JduObfEP
>>564
ぜんぜん不便じゃないけど?
コマンド打つだけ
ファイルダブルクリックするだけ
幼稚園児でもできるよね
0587デフォルトの名無しさん
垢版 |
2018/08/14(火) 12:31:51.96ID:JduObfEP
エクセル開かなきゃ動かないツールのほうが面倒だよ
開くの遅すぎだしシートベースのUIは不恰好で操作感も直感的じゃないし
ちょっとした誤操作でもすぐぶっ壊れるしね
0588デフォルトの名無しさん
垢版 |
2018/08/14(火) 12:35:36.52ID:n9VvPXNA
>>582
議論ってことで言えば
「前提を受け入れられてからその前提で話を進めろ」ってことになるけどね。
そうしないと誰も乗ってこないのは当然だろう。

議論じゃなくて「俺はこういう前提でこういう結論を出した」で終わるならOKだが。
0589デフォルトの名無しさん
垢版 |
2018/08/14(火) 12:38:37.78ID:9xPZi6uk
>>576
日本語分からないだけじゃね―のかよw
事務部門と限定しているのが分からないのかね?
>>477が事務部門以外を前提にしてたら、最初のお前の>>483自体成り立たないし、
前提変えたとか言ってる自分の意見も自ら否定していることになるんだがw
0590デフォルトの名無しさん
垢版 |
2018/08/14(火) 12:42:26.13ID:n9VvPXNA
>>585
むちゃくちゃ重要な業務に
継続的に
使われているよ

それだけじゃなく
複数の部署間や複数の会社間に
エクセルを介した依存関係が
双方向に
発生しているよ
0591デフォルトの名無しさん
垢版 |
2018/08/14(火) 12:46:11.48ID:9xPZi6uk
>>588
いや、前提自体を否定する議論も成り立つわけで、>>482の発言はそれ。
だから>>483>>482の内容をよく見て頓珍漢なことを言わなければ良かった。
だが、自分が頓珍漢なことが分からず、結果として>>482の前提に乗れてもいないし、>>482の前提自体も否定していない。
0592デフォルトの名無しさん
垢版 |
2018/08/14(火) 12:51:46.61ID:TB9AjC50
>>589, >>591
結局限定してる根拠示せずに喚いてるだけかよ
そもそも総務と営業だけの会社なんてあるのか?
って考えたらわかるだろうに w
0593デフォルトの名無しさん
垢版 |
2018/08/14(火) 12:56:08.09ID:v5onVyOv
>>590
マクロ許可してねって言って使い回してるの?
そんなのでセキュリティ大丈夫なの?
0594デフォルトの名無しさん
垢版 |
2018/08/14(火) 14:11:04.58ID:n9VvPXNA
>>593
なんのこと?
0596デフォルトの名無しさん
垢版 |
2018/08/14(火) 14:39:09.50ID:UeTN7rkw
>>595
夏休みの上に天気悪いからな
みんな超暇なんだよ
多分今質問投げるとすげー返答が帰ってくると思うぞ
0597デフォルトの名無しさん
垢版 |
2018/08/14(火) 17:09:16.26ID:YTiF5JLC
プログラミング初心者です。
ちゃんと触ったのはVBAが初めてです。
前任者が作成した、IEを開いて自動的に入力していくマクロの修正をしたいのですが、

With objIE.Document.getElementById("DESCRIPTION")
With .parentelement.getElementsByTagName("input")
For n = 0 To .Length - 1
If .Item(n).Name = "NAME" Then
.Item(n).value = name




と言った記述がされていました。


何となくDESCRIPTIONの兄弟要素からNAMEという名前のinputタグ要素を探しているんだろうなと分かるのですが、
オブジェクトブラウザからgetElementsByTagNameやparentelementを検索しても出てきませんし、ググってもJavaScriptの情報ばかりです。
これらはJavaScriptで使われる同名プロパティと同じ意味として捉えていいのでしょうか。
0599デフォルトの名無しさん
垢版 |
2018/08/14(火) 17:29:04.68ID:UeTN7rkw
>>597
結構キツイぞ
vbaよりもhtmlやjsの問題になる

こういうのがある状態だと思う。恐らくラジオボタン
<div id="DESCRIPTION">
 <input type="radio" name="NAME" value=1>
 <input type="radio" name="NAME" value=2>
 <input type="radio" name="NAME" value=3>
</div>

>何となくDESCRIPTIONの兄弟要素からNAMEという名前のinputタグ要素を探しているんだろうなと分かるのですが、
子要素

>オブジェクトブラウザからgetElementsByTagNameやparentelementを検索しても出てきませんし、
>ググってもJavaScriptの情報ばかりです。
> これらはJavaScriptで使われる同名プロパティと同じ意味として捉えていいのでしょうか。
言ってる意味が分からないが、多分違う
恐らくその要素の名前が変わっているか、#DESCRIPTION以外の場所に移動している可能性がある


本気でやるなら開発ツールを覚えれば一瞬で終わる。30分もあれば大体使えるようになるよ
https://www.buildinsider.net/web/chromedevtools/01
0602デフォルトの名無しさん
垢版 |
2018/08/14(火) 18:38:16.94ID:oMGTI9sO
>>597
JavaScriptで使われる同名プロパティと同じ意味です


>>599
兄弟要素で正しいし、取得したノードのvalue要素に値入れてるのになんでチェックボックスとかいう発想になるんだよ馬鹿か
3つ目の回答に至ってはお前の言っている意味が不明だよハゲ

そもそも誰もそんなことは聞いてねーんだよ
質問文読めてるか?実は日本語ネイティブじゃないのか?
知らないなら黙ってろクズが
0603デフォルトの名無しさん
垢版 |
2018/08/14(火) 18:57:26.07ID:Uz6OHk+w
兄弟じゃないよ

Iiが"DESCRIPTION"の要素の親要素の全ての子孫からinput要素を取り出してループ {
nameが"NAME"の要素(タイプは不明)の入力値をnameに置き換える
}

VBAerには難しいかな?
0604デフォルトの名無しさん
垢版 |
2018/08/14(火) 18:57:49.13ID:9xPZi6uk
>>592
うわw
本当に小学生かよ。

>>477は会社の中でVBAを使うような奴は総務と営業にいるね―ちゃんやおっさんだという前提だろうに。
だからお前も前提を変えて話されても困ると言ってたんじゃ無いのか?

>>597
ええとね、おそらく前の方にCreateObject("InternetExplorer.Application")みたいなのがいると思うんだ。
そしてこいつはObject型の変数に代入されてる筈だ。
このCreateObjectってのはオブジェクトを作る奴で、この場合"InternetExplorer.Application"の文字列をもった特定の場所にあるレジストリ情報からオブジェクトを作ってる。
なのでオブジェクトブラウザの範囲外だ。
オブジェクトブラウザは参照設定されてる範囲しか表示されん。
Microsoft HTML Object LibraryやMicrosoft Internet Controlsを参照設定して、代入されてるObject型変数の型をInternetExplorer型に変更すれば表示されるようになる筈。
その場合はCreateObjectを使わないでSet objIE=New InternetExplorerなどと初期化する。
0605デフォルトの名無しさん
垢版 |
2018/08/14(火) 18:59:35.38ID:r5upUQvA
開発ソフトをインストール出来ない環境で致し方なくVBAを使ってる人がほとんどだと思う。
0606デフォルトの名無しさん
垢版 |
2018/08/14(火) 19:06:43.38ID:9xPZi6uk
InternetExplorer.Applicationは少し特殊でね。
HTMLのソース内の改行も1つのノードとしてカウントする。
だからMSXML2.XMLHTTPとはノード番号が違ってしまうことがある。
0607デフォルトの名無しさん
垢版 |
2018/08/14(火) 19:08:06.90ID:oMGTI9sO
>>603
これは俺が間違えてたすまん
兄弟だけじゃなかったね。甥っ子とかも含まれてたね

子要素という回答は間違いなくあり得ないが
0611デフォルトの名無しさん
垢版 |
2018/08/14(火) 19:45:53.63ID:9xPZi6uk
>>609
もしかして、言い負かされるのが嫌だから今になっても論理破綻に気付いてないフリをする作戦か?

後付け?
何を言ってるんだ?
0612デフォルトの名無しさん
垢版 |
2018/08/14(火) 20:05:01.43ID:YTiF5JLC
>>598,602
検索したらすぐ出てきました!
JavaScriptと共通の仕様だったんですね

>>599
兄弟要素のテキスト入力でした・・・

<form>
<div id="DESCRIPTION">〜</div>
<input name="NAME" type="text">
<input name="TYPE" type="text">



</form>

と言った感じです。

>>603
子孫全部を参照してたんですね。
調べてみると、子要素だけを返す場合はchildrenプロパティでした

>>604
表示されるようになりました。ありがとうございます。
もしInternetExplorer型を利用する場合、マクロを使う人全員が各々参照設定を変更する必要があるのでしょうか。
0613デフォルトの名無しさん
垢版 |
2018/08/14(火) 20:07:05.64ID:HhG+br3u
>>611
> もしかして、言い負かされるのが嫌だから今になっても論理破綻に気付いてないフリをする作戦か?
それお前な w
0614デフォルトの名無しさん
垢版 |
2018/08/14(火) 20:13:52.93ID:1VnLB036
VBer完敗だな
VBAでもHTMLやJavascriptが絡むと全然ダメダメなのね
やっぱり一つの事しか出来ないと発展しないな
0615デフォルトの名無しさん
垢版 |
2018/08/14(火) 20:16:39.89ID:9xPZi6uk
>>612
参照設定はブック毎だからそのブックを使うなら問題無い。
しかしソースコードの配布の場合やモジュールの配布だったらそれぞれが参照設定する必要がある。

GetElement系は4つ有るけど1つだけを返すのはGetElementByIdだけ。
他はGetElement"s"というようにsが付いている。
0616デフォルトの名無しさん
垢版 |
2018/08/14(火) 20:31:45.14ID:oMGTI9sO
だからなんで聞いてもいないことをいきなり語り出すの?
しかも半端な知識で
0617デフォルトの名無しさん
垢版 |
2018/08/14(火) 20:33:26.52ID:9xPZi6uk
>>613

論理に強い学生、弱い学生の話をしている時の話。

A「文系大学ってのは前提として教育学部とか文学部のねえちゃんが入る所という話だと思ってるんだけど」
B「ねえちゃんというのは印象操作だね。学部はたくさんあるんだから。法学部のあんちゃんと言ったら真逆の印象になるだろ」
C「教育学部、文学部にいる法学部のあんちゃんって何だ?」←これお前。
0618デフォルトの名無しさん
垢版 |
2018/08/14(火) 20:34:00.47ID:vNNJJh8I
自作関数で
getFishみたいなのを作るとき
魚が複数だと想定したときどうしますか?
英単語ではfishの複数形は同型のfishです。
0619デフォルトの名無しさん
垢版 |
2018/08/14(火) 20:35:10.45ID:vNNJJh8I
>>572
ありがとうございます。
できるのですね。
どうしたらいいか教えていただけませんか?

>>573
なんか金を払わないと使えないようですね。
こんなケチくさいVBAの言語ってまるでウンチですねw
0621デフォルトの名無しさん
垢版 |
2018/08/14(火) 20:43:07.05ID:UeTN7rkw
>>618
普通はitem等の抽象的な単語になるので、複数形がitemsになるだけ
fishの複数形は知らなかったけど、それは考えた事がないな

どうしてもバッティングしてしまうなら、fish_multiなどアンダーバー付けて判別できるようにすると思う
多分一生その事態に出くわすことはないと思う
0623デフォルトの名無しさん
垢版 |
2018/08/14(火) 21:20:02.20ID:CO1HK5vR
英語のテストじゃないんだからルール指向でfishsでOKよ
外人プログラマでもわりとこう書く人が多い
0628デフォルトの名無しさん
垢版 |
2018/08/14(火) 22:28:07.20ID:n9VvPXNA
>>627
そりゃもちろん理系院卒のあんちゃんたちもExcelとVBAを使っている実情があるから言ってるんじゃんか。
その実情を踏まえないから印象操作だとなったんでしょ。
0629デフォルトの名無しさん
垢版 |
2018/08/14(火) 22:41:39.16ID:9xPZi6uk
>>627
もう1度>>482を読み返せ。
>>482は「部門部署はたくさんあるんだから。」と書いてる。
総務、営業の話を否定していると何度言ったら・・・
0634デフォルトの名無しさん
垢版 |
2018/08/14(火) 22:52:30.79ID:FxNfwjJS
煽り合いやめーや
0635デフォルトの名無しさん
垢版 |
2018/08/14(火) 22:53:08.09ID:5GU0qsYr
俺がまだ理系学生だったころ
Windowsを使ってる仲間がそもそも居なかった
データ解析、シミュレーション、実験機器制御、ビジュアライゼーション、レポーティング、プレゼンテーション、ツール作成
いろいろやったけどVBAは1度も使ったことがなかった
Excelも社会人になってはじめて使った
0636デフォルトの名無しさん
垢版 |
2018/08/14(火) 22:53:20.88ID:FxNfwjJS
                              / ̄ ̄ ヽ,
           喧嘩をやめゅてぇ〜♪    / 丶 /   ',
                         ノ//, {゚}  /¨`ヽ {゚} ,ミヽ
 ふたりをとゅめてぇ〜♪        / く l   ヽ._.イl    , ゝ \
  .ni 7                  / /⌒ リ   ヘ_/ノ   ' ⌒\ \
l^l | | l ,/)                (   ̄ ̄⌒          ⌒ ̄ _)
', U ! レ' /   / ̄ ̄ ヽ,       ` ̄ ̄`ヽ           /´ ̄
/    〈   /        ',        .n   .|   ・    ・   |
     ヽっ{゚}  /¨`ヽ {゚},       l^l.| | /)ノ           |
  /´ ̄ ̄ .l   ヽ._.イl  ',      | U レ'//)           ノ
/  ィ-r--ノ   ヘ_/ノ   ',    ノ    /          ∠_
   ,/              ヽ rニ     |  f\      ノ     ̄`丶.
  丿'               ヽ、  `ヽ   l |  ヽ__ノー─-- 、_   )
. !/                  ヽ、 |   | |           /  /
/                      !jl   |ノ          ,'  /
 .l                      l    |          |   ,'
 .|  ・                  丶   ヽ         |  /
 !                 ア!、,  |   |        ,ノ 〈
./            ・   ./'  (  ヽ_____ノ        ヽ.__ \
                 /   ヽ._>              \__)
0637デフォルトの名無しさん
垢版 |
2018/08/14(火) 23:02:13.52ID:n9VvPXNA
>>632
同じ構造に見えるけどそれが何か?
0638デフォルトの名無しさん
垢版 |
2018/08/14(火) 23:03:35.49ID:n9VvPXNA
>>632

>>482
>>617のBまで

が同じ構造ね
0640デフォルトの名無しさん
垢版 |
2018/08/14(火) 23:11:16.42ID:1MVGxjCr
朝から晩まで延々とくそどうでもいいような話、よく続けられるなお前ら
0643デフォルトの名無しさん
垢版 |
2018/08/14(火) 23:31:25.07ID:n9VvPXNA
>>642
法学部だけど?
0646デフォルトの名無しさん
垢版 |
2018/08/15(水) 07:50:26.11ID:+0zUs7od
>>644
何言ってんだ?
法学部 ⇔ 理系院卒
学部 ⇔ 部門部署
という対応関係だろ。
>>617がどういう意図で書いたかは知らんが俺は>>482でそういうつもりで書いた。
0647デフォルトの名無しさん
垢版 |
2018/08/15(水) 08:10:19.35ID:MbmwE69Z
>>646
だよな。
誰がどう見てもそれ以外無いでしょ。
日本語が分からない奴なら理解出来ないかもしれんが。

>>642
>>644
言質を取ってから挙げ足を取るようなことは辞めたら?
明らかなんだから確認する必要無いだろ。
それとも本当に理解出来てないのかもしれんが。
0652デフォルトの名無しさん
垢版 |
2018/08/15(水) 09:22:29.19ID:MbmwE69Z
法学部→全体に対い一部のできる奴の喩え
理系院卒→全体に対して一部できる奴の喩え

学部→全体の喩え
部署→全体の喩え

ねえちゃん・おっさん→一部のできない奴の喩え
ねえちゃん→一部のできない奴の喩え

事務部門→一部のできない部署の喩え
教育学部・文学部→一部のできない学部の喩え
0653デフォルトの名無しさん
垢版 |
2018/08/15(水) 09:34:06.55ID:+0zUs7od
>>650
対応関係ってのは単に

 (あ)と(い)は(う)である
 (A)と(B)は(C)である

という二つの主張における

 あ ⇔ A
 い ⇔ B
 う ⇔ C

という対のことを言うんだから
お前が変な考えに囚われているだけだよ
0654デフォルトの名無しさん
垢版 |
2018/08/15(水) 09:48:29.72ID:o8lgioa7
>>651-653
何一生懸命言い訳してるのか知らんけど
・法学部は学部に含まれる
・理系院卒と部署に直接の関係はない
ただそれだけ
0655デフォルトの名無しさん
垢版 |
2018/08/15(水) 09:51:26.21ID:+0zUs7od
>>654
・法学部は学部に含まれる
・理系院卒と部署に関係はある
以上
俺がそういってるんだからそうなんだよ。文句つけんな。
0657デフォルトの名無しさん
垢版 |
2018/08/15(水) 11:31:11.58ID:pqG57C1I
前提に正も誤も無いとか言って自分の前提は無条件で信じられるべき
なのに他人の出す前提は理解すら示そうとしないダブスタ

相手にするだけ無駄なやつ
0658デフォルトの名無しさん
垢版 |
2018/08/15(水) 11:44:29.14ID:o8lgioa7
> 相手にするだけ無駄なやつ
ならレスしなきゃいいのに…
悔しさ滲み出てますよ w
0661デフォルトの名無しさん
垢版 |
2018/08/15(水) 12:05:44.37ID:azz2Q493
無駄話やら罵り合いしたいだけならスレ立ててそこでやってくんねーかなー
0662デフォルトの名無しさん
垢版 |
2018/08/15(水) 12:07:24.16ID:pqG57C1I
>>660
議論に乗るつもりがないだけでお前を馬鹿にするのをやめる理由はない
お前ただ相手にされなくなったのを論破したと勘違いして生きてきたっぽいな
0665デフォルトの名無しさん
垢版 |
2018/08/15(水) 12:16:44.17ID:kebfuqT8
ここまでVBAの話なし
0667デフォルトの名無しさん
垢版 |
2018/08/15(水) 12:54:37.56ID:KuKFPEdV
>>661
VBAの話がしたいなら違うスレ立ててやれ
0668デフォルトの名無しさん
垢版 |
2018/08/15(水) 12:56:36.01ID:MbmwE69Z
>>654
引数が偶数だったら文字列を返し、奇数だったら数値を返すプロシ―ジャがあったとしよう。

お前は引き数同士、戻り値同士を比べてプロシ―ジャが2つあると言い出すバカ者だ。

構造の話なんだから引数と戻り値の関係を比較して、両者が同じ関係かどうか評価しろよ。
0669デフォルトの名無しさん
垢版 |
2018/08/15(水) 13:02:03.82ID:o8lgioa7
また頓珍漢なこと言い出したぞ w

まあ「含まれる」とかが構造の話と思えない時点で詰んでる
0670デフォルトの名無しさん
垢版 |
2018/08/15(水) 13:07:08.07ID:MbmwE69Z
ついでに言っとくと法学のあんちゃんは全ての学部のどれかに含まれる。
理系院卒のあんちゃんも全ての部署のどれかに含まれる。

同じ構造だ。
0671デフォルトの名無しさん
垢版 |
2018/08/15(水) 13:09:43.34ID:FDr69IxI
この数式のない一軒不毛そうな議論から規則性とか関連性を見つけるのもプロクマラーに必要なスキル
0672デフォルトの名無しさん
垢版 |
2018/08/15(水) 13:10:36.49ID:+0zUs7od
やっと納得を得たようでなによりだ。本題に戻ろう。

部門部署はたくさんあり、総務や営業以外の事務部門には理系院卒のあんちゃんが点在している。
彼らは少しはプログラミングできて他言語も知っているし、申請すればVisualStudioも入れられる。
事務部門全体で見た潜在的なIT能力は高い。

一方、Excelは社内で重要な業務に使われていて部門間・会社間でExcelを介した依存関係が双方向に発生している。
Excel・VBAは必須のツールだ。

そのIT能力でExcelやVBAの能力を補うことが正しい戦略だ。
ネットに繋げないとかOSSが利用できないなんて論外だ。
0674デフォルトの名無しさん
垢版 |
2018/08/15(水) 13:46:28.89ID:o8lgioa7
>>670
> 理系院卒のあんちゃんも全ての部署のどれかに含まれる。
まじで言ってる? w
理系院卒の無職がいないとでも思ってるのか?

>>672
>>655で引っ込んどけばいいものを…
0677デフォルトの名無しさん
垢版 |
2018/08/15(水) 14:48:08.03ID:+0zUs7od
>>675
ほんとだね
算数の文章題の内容を式に直したりできなさそう
俺には>>674に正しく伝わる文章なんて書けそうもない
0679デフォルトの名無しさん
垢版 |
2018/08/15(水) 15:04:43.74ID:TLBrAROC
やっぱり>>2にもどったな
印象操作やら神の声やら今夜のおかずやら他のノイズも混ざってるけどw

↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
引き続き、知ったかぶりがVBAにマウントをとる長文と
VBA老害が見当外れのレスをする長文をお楽しみください
0680デフォルトの名無しさん
垢版 |
2018/08/15(水) 15:18:45.96ID:o8lgioa7
>>679
> 引き続き、知ったかぶりがVBAにマウントをとる「長文」と
> VBA老害が見当外れのレスをする「長文」をお楽しみください
最近の長文 → >>604, >>672
なるほど確かに知ったかの見当外れのレスだわ w
0681デフォルトの名無しさん
垢版 |
2018/08/15(水) 20:28:47.28ID:PFaZ124V
アレ?
なんで罵り合いが終わったの?
燃料切れ?
0683デフォルトの名無しさん
垢版 |
2018/08/15(水) 20:55:50.25ID:PFaZ124V
期待してます
ボッコボコにして
0685デフォルトの名無しさん
垢版 |
2018/08/15(水) 22:00:35.47ID:ptNtiXuo
世間では明日までお盆休みだよ
0687デフォルトの名無しさん
垢版 |
2018/08/15(水) 22:08:06.98ID:+0zUs7od
主張の食い違いとかだったら面白いんだけどね
0688デフォルトの名無しさん
垢版 |
2018/08/16(木) 00:05:39.03ID:l34+V18a
>>477をまず読め。
ねえちゃん・おっさんは何処に所属してる?

まずVBAを使うのは会社全体の中で事務部門に所属するような、ねえちゃん・おっさんだと言ってる。

それに対してVBAを使うのは事務部門以外に所属する理系院卒だってあり得るだろうというのが>>482だ。

だから>>477と>482のやり取りの中ではその例に出てきた理系院卒は会社に所属している前提だ。

日本語弱い君は文章全体を理解しようとせずに出てくる単語単体にこだわるようだ。
アスペか何かか?
0689デフォルトの名無しさん
垢版 |
2018/08/16(木) 00:15:17.92ID:gbtMedVo
>>688
ちょっと違うよ
>>482は理系院卒を「事務部門以外」とは言ってない。
事務部門にもいろいろな部署があるからね。いわゆる戦略的な「攻め」の部署には割とエリートっぽい奴が配属される。

まあスレの流れ的にはあまり関係ないからいいけど。
0690デフォルトの名無しさん
垢版 |
2018/08/16(木) 00:20:40.85ID:l34+V18a
>>689
確かに事務部門以外に限定しているわけじゃないけど、日本語弱い君とやり取りしてると細かいことはど―でも良くなる。

もっと基本的な所が既に通じないからな。
0691デフォルトの名無しさん
垢版 |
2018/08/16(木) 00:22:29.57ID:SOTYyfvv
(こいつらいったい何と戦っているんだ…)
0692デフォルトの名無しさん
垢版 |
2018/08/16(木) 00:41:08.45ID:gbtMedVo
>>691
そりゃもちろん
「事務員に高度なITは使いこなせないから不要」
っていう固定観念と戦っているのさ。
事務員の中のポテンシャルの高い連中の能力を引き出せれば
くだらないSIerなんかとおさらばできて競争力も高まるからね。
0693デフォルトの名無しさん
垢版 |
2018/08/16(木) 06:03:27.79ID:H6lHpBvI
Worksheets("w").Range(Cells(1, 1), Cells(1, 43)).ClearContents
これってシートをアクティブにしなくても使えますよね?
アプリケーション定義またはオブジェクト定義のエラーが出てしまうのですが
0694デフォルトの名無しさん
垢版 |
2018/08/16(木) 06:29:39.37ID:AOJ6PJJu
>>693
そのコードが実行されるときにアクティブになっているブックにwシートがなければエラーになるぞ
当たり前だけど

指定してるシートの名前が"w"じゃなくて"w"とか"w "になってたなんてことはよくあるし、コードの実行時にwシートを持たない別のブックがアクティブになってしまってる場合もある
0695デフォルトの名無しさん
垢版 |
2018/08/16(木) 06:34:34.81ID:HHNkLN/y
>>693
wがアクティブでないとエラーになりますよ
0697デフォルトの名無しさん
垢版 |
2018/08/16(木) 07:23:14.62ID:t6OwQxX1
>>688
> 理系院卒は会社に所属している前提だ。
で、それが何か?
含まれるの概念がわかってないの?
あと会社にいるからと言って所属部署があるとは限らんよ、社長かもしれないしね w
0698デフォルトの名無しさん
垢版 |
2018/08/16(木) 08:10:34.34ID:l34+V18a
>>697
文章をちゃんと読め。
理系院卒は"この場合は"何処かの部署に含まれている前提だ。
社長であるという前提ではない。
0700デフォルトの名無しさん
垢版 |
2018/08/16(木) 08:51:59.47ID:l34+V18a
>>699
そういうわけで日本語に弱く論理破綻しているのがお前という結論にお前が抗えなくなったということだ。
0701デフォルトの名無しさん
垢版 |
2018/08/16(木) 08:59:32.11ID:BCwpVRwG
本当に再開してるじゃん
もしかして自作自演?
だとしたら深刻な症状ですよ
0702デフォルトの名無しさん
垢版 |
2018/08/16(木) 09:06:30.09ID:ZGWCaRN6
セルに4桁の数字を打ち込むと、その行の変えたい4桁の数字が全部入れ替わるようにしたいのですが、できますか?
いまは、デフォルトで4桁の数字を9999に入れておいて、すべて置き換えで変えたい4桁の数字に置換えています。
よろしくお願いします!
0703デフォルトの名無しさん
垢版 |
2018/08/16(木) 09:07:26.88ID:Au8uUKpS
出来る
0704デフォルトの名無しさん
垢版 |
2018/08/16(木) 09:12:04.69ID:l34+V18a
そもそもは>>477>>482のやり取りをどう解釈するかという問題だ。

日本語弱い君の解釈では>>482は事務部門にいる理系院卒という解釈だ。
そして俺の解釈では>>482では理系院卒は事務部門に限定しているわけじゃないという解釈だ。

それなのに目先の文章や単語単体にとらわれて元々の>>477>>482のやり取りを忘れてもらっては困る。
0705デフォルトの名無しさん
垢版 |
2018/08/16(木) 09:21:29.75ID:l34+V18a
>>702
今通勤中で手元にPCが無い。
WorkSheetのセルの値が変わったイベントで以下のようにする。
コードの中でTargetがA列の場合だけ以下が走るようにすればOK。
あとRows(i)はUsedRangeに限定した方が良いかな。
Dim cl As Range
For Each cl In Rows(i).Cells
cl.Value=Replace(cl.Value,Cells(i,1).Value)
Next
0706デフォルトの名無しさん
垢版 |
2018/08/16(木) 09:37:10.05ID:gbtMedVo
>>704
悪いけど>>482は事務部門にいる理系院卒という意味だよ。
文章だけではそう限定できないから、どう取っても論理的に解釈間違いになるわけじゃないけどね。

>>477では事務部門のスタッフを「ねーちゃん・オッサン」と呼び、VisualStudioを使った開発なんかできない
人々の集まりのように描写していた。
それを「印象操作」と呼んだわけだ。
0707デフォルトの名無しさん
垢版 |
2018/08/16(木) 09:40:28.42ID:fIO0uyHl
既出かも知れません。
セルに入力した式を、数式として返すvbaが欲しい。

あるセルに=A1×A2と入っていれば、指定セルに2×3=6とか表示するやつ。
0708デフォルトの名無しさん
垢版 |
2018/08/16(木) 09:43:32.55ID:t6OwQxX1
>>700, >>704
> それなのに目先の文章や単語単体にとらわれて
それお前な

> ・法学部は学部に含まれる
> ・理系院卒と部署に関係はある
どんな関係があるんだ?
そもそも「含まれる」と「関係ある」という時点で比較になってないし
>>655で許してやったんだからそこでやめてりゃいいのに w
0710デフォルトの名無しさん
垢版 |
2018/08/16(木) 10:01:07.98ID:gbtMedVo
>>708
>・理系院卒と部署に関係はある

単に事実として書いたんであって、論理的に読み取るとか解釈できる・できないの話じゃないでしょ。
0711デフォルトの名無しさん
垢版 |
2018/08/16(木) 10:53:21.12ID:t6OwQxX1
>>710
>>・理系院卒と部署に関係はある
> 単に事実として書いたんであって
だから「どんな関係」かを書きなよ

> 論理的に読み取るとか解釈できる・できないの話じゃないでしょ。
誰もそんな頓珍漢な話はしてない
0712デフォルトの名無しさん
垢版 |
2018/08/16(木) 11:00:04.22ID:gbtMedVo
>>711
もう書かれているから断る
0714デフォルトの名無しさん
垢版 |
2018/08/16(木) 11:36:03.34ID:gbtMedVo
>>713
スルーして本題が復活するまで待つか自分で振るかすればいいじゃん。
0715デフォルトの名無しさん
垢版 |
2018/08/16(木) 11:37:12.39ID:q37zSSst
これ自作自演のひとりの人らしいですよ
0719デフォルトの名無しさん
垢版 |
2018/08/16(木) 12:39:20.77ID:t6OwQxX1
>>712
> もう書かれているから断る
でも、どこに書いてるかは明かせないってか?
低能がごまかすのによくやる手 w
0721デフォルトの名無しさん
垢版 |
2018/08/16(木) 12:44:51.37ID:fD/OKUaV
まだ機械学習中なんで
0722デフォルトの名無しさん
垢版 |
2018/08/16(木) 12:51:48.47ID:gbtMedVo
>>719
みんな思ってるんだよ。
「断る」
ってな。
0723702
垢版 |
2018/08/16(木) 12:55:51.13ID:ZGWCaRN6
>>705
ありがとうございます!
0724デフォルトの名無しさん
垢版 |
2018/08/16(木) 12:59:30.71ID:fD/OKUaV
みんな知らんだろうけどこの法学部と院卒のくだりは昨日の夜からやってるんだからな
一旦睡眠のために休憩してたみたいだけど
こんなどーでも良いことを続けられるなんて凄いよな
0728デフォルトの名無しさん
垢版 |
2018/08/16(木) 16:03:09.69ID:3fUcOf8H
質問したいんやけど
VBA エキスパートのベーシックの資格を取ろう公式テキスト買ったんやけど
模擬試験をやろうとしたけどWindows 7までしか対応していないんや
Windows 10の場合、代替プログラムをインストールしろと書いてあるが
インストールの仕方がわからん
知ってる人いる?
0729デフォルトの名無しさん
垢版 |
2018/08/16(木) 17:16:08.82ID:5/9Syz1B
すげーな、ハンドルと右折の話から一週間くらいでこれとか活気があっていいなw

サマータイムの話が職場で盛り上がった時に
それくらいはプログラム作るときに考慮しておけよなって人が多くて
やっぱり求められてるのはハンドル作れってことなんだなと痛感したわ
ー応じようだなんて1ミリも思わないけどww
0732デフォルトの名無しさん
垢版 |
2018/08/16(木) 21:26:24.30ID:Z/EAAxtY
教えてください

マクロを登録したチェックボックスを用意して、ワンクリックでその隣のセルの値をコピーする
という簡単そうな事ができませんでした
Activecell.offset(,1).Copy
くらいの事でできると思っていました…
すみません助けてください
たぶんすぐ出来るとか豪語してしまいました
反省しています
0740デフォルトの名無しさん
垢版 |
2018/08/17(金) 17:20:05.57ID:lRSRxbIQ
with使うやつアホなの?
.で始まる部分を見るたびにwithを探しに行って確認する手間暇がかかって面倒。
0741デフォルトの名無しさん
垢版 |
2018/08/17(金) 18:01:20.36ID:KaaDwp63
普通の人が追うのに苦労するほどなら確かにWithの使い方としてはあまり良くない
ただ>>740の能力がなさ過ぎる可能性が微レ存
0745デフォルトの名無しさん
垢版 |
2018/08/17(金) 22:57:11.00ID:zD2h2oDf
このスレもルビパー臭くなったなwプロさんwwwww
0746デフォルトの名無しさん
垢版 |
2018/08/17(金) 23:20:18.52ID:vMaMvG23
>>740
オブジェクトの生成とWithを組み合わせるとスコープ(っぽいもの)の終了で
リソース解放してくれるのだけは重宝している。
0748デフォルトの名無しさん
垢版 |
2018/08/18(土) 00:25:21.58ID:1Mn+50P1
>>747
.開始?

With Createなんちゃら〜
.なんかメソッド
End With

Nothing代入せずにデストラクタが呼ばれるのいいじゃない
0749デフォルトの名無しさん
垢版 |
2018/08/18(土) 00:33:56.94ID:u8ja/Ot0
そういやvbaのガベージコレクションってどうなってるの?
sub・functionが終わったらメモリから全部消えるのかな
0750デフォルトの名無しさん
垢版 |
2018/08/18(土) 00:38:28.60ID:PRD/1v4M
>>748
C#のusing的な使い方になるってこと?
0751デフォルトの名無しさん
垢版 |
2018/08/18(土) 00:52:41.00ID:QJ6qXFdU
プロさん出番やでーwwwww
0752デフォルトの名無しさん
垢版 |
2018/08/18(土) 01:07:33.12ID:1Mn+50P1
>>750
単に End Withのタイミングで Class_Terminate が呼ばれるってだけだけど
Sub・Functionの終了を待たずにそのタイミングをコントロールできるのがいい。
0753デフォルトの名無しさん
垢版 |
2018/08/18(土) 02:05:15.49ID:Qu3u+5ap
>>750
なるほど、廃棄が前提ならアリやな。
でもVBA掲示板のプロっぽい風吹かしてるやつらは、廃棄する必要のないworkbookとかworksheetをワザワザwithする不思議。
0755デフォルトの名無しさん
垢版 |
2018/08/18(土) 03:10:47.26ID:r01iwFGV
>>752
VBAのガベコレは参照カウンタ方式だから、参照がなくなったら廃棄されるだけ
変数に受けても、明示的にNothing代入すればその場で解放されるはずだからタイミングのコントロールはできる


>>753
そもそもWithは、単に何度も同じオブジェクト参照を書かなくて済むだけの機能だから
廃棄するかどうかとは関係ないしそんなものと絡めて使うべきではない
0756デフォルトの名無しさん
垢版 |
2018/08/18(土) 09:04:47.19ID:1Mn+50P1
>>755
明示的にNothing代入するのがだるいって話さ
0757デフォルトの名無しさん
垢版 |
2018/08/18(土) 09:10:53.39ID:pAmB63kN
>>755
> 廃棄するかどうかとは関係ないしそんなものと絡めて使うべきではない
>>748みたいな奴ならEnd Withで廃棄されるだろ
難癖つけてるだけにしか見えん
0759デフォルトの名無しさん
垢版 |
2018/08/18(土) 13:39:35.74ID:u8ja/Ot0
>>758
だよな
vbaなんてサクッとエクセルデータをどうにかしたり印刷の体裁整える程度でいい
そんなインストラクタだのガベージコレクションなんて考えて書く言語じゃない
0762デフォルトの名無しさん
垢版 |
2018/08/18(土) 14:25:54.38ID:r01iwFGV
>>758
ああ、そうだな
VBAではっていうより、ここでは不要だな
どうせまともな議論にはならんしな
0763デフォルトの名無しさん
垢版 |
2018/08/18(土) 14:26:50.24ID:r01iwFGV
>>758
ああ、そうだな
VBAではっていうより、ここでは不要だな
どうせまともな議論にはならんしな
0764デフォルトの名無しさん
垢版 |
2018/08/18(土) 14:37:54.05ID:pHq61mgp
>>763
明確に賛成 vs 明確に反対
の罵り合いになるなら荒れても面白いんだけど、なぜかそうならんね
みな本題から逸れたところで言い争う
0766デフォルトの名無しさん
垢版 |
2018/08/18(土) 15:33:37.30ID:OGMfrWDu
>>753
WorkbookやWorksheet等の組み込みオブジェクトであってもWithで参照保持した方が良い場合もある
実際比べてみると分かるがオブジェクト変数を使うとメモリを確保する分動作が重くなるし、一つの処理の中でWithを使わず何度も同じプロパティ参照を行えばその分計算量は増える

それなりに大きな配列を処理したり何百ものブックやシートを処理したりするプログラムになれば、この手の小手先の調整が大きく動作に影響したりするよ
0767デフォルトの名無しさん
垢版 |
2018/08/18(土) 15:50:10.99ID:u8ja/Ot0
オブジェクト変数って言っても中身は参照でしょ?
どんなポンコツPC使ってるんだ
0768デフォルトの名無しさん
垢版 |
2018/08/18(土) 16:17:32.41ID:1Mn+50P1
>>766
With なんちゃら
  .Hoge
End With
の代わりに
Set ref = なんちゃら
として ref.Hoge
とするなら原理的に同じはずでは?
0769デフォルトの名無しさん
垢版 |
2018/08/18(土) 16:26:03.95ID:XAZ8inQ9
アマチュアのVBAユーザーだとインスタンスと参照の概念はよくわからないんじゃないかな
Java研修などでも新人が躓きやすいところだし勘違いしてもしょうがない
0770デフォルトの名無しさん
垢版 |
2018/08/18(土) 16:33:12.97ID:lPI41hg1
VBA推しの人の前提条件がアプリのインストールも何もかも出来ないって会社の話でしょ?
そんな会社は特殊な極一部じゃん
普通はインストールも出来るしアプリも入れれる
でもそうなるとVBAを使う意味が全くなくなるから特殊な環境の話をこじつけてるんでしょ?
0772デフォルトの名無しさん
垢版 |
2018/08/18(土) 16:53:37.10ID:lPI41hg1
大企業が極一部じゃん
0774デフォルトの名無しさん
垢版 |
2018/08/18(土) 17:19:14.72ID:XAZ8inQ9
本当にエクセルしか使わない大企業などというものが存在するのだろうか
具体的にどこの企業のことなんだ?
0775デフォルトの名無しさん
垢版 |
2018/08/18(土) 17:32:37.30ID:ktgzOwh8
やたらとメール重用で社内システムは古臭いwebアプリ
末端はこそこそエクセル開発ってイメージ
ただの偏見だけど
0777デフォルトの名無しさん
垢版 |
2018/08/18(土) 18:23:43.35ID:lPI41hg1
大企業からwebアプリでやってそうだけど
違うんだ
共有や同時接続が決定的にダメダメなエクセルで仕事しなけりゃいけないなんで気の毒だな
0778デフォルトの名無しさん
垢版 |
2018/08/18(土) 19:11:00.94ID:QbV6+C0c
大企業でも大抵は入れていいアプリはホワイトリストとかで持ってるし申請すれば大抵は通る
0779デフォルトの名無しさん
垢版 |
2018/08/18(土) 19:24:59.50ID:Rl20PTNq
じゃあVBAしか使えないって大前提が崩れるじゃん
そしたらVBAなんて使う意味ないじゃん
VBAしか使えないのに色んな工夫して凄いなぁーって
とてつもなく面倒で生産性の悪い事をさせられてるんだなーって
0781デフォルトの名無しさん
垢版 |
2018/08/18(土) 19:54:33.41ID:Rl20PTNq
ループっても前提条件が大きく変わったんだから議論は初めてと言っても良いだろ
0782デフォルトの名無しさん
垢版 |
2018/08/18(土) 20:12:24.79ID:u8ja/Ot0
>>775
メールは使いにくい!チャットワーク導入!
→チャットワーク使いにくい!
→メールへ

って感じ
0783デフォルトの名無しさん
垢版 |
2018/08/18(土) 20:34:54.41ID:1Mn+50P1
>>779
根本的なところで根拠がないんだよ
Excelが周りで使われているんだからVBAも当然使いたくなるだろう
0784デフォルトの名無しさん
垢版 |
2018/08/18(土) 20:41:33.86ID:Rl20PTNq
今からVBAを覚えようとしてる人へ

他言語ならもっとシンプルで簡単にそして高速ですよ
それに開発ツールも遥かに強力だしインテリセンスも抜群に効くし半分の労力で10倍の生産性があるので無意味なVBAを覚えるなんて遠回りしない方が良いですよ
VBAは主に大企業で制約がとてもキツく何もインストールさせて貰えない環境で働かされてる人向けです
0785デフォルトの名無しさん
垢版 |
2018/08/18(土) 21:15:29.15ID:1Mn+50P1
>>784
そんなあなたのイチオシは?
0786デフォルトの名無しさん
垢版 |
2018/08/18(土) 21:34:56.80ID:XAZ8inQ9
俺は.NETに惚れ込んでMS好きになったから、MSファミリの代表格であるExcelやVBAも好きになりたい
でも、ExcelとVBAの使い道を必死に探しても、残念ながらC#やPowerShellには勝てない日々が続いている
なんでもいいから、VBAコミュニティが努力して革命的な利用方法を発明してくれればいいんだけど
0787デフォルトの名無しさん
垢版 |
2018/08/18(土) 21:42:59.05ID:ddghJ7gy
>>784
VBAは大企業では大いに役に立つわけですな
0788デフォルトの名無しさん
垢版 |
2018/08/18(土) 21:50:10.80ID:ddghJ7gy
ここはVBAのスレだから
VBAのポジティブなところにフォーカスしたいよね
その他の言語は専用スレに行っていただくとして

大企業で活かせるっていうのは良いですよね
0791デフォルトの名無しさん
垢版 |
2018/08/18(土) 22:13:23.22ID:FUzlnCg0
前提条件が崩れてアタフタしとる
ちなみにお前は大企業の書類選考も通らん
なので好きなだけインストール出来る環境なのにVBAでのたうちまわってる
0792デフォルトの名無しさん
垢版 |
2018/08/18(土) 22:17:28.63ID:ddghJ7gy
>>790
Wikipediaから引用するけど

Excel、Access、Word、Outlook、PowerPointなど
Officeのアプリケーション・ソフトウェアの機能を拡張できる。

Microsoft OfficeシリーズにはVBAのコード作成・編集ソフトが最初から付属している
使用を始めるにあたり、Office以外の特別なソフトの用意やセッティングを要しない。
文献やネット情報も多く、最低限の学習で誰でも手軽にプログラミングが始められる。
実行も容易。

効果的な運用方法はわかりません。
0793デフォルトの名無しさん
垢版 |
2018/08/18(土) 22:25:10.50ID:ddghJ7gy
大企業の書類選考を通らない人は中小企業に就職するしかありませんね。

中小企業に就職したとしても大企業の下請けとして仕事することも在りますので
大企業で使われているVBAは中小企業でも使われることは自明なわけであります。

まとめるとVBAは大企業で大いに役立つし
中小企業でもその知識や技術は重宝されるよってことです
0794デフォルトの名無しさん
垢版 |
2018/08/18(土) 22:30:17.99ID:XAZ8inQ9
GoogleやMicrosoft、Amazonなどの大企業ではエクセルVBAを推奨してほかのツールはインストール禁止なのでしょうか?
0795デフォルトの名無しさん
垢版 |
2018/08/18(土) 22:30:34.00ID:FUzlnCg0
エクセル以外は何もインストール出来ない環境だからって前提は変更で良いのね
その上で実は色んな言語もIDEも試せるけどエクセルにはVBAが1番ピッタリだって事に変えとけば良い?
0797デフォルトの名無しさん
垢版 |
2018/08/18(土) 22:43:37.98ID:ub6IzT+t
>>768
違う
オブジェクト変数は4バイト以上のアドレス領域をメモリ上で占有する
Dimとかで宣言すると、その変数に何も代入されておらず処理に全く関与していない状態でも4バイト以上消費することになる

一方、With文中で取得した参照はブロックスコープ内でしかROMを占有しない

この違いは案外大きいよ
0798デフォルトの名無しさん
垢版 |
2018/08/18(土) 22:45:52.52ID:FUzlnCg0
今のマシンで4バイトのメモリなんて気にする必要ないだろ
ファミコンか!
0800デフォルトの名無しさん
垢版 |
2018/08/18(土) 22:50:44.29ID:XAZ8inQ9
>>792
メリットとしては弱いかな

>>795
VBAがExcelにピッタリというのは実は根拠に乏しい
本当にピッタリならVSTOやExcel Python、Excel JS APIなどといった他の言語への需要は生まれなかったはず
ユーザーの素直な気持ちとしてVBAはExcelにふさわしくないのでは? という思いがあるから、他の言語への需要があるんじゃないかな
0801デフォルトの名無しさん
垢版 |
2018/08/18(土) 22:57:23.43ID:1Mn+50P1
>>797
大きいわけないと思いまーす

>>800
それらって成功してるの?(曖昧な質問)
0803デフォルトの名無しさん
垢版 |
2018/08/18(土) 23:10:13.31ID:XAZ8inQ9
>>797
もうやめとけ
そんな微細な違いでは8:2法則に飲み込まれてパフォーマンスには影響しない
そもそもコンパイルされたらどっちの書き方でも関数やプロシージャの消費するスタックサイズは同じだろう
それともなにかVBAは分岐によって動的にスタックサイズを変えているとでもいうのか?
そんなのは4バイトのメモリをケチるよりももっと無駄なコストだ
0804デフォルトの名無しさん
垢版 |
2018/08/18(土) 23:16:38.19ID:ddghJ7gy
>>800
最強だよ!
0805デフォルトの名無しさん
垢版 |
2018/08/18(土) 23:17:49.14ID:ddghJ7gy
VBA最強伝説の幕開けである
0806デフォルトの名無しさん
垢版 |
2018/08/18(土) 23:26:02.96ID:u8ja/Ot0
vba、当時は言語が入り乱れていてbasicでもいいかなって感じだったけど
もう今やBasicベースの言語が壊滅的すぎてな

今ならJS、python、C#どれでもいい
個人的にはweb系火事tているのでJSで掛けるとありがたい。
0807デフォルトの名無しさん
垢版 |
2018/08/18(土) 23:37:12.67ID:ddghJ7gy
>>806
GoogleスプレッドはJSを採用してるね
たしかに良い

とある大学の情報の先生がOCamlを教えたあとに
Javaを教えるとJavaは難しいですと言ってくる生徒が多いって言ってた

Excelのマクロと関数型言語は親和性高いから
F#とかこれから覚える人にとってはVBAよりもわかりやすいかも
0808デフォルトの名無しさん
垢版 |
2018/08/18(土) 23:46:37.13ID:FUzlnCg0
優秀な言語の条件
情報やサンプルの豊富さとIDE
F#なんてVBAより奇特
マイナーが好きなの?
0809デフォルトの名無しさん
垢版 |
2018/08/18(土) 23:47:08.42ID:u8ja/Ot0
>>807
JSは本当に使いやすくていいね
昔は定数「undifined」に代入出来たりとやんちゃな言語だったけど、大分更生した

vba自体は嫌いじゃないけど、折角プログラム覚えたのに、
他言語へのつぶしが効かないのがちょっと勿体無い

ただ、F#はちょっと・・・
せめてGoとかで
0810デフォルトの名無しさん
垢版 |
2018/08/19(日) 00:04:11.93ID:VVi9Y61v
>>808
OCamlが好きなの
F#はOCamlの.NETバージョンだから

>>809
Goも良いよね、ミニマリズムって感じ
あれ設計した人は良い意味で変態だよ
もう言語ありすぎて追い切れないけど
0812デフォルトの名無しさん
垢版 |
2018/08/19(日) 00:26:53.36ID:psltJnDY
>>811
もしVBAがなければその現象がほかの言語・環境になだれ込むんだぞ?
0814デフォルトの名無しさん
垢版 |
2018/08/19(日) 03:33:05.33ID:p4OHu/xz
というか90年代にVBが爆発的に売れた経緯を忘れてる
当時GUIに関してはVC++よりも開発し易かった
0815デフォルトの名無しさん
垢版 |
2018/08/19(日) 06:40:10.99ID:2hMRvgbC
おまいらここVBA質問スレだからな
雑談は雑談スレがあるだろ
質問したい人がしにくい雰囲気になってるじゃねーか
0821デフォルトの名無しさん
垢版 |
2018/08/19(日) 11:31:13.70ID:/OaADBse
>>800
用途が全く違う。
それに大抵の言語は用途が違っていてもある程度は被ってる。
矛盾するようだが他言語で出来ることは大抵VBAでも出来る。
一方、VBAで出来ることが他言語で出来ない場合は結構多い。

他えば、IEが自らをスクレイピングさせるために専用言語を用意したとする。
そうするとVBA含めて他言語は勝負にならない。
なぜならスクレイピングする運用方法が違うから。
どちらも使用者が取得したいデ―タを取得するプログラムが出来てると仮定してPythonと架空のIE専用言語を比較するとWebを見ていて、スクレイピングしたいページが有った時にその場でボタンやメニューから出来るのと、スクレイピング用のプログラム探しを始める違い。
この差は致命的に大きい。

まず、機能が実現出来ることが一番大事。
次にスピード。
プログラミングしやすいかどうかはその後。
そしてユーザーインターフェースは一番大事な機能に含まれる。
0822デフォルトの名無しさん
垢版 |
2018/08/19(日) 11:41:24.96ID:XZP26CyB
>>821
この意見に全く同意出来ないんだけど
そしてIE専用言語って何?
0823デフォルトの名無しさん
垢版 |
2018/08/19(日) 11:44:49.04ID:ql2A++ig
>>821
IEの開発者ツールのデバッグコンソールから実行するjavascriptとかIE専用言語みたいなもんだけど
それがあるからといってPythonやRubyでIEを操作することをやめはしない

そもそもスクレイピングするのにIEを通すことなんてしないので例えが悪すぎる

Web開発してるときにIEでの表示チェックぐらいか?
それならなおのことIE専用言語なんて出番がない
0824デフォルトの名無しさん
垢版 |
2018/08/19(日) 11:56:24.77ID:QrzzpoQc
マジでスクレイピングごときになんでIEだのCOMだの持ち出さないといかんのか
IEのサポート終了と同時に消える技術だってのに
0825デフォルトの名無しさん
垢版 |
2018/08/19(日) 11:59:17.80ID:XZP26CyB
IE専用言語ってもしかして
ActiveXの事とかの事?
そうでもない?
0826デフォルトの名無しさん
垢版 |
2018/08/19(日) 12:25:59.66ID:NIMznYGz
雑談やりたけりゃ雑談のスレでやれや、ヴォケナス野郎ども
0827デフォルトの名無しさん
垢版 |
2018/08/19(日) 12:30:11.49ID:/OaADBse
>>823
違うよ。
そういうものが有ったとしたらという話。
今の開発者用ツールはWebぺージを作るためのものでスクレイピングするためのものじゃ無い。
0828デフォルトの名無しさん
垢版 |
2018/08/19(日) 12:33:51.41ID:ql2A++ig
>>823
IE専用言語があったとしてもPython使うわボケって言ってんの

> スクレイピングしたいページが有った時にその場でボタンやメニューから出来る
これに近いことが今でも開発者ツールでできるから具体例として挙げたの


文盲の相手マジ疲れる
0829デフォルトの名無しさん
垢版 |
2018/08/19(日) 12:34:55.69ID:psltJnDY
>>819
いろいろと賛同できる部分は多い。
だけど、等価演算子と代入演算子を分けたところで参照を返せないという仕様がネックになる面もある。

単に a = b して b を返すAssign関数を作って
a = b = cのつもりでAssign(a, Assign(b, c))と書くことはできるし効率上も問題ないけど、
一般に関数Funcが Function Func(ByRef b As Variant) という形をしているとき
Func(Assign(b, c)) と書くわけにはいかない。
Assign関数の返り値が大きな配列の場合は効率上の問題になる。
0830デフォルトの名無しさん
垢版 |
2018/08/19(日) 12:35:25.33ID:Qn4G0bqC
>それに大抵の言語は用途が違っていてもある程度は被ってる。
>矛盾するようだが他言語で出来ることは大抵VBAでも出来る。
>一方、VBAで出来ることが他言語で出来ない場合は結構多い。
VBAはλを始めとしてモダンな言語機能軒並み未実装なので、他の言語で当たり前のように出来ることがVBAでは出来ない

>他えば、IEが自らをスクレイピングさせるために専用言語を用意したとする。
>そうするとVBA含めて他言語は勝負にならない。
>なぜならスクレイピングする運用方法が違うから。
>どちらも使用者が取得したいデ―タを取得するプログラムが出来てると仮定してPythonと架空のIE専用言語を比較するとWebを見ていて、
>スクレイピングしたいページが有った時にその場でボタンやメニューから出来るの>と、スクレイピング用のプログラム探しを始める違い。
>この差は致命的に大きい。
APIやドライバがするべき仕事を特定の言語やアプリ専用に組み込むとかアホの極み

>まず、機能が実現出来ることが一番大事。
>次にスピード。
>プログラミングしやすいかどうかはその後。
>そしてユーザーインターフェースは一番大事な機能に含まれる。
VBAは機能の実現に手間がかかるし現実的なコストでは出来ないことも多い
VBAはスピードが遅い
VBAはプログラミングしにくい
VBAのユーザーインターフェース(スプレッド)は
・検証が貧弱
・誤操作でUIがすぐぶっ壊れる
・死ぬほど遅い
・描画領域の無駄が多くディスプレイが狭く感じる
などUXはかなり低い
0832デフォルトの名無しさん
垢版 |
2018/08/19(日) 12:46:14.41ID:/OaADBse
>>830
ほら、λとかアホなこと言い出した。
機能のことを言ってるんだ。
ユーザ一にとってはそんなもんどうでも良いだろ。

APIやドライバ?
根本的に勘違いしてるよ。

最後の部分も殆ど分かって無いな。
VBAで出来ないことは勿論ある。
でも君は殆ど挙げられないようだ。
0833デフォルトの名無しさん
垢版 |
2018/08/19(日) 12:47:27.56ID:ql2A++ig
>>831
そりゃお前の中にしか存在しないIE専用言語と全く同じことができるわけ無いだろ
ニュアンスを読み取れよめんどくせえな
0835デフォルトの名無しさん
垢版 |
2018/08/19(日) 14:14:15.64ID:sJHMEm8K
>>833
確かに。
でも、そういう言語が有るとして、そういう言語への一般的要件というのは考えられるだろう。

・IE自身のメニュー、ツールバーから実行できる。

・IEでWebぺージを見ながらデバック実行等できる。

・標準で、つまり他にインストールなり設定変更なりを必要としない。

・作ったプログラム単体の配布で別ユ―ザーの環境でも実行できる。

これらは最低限だ。
IEが専用言語を用意したとしたら上記をクリアしてくるのは当然のように推測できる。
0836デフォルトの名無しさん
垢版 |
2018/08/19(日) 14:50:00.48ID:ql2A++ig
>>835
そんな妄想機能があった上でなおPython使うって言ってんだよ
お前がすべきなのは他人にとっては分かりきっていてなお批判されるお前の考えの足りないただの妄想を
言葉を尽くして語ることじゃなくて他人の意見を読み取ることだよ
0837デフォルトの名無しさん
垢版 |
2018/08/19(日) 15:01:22.78ID:6Ul8oodw
>>835
IEはC++や.NET
Edgeはhtml/javascript
がブラウザ拡張用の言語としてそれぞれ用意されてます

あなたの妄想の世界に存在するMSという企業のようにブラウザ拡張だけに特化した新しい言語をわざわざ創造するという果てしなく無駄なことはしません
なぜなら汎用性と利便性が高く長い時間をかけてテストされてユーザーの知識も豊富な既存の言語から利用できるAPIを提供すればそれで最大の効率が得られるからです
0838デフォルトの名無しさん
垢版 |
2018/08/19(日) 15:19:18.18ID:sJHMEm8K
>>836
Pythonにゃ実現不可能。
メリットも殆ど無い。

もっとも、そんな言語が有ったとしてPythonよりもコーディングがやりにくいとか、そういう可能性はある。
ただ、それは先にも書いた通り機能よりは優先順位が低い。
0839デフォルトの名無しさん
垢版 |
2018/08/19(日) 15:22:59.59ID:Qn4G0bqC
>>835
こいつは言語とライブラリと実行環境の区別がついてないしデバッグの仕組みもしらんのだろうな
VBAばかりやってきたからプログラミングの常識が身につかなかったのだろうね
0840デフォルトの名無しさん
垢版 |
2018/08/19(日) 15:23:35.01ID:eHr6NML6
例え話も理解できない人が多くて驚く
こんな人たちが社内や部内で使うシステムやツールを作ってるんだと思うと寒気がする
0841デフォルトの名無しさん
垢版 |
2018/08/19(日) 15:24:34.78ID:sJHMEm8K
>>837
うん。
だから有ったとしての話。
結局、専用言語にゃかなわない。

不思議なのが、ここに来てる人はプログラマ視点でしかものが見れない人が多いことだな。
それと、感情的になってるのか分からんが冷静な思考が出来ない人が多いということだな。
0843デフォルトの名無しさん
垢版 |
2018/08/19(日) 15:41:12.25ID:Qn4G0bqC
>>838
実現は出来る
多くのスクリプティング言語は他の言語からインタプリタを生成するためのライブラリを提供している
例えばPythonなら https://docs.python.jp/3/extending/embedding.html が公式だ
PythonだけでなくRubyでもLuaでも同じことできるし、あまり知られていないが実は.NET CLRも他の言語からホストすることが出来る
なのでMSがやろうと思えばExcelやIE、Edgeの上でpythonだけと言わず様々な言語を動かすことが出来る

とはいえ出来るのとやるのは別の話で経営判断になる
ライトユーザーが多いからExcelにはVBAで十分だろう
だけど、いちおうアンケートとって需要があるならPythonも検討しよう
ブラウザにはJavaScriptという強力な言語の実行環境が既にあるので、あえて他の言語を動かす必要はないだろう
ましてやリスクを犯して需要の全く無い新言語を作る理由はどこにもない
といった経営判断は十分に考えられる
0845デフォルトの名無しさん
垢版 |
2018/08/19(日) 16:02:40.17ID:Qn4G0bqC
>>841
逆だね

専用言語じゃ汎用言語には勝てない
なぜならユーザーは千差万別で拡張への期待も千差万別だから
ブラウザコントロールに特化した言語では多用なニーズを満たすことは出来ない
なので利便性の高い汎用言語にブラウザコントロールのための洗練されたAPIを提供するのが正しい答え

マイクロソフトはその正解をわかってるから近年はJavaScriptへの投資が増えてる
OfficeにもJavaScriptアドインが導入された
ブラウザの拡張もCOMや.NETではなくJavaScriptが主力
VSCodeに至っては基盤そのものがElectronというnode.jsのフレームワークで拡張もJSだ
本家VSにも堂々とNode.jsの開発環境が公式ラインナップされている

今更になってExcelやブラウザでしか動かない新しい独自マイナー言語なんて作って、
ExcelやEdgeを鎖国化したら、今度こそユーザーに見放されてしまうよ
0846デフォルトの名無しさん
垢版 |
2018/08/19(日) 16:16:11.18ID:dQVlm8Bk
そのご高説をExcel VBAスレでするのが理解できないんだよな。
こんなところで誰を説得したいのか?
0847デフォルトの名無しさん
垢版 |
2018/08/19(日) 16:37:22.05ID:XZP26CyB
VBAが1番とか言ってるから違うんだよって言ってるだけ。
じゃないとこれからプログラミングを始める人に間違った情報与えることになるでしょ。
VBAなんて今から覚える必要なんて全くない言語なんだから。
0849デフォルトの名無しさん
垢版 |
2018/08/19(日) 16:44:26.20ID:dXPlBnND
VBAを利用すべきではない内容の質問にVBAを利用すべきではないよって回答してあげてるだけでしょ
質問者はVBAを使いたいのか?違うだろ問題を解決したいんだろ
0850デフォルトの名無しさん
垢版 |
2018/08/19(日) 16:48:22.16ID:XZP26CyB
>>849
全ての答えがここにある
無駄な事を簡単にするのがプログラミングの本筋なんだからさ
0851デフォルトの名無しさん
垢版 |
2018/08/19(日) 16:51:47.12ID:XZP26CyB
全く必要ないは言い過ぎました
ゴメンね
0852デフォルトの名無しさん
垢版 |
2018/08/19(日) 16:51:59.27ID:SNX0Pn61
別にVBA覚えたからといって他の知識を覚える余地がなくなるほど
脳の容量が少ないわけじゃあるまいよ
0853デフォルトの名無しさん
垢版 |
2018/08/19(日) 16:53:28.10ID:sJHMEm8K
>>843
バカには分からんようだ。
決定的に出来ないのは下記。

・標準で、つまり他にインストールなり設定変更なりを必要としない。

・作ったプログラム単体の配布で別ユ―ザーの環境でも実行できる。

PythonはWindowsに標準でインストールされてるんだっけ?
0854デフォルトの名無しさん
垢版 |
2018/08/19(日) 16:57:00.94ID:sJHMEm8K
>>845
アホだなあ。
専用言語で対応できなければPython使えば良いんだよ。

プログラマの都合じゃなく、ユーザ一の都合に立てばPythonにはどうしてもデメリットがある。
一方、専用言語では出来ないことであればPython使えば良い。

つまり、これこそが用途が違うということだ。
0855デフォルトの名無しさん
垢版 |
2018/08/19(日) 17:01:20.26ID:dXPlBnND
>>853
質問スレなのに質問者の環境を考慮せずにそんな前提をなんで置くの?

そもそもその前提がかなり独りよがりだって気づいて?


特に2つ目の単体配布にこだわる理由は本当に意味がわからない
別にファイルが2つになって具体的にどんな問題があるの?
0856デフォルトの名無しさん
垢版 |
2018/08/19(日) 17:15:34.69ID:Qn4G0bqC
>>853
わかってないバカはお前な

マイクロソフトがPythonを採用すると決定すればそれも一緒にバンドルされるか、
追加パッケージで楽々インストールできるようになるに決まってるだろ
そしてJavaScriptはもう既に標準で動作している
JavaScriptならPowerShellやC#と同じでOfficeとかいう高級ソフトの導入すら必要なく真の意味で標準で動作する

何度も言ってるがそもそもユーザー目線だと単体/複数の区別に大した意味はなく、
開発者からすれば単体ファイルでの開発は扱いにくいだけ
だがまあExcel PythonはVBAの置き換えになるだろうからブックに入れて配布って形になるだろうからファイル数は1になるだろう
そしてExcel JSはそもそもファイル配布ではなくURL指定だからユーザー目線だと受け取るファイル数は0だ
0857デフォルトの名無しさん
垢版 |
2018/08/19(日) 17:23:03.55ID:Qn4G0bqC
>>854
アホだなあ。
専用言語じゃ大事なユーザーのニーズを満たせないんだって
なので汎用言語とAPIを使って作るの
マイクロソフトは専用言語なんてバカバカしい選択肢を選んだか?
マイクロソフトは賢いからPythonやJavaScriptに投資してるぞ?
VBA信者ばかりのこのスレですらお前だけだ専用言語なんてトンチンカンなことを言ってる奴は
0858デフォルトの名無しさん
垢版 |
2018/08/19(日) 17:33:36.59ID:dQVlm8Bk
>>849
>質問者はVBAを使いたいのか?違うだろ問題を解決したいんだろ

スレタイ、読めないの?w
ここまでアホだったのかww
0859デフォルトの名無しさん
垢版 |
2018/08/19(日) 17:53:25.17ID:sJHMEm8K
>>856
バーカ。
今は採用されて無いんだよ。
そして採用されたらPython使うわ。
Python有利と思ったらな。
0860デフォルトの名無しさん
垢版 |
2018/08/19(日) 17:55:10.17ID:sJHMEm8K
>>857
ユーザーは機能が実現出来れば言語なんて何でも良いんだよ。
お前のはプログラマの独りよがり視点ここに極まれりだ。
0861デフォルトの名無しさん
垢版 |
2018/08/19(日) 17:57:30.82ID:sJHMEm8K
>>855
この前提はプログラマ視点ではなく、単にそのプログラムを利用するユーザー視点として当然のもの。

これを理解出来ない奴の方が独りよがりだよ。
0862デフォルトの名無しさん
垢版 |
2018/08/19(日) 18:00:46.85ID:sJHMEm8K
>>855
複数より単体の方が使いまわしが良いのは当然だ。
別ユ―ザーにも複数を強いるのは大きなデメリットだぞ。
0864デフォルトの名無しさん
垢版 |
2018/08/19(日) 18:10:36.42ID:dXPlBnND
DLL同梱してるフリーウェアとか全滅だな



あ、フリーウェア自由に入れられる環境なんてないとかいう明後日のリプは要らないです
0865デフォルトの名無しさん
垢版 |
2018/08/19(日) 18:14:08.69ID:sJHMEm8K
一番分かりやすいのは例えばVBAでもインターフェースがダメダメなのを受け取ったら俺が自分に合うように修正することだ。
だから、自分の環境にPythonが入って無ければ、もうそれだけでダメダメということだ。

実際には俺の個人PCにはPython入ってるが、俺が配布する場合、受け取る奴に入れることを強いたり、入ってることに期待したりはしない。

これ、VBAも同じ。
一般のexeファイルや、そのコードを配布する時にExcel入ってることが前提だなんてのはダメだな。
0866デフォルトの名無しさん
垢版 |
2018/08/19(日) 18:21:20.20ID:sJHMEm8K
>>864
そういう前提の一般のexeプログラムは良いだろ。
でも、俺は出来るだけWindows標準dllだけで何とかするという場合もある。
当然、何ともならないからインスト―ラでいろいろ入れるというのもある。
でも、exeファイル単体、インストーラ無しが有利なのは変わらん。

そして、専用言語が有った場合は、余計なものが必要無いのがデフォルトとなる。
したがって、より有利だ。
0867デフォルトの名無しさん
垢版 |
2018/08/19(日) 18:23:51.21ID:sJHMEm8K
>>864
ああ、仕事の方は正に自由に入れられないな。
有料の方が申請すれば入れられる場合もあるけどね。
0868デフォルトの名無しさん
垢版 |
2018/08/19(日) 18:28:59.59ID:NIMznYGz
>>847
>じゃないとこれからプログラミングを始める人に間違った情報与えることになるでしょ。

お前なんぞに言われなきゃならん理由なんぞねーわカス
0869デフォルトの名無しさん
垢版 |
2018/08/19(日) 18:34:36.50ID:Qn4G0bqC
ユーザーはファイル数など気にしない
OSデフォルト以外への依存性が最も少ない言語はPowerShellとC#
専用言語ではユーザーのニーズを満たせないし鎖国政策はデベロッパやユーザーの反感を買うだけ
0871デフォルトの名無しさん
垢版 |
2018/08/19(日) 18:59:54.19ID:dQVlm8Bk
>>869
ユーザーは動けば良いからVBAじゃなくても良い
ユーザーは動けば良いからファイル数が増えても良い

ユーザーは動けば良いのに専用言語は許さないの?w

1レスで矛盾するとはw
0872デフォルトの名無しさん
垢版 |
2018/08/19(日) 19:00:55.07ID:sJHMEm8K
>>869
何でデベロッパーが出てくるんだw
お前はプログラマの独りよがり視点から抜け出せない奴だな。
それにC#は違うだろw

もっともVBAでどうにもならない場面で使うのはPowerShellじゃなくてC#だがね。
0873デフォルトの名無しさん
垢版 |
2018/08/19(日) 19:05:34.72ID:sJHMEm8K
>>871
動けば良いの動けばの部分にユーザーインターフェースも入ると言ってる。
つまり、機能面に入ってる。
もっともその中では最優先ではない。

しかし他言語のメリットは機能面にすら入っていないものが多い。
そして、機能面に入ってきた時はそっちを使う。
C#を使うのはそういう時だ。
めったに無いけど。
0874デフォルトの名無しさん
垢版 |
2018/08/19(日) 19:07:47.65ID:Qn4G0bqC
>>870
世の中には数多くのファイルで構成されたアプリがそれこそ数えきれないほどあって当たり前のようにユーザーに受け入れられてる
あなたは普段から単体ファイルエクセル縛りを自らに課して厳しい修行を続けてるからそれに慣れてしまったんだろうけど他の凡人はそうじゃないからね
0875デフォルトの名無しさん
垢版 |
2018/08/19(日) 19:11:11.47ID:Qn4G0bqC
>>871
動けばいいなんて誰が言ったんだよ? お前だろ
こっちは動けばいいんじゃなくてファイルが複数でも気にしないと言ってるんだ

専用言語じゃユーザーの求めるものが作れないんだからゆるさんにきまっとるだろ
0876デフォルトの名無しさん
垢版 |
2018/08/19(日) 19:13:40.91ID:Qn4G0bqC
>>872
プラットフォームを使ってアプリやライブラリを作るのはデベロッパーだ
デベロッパーが興味を持たないとユーザーへの恩恵も激減すんだよ
なぜこんな簡単なこともわからないかね
0877デフォルトの名無しさん
垢版 |
2018/08/19(日) 19:41:50.91ID:1fRN5ZDt
複数ファイル化なんてことをやったらプログラミングの素人ばかりの事務の現場は大混乱するぞ
意識的にディレクトリやファイルの管理が出来る奴の方が少なくて、勝手にファイルをリネームしたり移動させたりする奴が多いからな
配布時にもトラブル多発するだろうし
0878デフォルトの名無しさん
垢版 |
2018/08/19(日) 19:46:56.36ID:ij9zv305
複数ファイルからなるExcelマクロやbatファイルを部内に配布してるけど誰からも文句なんて出たことないぞ
0879デフォルトの名無しさん
垢版 |
2018/08/19(日) 19:50:47.34ID:ij9zv305
まあいまいち想像しにくいけど問題がある事務所があるらしいのはわかった

結局のところ人による話でやはり単一ファイルを自明の前提とするのは筋が悪いのでは?
0881デフォルトの名無しさん
垢版 |
2018/08/19(日) 20:04:08.03ID:dQVlm8Bk
>>875
そっか、そんなことは書いてないかw

でもね、ユーザーの求めるのはExcel操作なんだよね。

作れるだろ、 VBAで。
一体、何を作ろうとしてるのよw
0882デフォルトの名無しさん
垢版 |
2018/08/19(日) 20:34:02.66ID:sJHMEm8K
>>874
それらのアプリも1ファイルならそっちが使われる。
例えば、フリーソフトなんかでアンインストールではファイル削除のみ、レジストリ、余計なファイルを削除する必要無し等とうたう場合が有るだろ。

無理して1ファイルにする必要は無い。
しかし専用言語の場合は無理して無いからな。
0885デフォルトの名無しさん
垢版 |
2018/08/19(日) 20:39:47.18ID:sJHMEm8K
バカばかりだ。
比べるべきは、ファイル数以外が全く同じなら1ファイルの方が使われるし、それが全てだということ。
VBAで組んだとかPythonで組んだとかは言語を知らないユーザーにとってはどうでも良いことだ。
0886デフォルトの名無しさん
垢版 |
2018/08/19(日) 20:46:27.14ID:dQVlm8Bk
>>876
デベロッパーが作ってるのはExcelそのもの。
それを活用するためのVBA。

それすらわからんの?w
0887デフォルトの名無しさん
垢版 |
2018/08/19(日) 20:57:48.35ID:sJHMEm8K
>>869
この人は鉄1kgと綿1kgどちらが重い?と聞かれたら鉄1kgと答えるんだろうな。

専用言語ではユーザーのニーズを満たせない等と勝手な謎理論を展開されても困るんだが。
満たせるに決まってるだろ。
バカじゃね―の?

こっちは満たせない場合は他言語使うと言ってるのに。
つまりVBA使った時点で満たせる場合なんだよ。
0890デフォルトの名無しさん
垢版 |
2018/08/19(日) 22:17:42.03ID:awjRCaqI
相変わらず煽り耐性やスルースキルゼロの
余裕のないおっさんで溢れてるな
0893デフォルトの名無しさん
垢版 |
2018/08/20(月) 07:48:10.47ID:ZF3rODgA
>>849
VBAで問題解決したいからVBA質問スレで質問してるんだろ
バカなのか?
0895デフォルトの名無しさん
垢版 |
2018/08/20(月) 09:21:32.11ID:AknDDKaZ
>>888
自分に不利な点は認めたくないような判断と願望が一緒になったような奴が多いんだな。

ftp%3A//archive.download.redhat.com/pub/redhat/linux/9/en/doc/RH-DOCS/rhl-gsg-ja-9/s1-managing-compressing-archiving.html

ファイルのグループをまとめて1つのファイルにして保存すると、バックアップや 他のディレクトリへの移動、又はコンピュータ間の移動も簡単になり便利です。

https://support.microsoft.com/ja-jp/help/14200/windows-compress-uncompress-zip-files

複数のファイルをまとめて 1 つの zip フォルダーに格納すると、ファイルを簡単に共有できます。

こんな当たり前のことが分からないのは困り者。
そもそもなんでExcelブックではzip圧縮する時に個々のファイルをそれぞれ圧縮するのではなく、1つのファイルにまとめているのかを考えれば当然のことなんだけどね。
世の中になんでアーカイブ機能が必要とされたのか分からんようじゃプログラマ失格だ。
0896デフォルトの名無しさん
垢版 |
2018/08/20(月) 12:24:44.53ID:cqJBAbO8
こんな事言うと叩かれそうだが、メールで渡した時に複数ファイルにリンクしてるとダブルクリックで開いだ時にマクロ動かないってクレームくるから単一ファイル主義になった。
zipにしてもWindowsが余計なことするせいで、展開せず開かれて無事死亡
0897デフォルトの名無しさん
垢版 |
2018/08/20(月) 12:26:22.16ID:0JZIJXAm
>>893
VBAというのがなんか凄いらしい程度の知識の質問者もこれまでにいっぱいいだだろう
まあお前にはその辺の言葉の裏まで読み取るのは難しそうだが

>>895
Excelマクロってある種ツールのようなもので、そんな頻繁にファイルの移動をする場面が思いつかないんどけど
配布するときに限ってもzipっていう素晴らしい技術があるんだからzipすればいいだろ

煽りじゃなくて聞きたいんどけど、単一ファイルで良かったっていうシュチュエーションを具体例出して教えてくれない?
0898デフォルトの名無しさん
垢版 |
2018/08/20(月) 12:43:11.11ID:9+BuUU+/
頼まれてもいないのにこんな匿名掲示板で言葉の裏を読もうとするエスパーいて草
0901デフォルトの名無しさん
垢版 |
2018/08/20(月) 17:13:42.50ID:ZF3rODgA
>>897
当たり前のことを当たり前と認められないほどくやしいんだな

VBA質問スレでVBAで答えを出してやるのは当たり前のこと
0902デフォルトの名無しさん
垢版 |
2018/08/20(月) 18:27:45.56ID:AknDDKaZ
>>897
明らかに当たり前の話だと思ってたんだが、君は違うようだから聞きたい。
zip圧縮する必要が有る場合とzip圧縮する必要が無い場合で、それ以外全く一緒の時にどっちが手間がかかるんだい?
0903デフォルトの名無しさん
垢版 |
2018/08/20(月) 18:37:13.23ID:AknDDKaZ
>>897
Excelブックを移動する場面が思いつかない?
君、働いて無いだろ。

ニートはExcel使わなくても良いんだぞ。
表計算が必要ならOpenOfficeやGoogleスプレッドシートをお勧めするよ。
0905デフォルトの名無しさん
垢版 |
2018/08/20(月) 18:54:13.60ID:0JZIJXAm
>>902
zip圧縮する場合はわざわざ単一ファイルにする必要がなくなるんだからそれ以外同じという条件が馬鹿げてる
あり得ない前提を元に妄想するの好きだなお前
0907デフォルトの名無しさん
垢版 |
2018/08/20(月) 19:01:10.79ID:AknDDKaZ
>>905
???
複数ファイルの場合はzip圧縮すれば良いと言ったのは君だろう。
単一ファイルの場合はzip圧縮する必要が無い。
で、両者の機能が同じ場合に、それを扱うのに手間がよりかかるのはどっち?
0909デフォルトの名無しさん
垢版 |
2018/08/20(月) 19:14:40.17ID:0JZIJXAm
こいつと話してると自分の日本語が不安になってくるんだがこいつが読めてないだけだよな???
0911デフォルトの名無しさん
垢版 |
2018/08/20(月) 19:38:25.58ID:0JZIJXAm
>>907
zip圧縮する場合とzip圧縮しない場合は、単一ファイルにするという制限が違うのだから、それ以外の手間が一緒になることはないよね
単一ファイルにしないほうが、作る手間は少なくなる(←ならないって言いそうだけど)

だから
> それ以外全く一緒の時
という前提は、意味がない


強いて比較するなら、
単一ファイルにこだわりzip圧縮しない手間 vs 単一ファイルにこだわらずにzip圧縮する手間
で考えるべきじゃない?


>>908
「わざわざ」が修飾してるのは「単一ファイルにする」こと
つまりここで言ってるのは、単一ファイルにする必要なんてないよねってことなんだ

どうも君は、zip圧縮する事が手間だと私が内心思っている、という解釈をしているみたいだけど
上の通り単一ファイルにする事が手間と思ってるんだ

単語をなぞるだけじゃなくて、落ち着いて日本語の文法を読み解こう
大丈夫、慣れれば難しくないさ





>>910
たすけて
0912デフォルトの名無しさん
垢版 |
2018/08/20(月) 20:05:19.78ID:AknDDKaZ
>>911
何を言ってる?
バカなの?

それ以外の手間とは言っていない。
それ以外に両者に機能的な差が無い場合と言ってる。

単ーファイル(圧縮ファイル)にする作業を必要とせず、最初から単一ファイルになっている場合と単ーファイルにする必要のある複数ファイルの場合で、作業の発生するのはどっち?

「つまりここで言ってるのは、単一ファイルにする必要なんてないよねってことなんだ」などと言いながら「配布するときに限ってもzipっていう素晴らしい技術があるんだからzipすればいいだろ」などとも言ってる。

つまりどっちなんだ?
0913デフォルトの名無しさん
垢版 |
2018/08/20(月) 20:08:59.93ID:AknDDKaZ
バカ丸出しだ。
>>895に反論するためにzip圧縮の話をしたんじゃなかったのかよ。

くだらない反論(zip圧縮の話)なんかせずに最初から>>895に反論出来ないと言えば良いのに。
0914デフォルトの名無しさん
垢版 |
2018/08/20(月) 20:17:11.55ID:AknDDKaZ
根本的に日本語に弱いようだから、分かりやすく二者択一を用意してやるよ。

1.単一ファイルの方が>>895のリンク先に書かれてる通り、取り扱いに便利だ

2.複数ファイルの場合でもzip圧縮すれば取り扱いの便利さは同じになるが、その作業の分手間がかかる。

君の意見は1と2のどっち?
0915デフォルトの名無しさん
垢版 |
2018/08/21(火) 07:55:36.68ID:NMZyPfYZ
プログラムをあちこち移動させるとかセキュリティリスクじゃん
プログラムは所定の場所に配置して呼び出すものだ
それを理解してれば単体ファイルにするメリットがほとんど無いことがわかる
0919デフォルトの名無しさん
垢版 |
2018/08/21(火) 09:20:56.55ID:QmlNWrEM
>>915
excel.exeとかのアプリケーションファイルと個々のマクロ付きファイルの区別が出来てなくて草生える
0920デフォルトの名無しさん
垢版 |
2018/08/21(火) 11:47:28.01ID:CaH5SCiT
ここが分かりません ←質問
○○ってxxxなんですか? ←質問
お前そんなことも知らないの? ←質問
バカなの? ←質問
0922デフォルトの名無しさん
垢版 |
2018/08/21(火) 19:07:20.32ID:7sEKkP0/
>>916
ないなぁ
ファイル交換は別のよりセキュアで楽な方法で行いメールは通知のみ
ビジネスの基本だと思うけど、まさかメールでエクセル送っちゃうようなガバガバな企業なの?大企業って嘘だったのか?
0923デフォルトの名無しさん
垢版 |
2018/08/21(火) 19:13:32.71ID:7sEKkP0/
まあ普通はマクロ付きブックなんて送られたら真っ先に不正アクセスを疑うわな
0924デフォルトの名無しさん
垢版 |
2018/08/21(火) 19:41:46.35ID:YkHsku6A
>>922
プッ。
そのセキュアな方法でも同じことに気付いて無かったのかな?

こういうこと言う奴が出てくると思ったw
0926デフォルトの名無しさん
垢版 |
2018/08/21(火) 19:50:15.22ID:7sEKkP0/
>>924
メールしか使ったことないタイムトラベラーさんには現代のリソース共有はちょっとイメージできないのかもしれんなあ
0927デフォルトの名無しさん
垢版 |
2018/08/21(火) 20:20:28.36ID:MMaCm1hx
>>922
ここじゃなく世の中全体でアンケート取ったら絶望的な結果だと思うよ
(日本だけかもしれんけど)
0928デフォルトの名無しさん
垢版 |
2018/08/21(火) 20:46:52.41ID:K3bJIWvH
エクセルファイル1つで片がつく学生実験やママの家計簿みたいな仕事は楽そうで羨ましい
日頃から百や千をこえるエクセルファイルを扱ってるともう物理的な事情で複数のデータとマクロを1つになんて言ってられない
0929デフォルトの名無しさん
垢版 |
2018/08/21(火) 20:56:14.57ID:YkHsku6A
>>926
バカだからまだ分かってないw
ちなみにうちの会社でも専用のセキュアでファイルをやり取りできるようなシステムがある。
それでもメールに添付する奴もいるが。
しかし俺はメールにファイルを添付するようなことはしないな。
それでも、同じことだ。
だからそんなシステムのことまで書くようなムダなことはしないだけの話。

君はおバカさんだからわざわざムダなことをするようだが。
0930デフォルトの名無しさん
垢版 |
2018/08/21(火) 21:01:39.45ID:YkHsku6A
>>928
???
そんなもんまでエクセルでやってるアホ会社の話か?
それはもうエクセルでやるような話じゃ無いだろ。

あるいは文書としてファイルが多数有っても、それぞれが全然別の文書ということなら1つ1つの文書にVBAが乗っかってる方が良いけどな。
0931デフォルトの名無しさん
垢版 |
2018/08/21(火) 21:07:35.67ID:MMaCm1hx
でも自治体はもっと酷いよ
0932デフォルトの名無しさん
垢版 |
2018/08/21(火) 21:08:16.81ID:K3bJIWvH
>>930
メールで1つのエクセルファイル交換してよろこんでるような規模の会社だと想像つかんだろうな
住んでる世界が全く違うのに分かり合うことなんてさいしょから無理だったんだよ
0933デフォルトの名無しさん
垢版 |
2018/08/21(火) 21:10:25.67ID:66Ai7LVD
毎回荒らしいるからすげー聞きづらかったんだけどいつまでもいるから今聞く教えて
javaとかc、pythonでexcelファイルの、あるシートのあるデータ利用して云々かんぬんして結果をそのexcelに上書き
て処理するとき一番楽に実装出来るのはどの言語なの
詳細だけど特に言語の指定無し 俺が使えるのがjava.c.python.powershellくらい
大抵はexcel内のデータ利用してスクレイピングとかwebapi叩くとかして情報取得してexcelに転機
実行速度も多少は気にするけどそれよりも正確さとユーザがどれだけ楽かが重要
具体的に言えば処理に15分掛かろうがユーザがマクロ実行ボタン押すだけでほか作業やっても良いなら十分許容される
0934デフォルトの名無しさん
垢版 |
2018/08/21(火) 21:24:00.50ID:MMaCm1hx
>>933
もしかしたらSQLかもしれないよ
対象のExcelシートがどんなものかによるけどね
0939デフォルトの名無しさん
垢版 |
2018/08/22(水) 00:28:46.48ID:h82tfzI1
PowerShell は複雑なものは、ダメ!

ファイル・テキスト処理なら、Ruby。
数学系のライブラリを使うなら、Python

Selenium WebDriver なら、Ruby, Python
0941デフォルトの名無しさん
垢版 |
2018/08/22(水) 01:44:22.85ID:NmStLZEH
>>932
全く反論出来て無いし、こいつも日本語に弱いようだ。
ファイル移動はメールに限らず全部アウトなことも気付か無い。

それともどうにも反論出来なくて悔しいからメールの話で憂さ晴らししてるのかな。

まあ、よく分からんが君の会社よりはデカイと思うがね。
0942デフォルトの名無しさん
垢版 |
2018/08/22(水) 02:00:58.64ID:NmStLZEH
どの言語もExcel開いた状態で動かすのに向いてない。
あとは自分の環境だけで動かすだけならどれでも良い。
他の人も動かすならPowerShellとかJavaとかかな。

どれもデータとプログラムが分離されてるのが不便なんだが、どうしてもExcelブックということを忘れる人が多いね。
まあ、VBAでも分離できるからどちらにも対応出来るけどね。
0943デフォルトの名無しさん
垢版 |
2018/08/22(水) 02:05:49.00ID:fEBzZlfO
どんな職場だよw
◯◯とかかな

みたいな疑問文が含まれていれば質問スレのレスとしてセーフという風潮
0944デフォルトの名無しさん
垢版 |
2018/08/22(水) 02:51:22.72ID:KWD34WOT
>どれもデータとプログラムが分離されてるのが不便
いや一緒になってるほうが不便だろ…
0946デフォルトの名無しさん
垢版 |
2018/08/22(水) 05:42:30.14ID:/pvGPZu6
>>942
素人はデータとマクロを一緒にしたがる
ブックとは分離したほうが再利用しやすくて良い
分離するからvbaを使う意味はない
どの言語でも開いた状態で動かすことは簡単
0947デフォルトの名無しさん
垢版 |
2018/08/22(水) 06:13:07.83ID:e5VZnZer
ホットキーでPSコンソールを開いてActiveオブジェクトや選択オブジェクトを処理するための自作コマンドを打つ
Excelとはいえマウスはできるだけさわりたくないじゃん
0948デフォルトの名無しさん
垢版 |
2018/08/22(水) 07:47:46.52ID:KkxvCEpq
誰かこのスレの雑談・議論スレ作ってくれないか?
0949デフォルトの名無しさん
垢版 |
2018/08/22(水) 08:01:39.69ID:NmStLZEH
>>946
ブックの場合は一緒の方が便利なことも多い。
Excel使ったことない奴はそんなことも気付かない。
VBAではデータとプログラムを分離することも出来る。
両方できる方が良いのは当たり前。

開いた状態から別ファイルダブルクリックなんてかっこ悪いやり方をしなきゃならんのはいかがなものか。
0950デフォルトの名無しさん
垢版 |
2018/08/22(水) 08:33:49.01ID:NmStLZEH
Excelというプログラムを真っ向否定してるバカが多いね。
データとそれを加工する部分が分離されてて、そこに人間の判断だとかが必要無いならExcelというソフト自体いらないはず。
実際、業務システムではそういうのが結構有るだろ。
人間の判断は業務システム内でやれば良いわけだ。
Excelの場合はそういうシステムを組むなどという大変なことをせずに人間の判断でいろいろできる所が良いんだぞ。
Excelが持っている機能は汎用的だからブックに結び付いていないが、データを見ながら作業をするというExcelの通常作業を考えればそのブック特有の機能はそのブックに結び付いていた方が良いことを示している。

Excelというソフトでの作業がブック開いた状態でアレコレするという、つまりセルに色をつけるとかグラフを作るとか、そういう作業はデータを見ながらやるわけでプログラムとデータが分離されてたら不便なことを証明している。

分離されてた方が良い場合ってのはデータの値があるしきい値によって自動的に分類され、それによってセルに色が付けられるなどの場合だ。
0951デフォルトの名無しさん
垢版 |
2018/08/22(水) 09:26:46.21ID:K1XMYdYS
デバグのときF8でコード1行ずつ実行できるのはいいのですが
SubやFunction呼び出しのときはわざわざ見に行かなくてよくする設定はどうしたらいいですか?
0952デフォルトの名無しさん
垢版 |
2018/08/22(水) 10:23:52.61ID:fEBzZlfO
他のプロシージャを呼び出してる行の次の行とかにブレークポイントを設定してから普通に呼び出し元のプログラムをF5で実行して、ブレークポイントで止まったところからF8でステップ実行を再開すれば良いと思う
呼び出された側のプロシージャのステップ実行をすっ飛ばせるよ
0955デフォルトの名無しさん
垢版 |
2018/08/22(水) 11:59:18.29ID:g9Ou6iy2
>>949
ユーザーはアプリを使いたいんだ
それなのにデータのロードを強要する1ファイルスタイルは最悪と言っていい
エクセル自体遅いのに起動時にデータまでロードするとか遅すぎて話にならん
0956デフォルトの名無しさん
垢版 |
2018/08/22(水) 12:01:42.56ID:g9Ou6iy2
>>950
セルに色つけたりグラフ作るのにわざわざスプレッドインターフェースを開く必要はない
色をつけたりグラフを作るコマンドを書いてそのコマンドにデータを流し込むだけ
データと分離しているからこのコマンドは何度も再利用できる
0957デフォルトの名無しさん
垢版 |
2018/08/22(水) 12:08:18.81ID:khg6W7e6
もう質問スレ消して雑談スレだけでいいよ。匿名掲示板なんていくつもあるし。
0959デフォルトの名無しさん
垢版 |
2018/08/22(水) 12:13:01.39ID:NmStLZEH
データを見ながらどうするかというのがExcelなんだね。
コマンドで流し込むなら、それ以前に表の表示閲覧全てを業務システムでやれば良いわけで、Excelなんぞというアプリの需要も存在しない。

したがってExcelなどというアプリは見たことが無いと言いたいのか?
0960デフォルトの名無しさん
垢版 |
2018/08/22(水) 12:26:13.82ID:sTWd/c17
excelは帳票出力ツールでもDBでもメモ帳ですら無い
表計算ソフトだって言いたいの
0961デフォルトの名無しさん
垢版 |
2018/08/22(水) 13:28:13.92ID:S7ILKLj9
Excel開いてデータ見ながらアレコレ弄る場合、ささっと書けたほうが便利
なのでそういう場合irb(rubyの対話実行)使ってる
書き捨てプログラムはやっぱりrubyが強い
0962デフォルトの名無しさん
垢版 |
2018/08/22(水) 14:43:36.16ID:wdTatf/S
でましたRubyヴァカ wwwwwwww
0964デフォルトの名無しさん
垢版 |
2018/08/22(水) 15:37:29.47ID:KXBQcxdn
リアルタイムプレビューは簡単に実現できるのでエクセル固有の優位性とは言えないな
そしてリアルタイムじゃなくてもデータ編集、処理編集、コマンド実行のループならエクセルの狭いウィンドウでシートとIDEを行ったり来たりよりもずっと早く作業できる
0966デフォルトの名無しさん
垢版 |
2018/08/22(水) 19:03:37.04ID:I61xiysx
スパークラインをVBAで挿入したいんだけど範囲指定のところがうまくいきません。
わかる方いたら教えてください。よろしくお願いします。

call cells(10 , h ).SparklineGroups.Add(xlSparkLine, "n5: n100")

"n5: n100" のところなのですが、 
range(worksheets(h).cells(14,5) , worksheets(h).cells(14 , G ))

のようにして ワークシートごとの数値群をスパークラインにしていきたいのですが、、、
何か良い方法を教えてください。
よろしくお願いします。
0967デフォルトの名無しさん
垢版 |
2018/08/22(水) 19:06:12.75ID:NmStLZEH
A「送った2つのファイルの内、拡張子がrbのファイルをダブルクリックしてください。
B「なんかファイルが開けませんとエラーが出るよ」
A「ん?・・・!ああ、それはRubyがインストールされて無いということですね。」
B「で、どうしたらいい?」
A「〜というぺージでダウンロードしてからPCにインストールしてください。」
B「分かった。」

しばらく後、
B「インストールしてたらさ、変な警告メッセージが表示されてさ、暫くしたらウチの会社の情シスの人がやって来て、勝手にソフトをインストールしないで下さいって怒るんだよ。で、Rubyのインストールはダメだって。」
A「そうなんですか。」
B「これさあ、どうしたら良いんだろう。もう駄目ってこと?」
A「・・・・・・。わかりましたVBAで組んで送ります。」
B「VBAってのは何だい?」
A「〜が〜で、〜というわけなんですよ。」
B「ふ〜ん。何となく分かったけど、どうして最初からそのVBAってのを送ってくれなかったんだい?」
A「・・・・・・・・・・・・」
0970デフォルトの名無しさん
垢版 |
2018/08/22(水) 19:43:28.97ID:+UDLE+c7
>>967
んでVBAを送ったらバージョン違いやビット数違いで動かないとか
ちょっとシートをいじったら壊れて動かなくなったとか
よくわからないメッセージがでてマクロの実行ができない
とかまたトラブルが発生するんだろうな
セキュリティ設定強めで情弱顧客の組み合わせではありがちなパターンだな
最初からPowerShellにしときゃなんの依存もなく確実に動いたのにくだらないことで信用を失ってもったいないなあ
0971デフォルトの名無しさん
垢版 |
2018/08/22(水) 19:46:22.95ID:jIQXHl+4
パワーシェルがバージョン間の差異まで吸収してくれると思ってるパワー系バカを探してるんだけどこの辺に来てない?
0974デフォルトの名無しさん
垢版 |
2018/08/22(水) 19:56:16.90ID:jIQXHl+4
>>972
なんだ?俺はパワー系バカを探してるんだがおまえ知ってるのか?
0975デフォルトの名無しさん
垢版 |
2018/08/22(水) 20:05:38.43ID:HvlLP3Kg
>>970
PowerShellって使ったこと無いんだけど、ユーザー定義関数とか作れるの?
え?作れないの?ゴミじゃん
0979デフォルトの名無しさん
垢版 |
2018/08/22(水) 20:21:01.59ID:HvlLP3Kg
>>977
あとユーザーフォームの代わりになるものとか、ワークシートイベントとかが拾えるのかも気になる。
この3つがスムーズに作れない限りPowerShellなんて産廃
0981デフォルトの名無しさん
垢版 |
2018/08/22(水) 20:39:10.83ID:NmStLZEH
PowerShellね。
今日、さすがにExcelとは関係ないzipの解答とできたフォルダ名の変更だからかなり久々にVBAじゃなくてPowerShellで書こうとしたさ。

v5インストール?
実行ポリシー?
VBAで良いや。
0984デフォルトの名無しさん
垢版 |
2018/08/22(水) 20:48:11.66ID:JLjJESO/
csvファイルの中身を整理整頓して別シートに並べ直すマクロを書いてるんだけどもなんか下手くそだなあと思う
具体的に下手くそな場所が言えないから改善もできない
なんかこう微妙だなあというときどうしてるの?
0990デフォルトの名無しさん
垢版 |
2018/08/22(水) 21:24:30.86ID:HvlLP3Kg
>>988
あ、ごめんユーサー定義関数って、ワークシート上で使えるユーザー定義関数のことね?
VBAなら普通に定義したらワークシート上で使えるから区別するの忘れてたわ。

で、PowerShellでfunctionで定義した関数はワークシート上で使えるの?

System.Windows.Formsってフォーム作成するところからゴリゴリコード書けってこと?しかもフル暗記しないと無理じゃない?
VBAならポチポチっとしたら10秒で作れるよね。
テキストボックスとボタン置いてちょっとした処理書くだけなら1分で出来るよね。
PowerShellでそれ出来るの?

Register-ObjectEventとか聞いたこと無いんだけど、これも暗記しないと無理だよね。
VBAならVBEで数クリックで作れるものに、どれだけ苦労すれば作れるの?
0991デフォルトの名無しさん
垢版 |
2018/08/22(水) 21:31:27.69ID:LgCz8h8z
>>987
配布前提だと実行ポリシーは面倒だわな
PowerShell -ExecutionPolicy RemoteSigned …
で逃げられるけど
0992デフォルトの名無しさん
垢版 |
2018/08/22(水) 22:46:05.33ID:e5VZnZer
>>990
フォーミュラのことなら知らない
ネイティブDLLとかJavaScriptなら定義できるみたいだがPSは無理じゃないかな

Add-Type -AssemblyName System.Windows.Forms
$f = New-Object Windows.Forms.Form
$t = New-Object Windows.Forms.TextBox
$b = New-Object Windows.Forms.Button
$p = New-Object Windows.Forms.FlowLayoutPanel
$b.Text = "Click Me!"
$b.add_Click({ Write-Host $t.Text }.GetNewClosure())
$p.Controls.Add($t)
$p.Controls.Add($b)
$f.Controls.Add($p)
$f.ShowDialog()
人によるだろうけど1分で十分作れる範囲だと思う
当然だけどコードなので再利用が簡単でどんどん生産性が上がっていく
VBE画面ポチポチでも再利用できなくはないけど面倒だよね

プログラミングはべつに暗記しなくていいと思うよ
わからなければ調べて自作ライブラリ化しておけば1行で済むようになるのがプログラムの魅力
何度もマウスをクリックしたくないというのが人情
0994デフォルトの名無しさん
垢版 |
2018/08/22(水) 23:52:09.50ID:HvlLP3Kg
>>992
フォームを作る部分で調べなければならないようでは凄くハードル高いよね。
誰でも(一度でも作った経験がある人なら)1分かからずフォーム作れるからVBAが良いのであって・・ベテランしか1分で作れないようなものはダメ
自作ライブラリ化しても、ある程度増えてきたら、何ていう名称だったかとか探さなくちゃいけないし結局、時間かかるよね。

>>993
たしかに、そもそもどうやって呼び出すんだろう。
エクセル上のボタンにハイパーリンク付けて実行する感じ?でもカレントディレクトリの・・・って指定出来たっけ。
0995デフォルトの名無しさん
垢版 |
2018/08/23(木) 00:22:02.48ID:5czy+V1T
>>994
そうか?
VBEのどこをどう操作したらどうなるんだってのすごくわかりにくいと思うけどな
.NETのコードを覚えるほうがずっと簡単だったよあっちはドキュメントも充実してるし

例えば自分がさっき書いたFlow Layoutの上にTextBoxとButtonが乗ってるサンプルだけど
初心者になった気持ちでExcel FormsでFlow Layoutってどうやってつくるんだろう? って考えて
Excel VBA Forms Flow Layoutとか検索キーにいれてググッてみたのだがコレだというのがいっこうに出てこない
検索してもすぐにはわからないならデザイナ頼りの初心者じゃなおさらこの時点で詰みだよね
0996デフォルトの名無しさん
垢版 |
2018/08/23(木) 01:13:45.31ID:CnER65fr
>>995
フローレイアウトが便利なのは分かるが、そもそもVBAで作るようなフォームでフローレイアウトが必須な場面はまず無い。
少なとも長年ExcelVBAで開発してきて可変サイズのフォームを作った経験はほぼ皆無。
普通にボタン置くだけで目的は達せられるのに、わざわざ不要な機能実装する必要はないと思う。
0998デフォルトの名無しさん
垢版 |
2018/08/23(木) 02:10:42.43ID:MddzC4G8
>>997
不要なのはフローレイアウトを使わなくても実現できるからで、自分が使ってないと言うのは実例
0999デフォルトの名無しさん
垢版 |
2018/08/23(木) 05:59:50.61ID:kThmoP0z
>>996
それ言っちゃうとVBA自体使わなくても目的を達せられるからVBAは必要ないってことになる
自分がその実例
10011001
垢版 |
Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 31日 16時間 57分 41秒
10021002
垢版 |
Over 1000Thread
5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────

会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。

▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/

▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
レス数が1000を超えています。これ以上書き込みはできません。

ニューススポーツなんでも実況