2ちゃんねる ■掲示板に戻る■ 全部 1- 最新50    

■ このスレッドは過去ログ倉庫に格納されています

Excel VBA 質問スレ Part55

1 :デフォルトの名無しさん:2018/07/22(日) 14:13:18.78 ID:/fuF+goF.net
ExcelのVBAに関する質問スレです
コード書き込みや作成依頼もOK


※前スレ
Excel VBA 質問スレ Part54
https://mevius.5ch.net/test/read.cgi/tech/1527334657/

2 :デフォルトの名無しさん:2018/07/22(日) 14:19:08.78 ID:F/x1cwuJ.net
>>1
すれ立て乙

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

↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
以下、知ったかぶりがVBAにマウントをとる長文と
VBA老害が見当外れのレスをする長文をお楽しみください

3 :デフォルトの名無しさん:2018/07/22(日) 14:22:10.86 ID:8ZEdBsEN.net
>>2
それな!
アハハハ、腹いて

4 :デフォルトの名無しさん:2018/07/22(日) 16:10:37.90 ID:/S62SzuU.net
>>2
その解説はマクラーにやらせるわ

5 :デフォルトの名無しさん:2018/07/23(月) 18:46:22.51 ID:drz7RaL2.net
クラスモジュールの正しい使い方わからん
コレクションとかディクショナリとかそれらにぶっこむ変数定義して関数かましてMEをぶっこんで行くのって使い方として正しいん?
コレクションは標準側にもったり別のクラスに持つべき?

6 :デフォルトの名無しさん:2018/07/23(月) 19:21:59.18 ID:Q2zG7cPg.net
>>5
そんな事が知りたい?
オッケー
じゃあそれもマクラーに解説させるわ

7 ::2018/07/23(月) 20:09:48.91 ID:wdqn61b0.net
別に使わなくても良いよ。
コンストラクタ引数が使えないし、オーバーロードないしで読みづらくなるだけ。

8 :デフォルトの名無しさん:2018/07/23(月) 22:37:38.24 ID:AQkTIfCC.net
oopになりきれてないんだよね
正しいかどうかは状況によるけど俺は何度も繰り返す処理を自作クラスにしておく程度かな
vbaの文字列操作は遅いから自前でjavaのstringbuilderみたいなのつくったりとか

9 :デフォルトの名無しさん:2018/07/24(火) 06:54:57.86 ID:KA6Loe2t.net
マクラーがPSスレで大暴れしたけど反応薄くてワロタwww

10 :デフォルトの名無しさん:2018/07/25(水) 12:44:56.02 ID:xnPg1Ikh.net
たしかにYahoo知恵遅れのPGカテ見てると
なぜそれをVBAでやろうとする?て質問だらけでウンザリするな

11 :デフォルトの名無しさん:2018/07/25(水) 13:42:04.43 ID:ELoTVjgZ.net
VisualStudioとか他の開発環境はダウンロードもインスコも面倒だで
慣れてる人から見れば簡単だろうけど、未経験者には敷居がかなり高い

12 :デフォルトの名無しさん:2018/07/25(水) 14:49:05.99 ID:xnPg1Ikh.net
テキストファイルのコピー/マージ/分割、Webスクレイピングもどき
に貧弱で重いコーディングしかできないVBAですか?という…
せめてPowerShellもバッチも使えよという

13 :デフォルトの名無しさん:2018/07/25(水) 15:28:26.94 ID:EptEn42e.net
>>12
死ねや

14 :デフォルトの名無しさん:2018/07/25(水) 23:29:59.75 ID:GlwT5bgj.net
意識してスクレイピングという言葉を使っていないんだろうけど、Web操作なら分かるがスクレイピングにPowerShellは向かない。

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

PowerShellからExcel起動してデータを表示するようなの作ってきたらセンスが無いの一言で終わりだね。
それにユーザーの使い勝手より自分のコードの書きやすさを優先するような奴は使えない。

15 :デフォルトの名無しさん:2018/07/25(水) 23:35:58.97 ID:GlwT5bgj.net
一緒に働いてたら、同じ動作するVBAのコードを提示して俺のが採用されるだろうな。
何でPS1とxlsxの2つのファイルを扱わなきゃならんと言われて。

16 :デフォルトの名無しさん:2018/07/25(水) 23:41:43.01 ID:UzfdtR0J.net
もうおまえら好きなの使えよwwwNGワード登録めんどくせーんだよ
ただここはExcel VBAスレだ

17 :デフォルトの名無しさん:2018/07/26(木) 00:36:25.38 ID:9WKx7EUj.net
ろくなパーサーもない、正規表現すら覚束ないVBAでスクレイピングとかマゾかよ
PowerShell以上に向いないのに

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

ほんとマクラーは何でもかんでもVBAだけでやろうとするのが好きだな
もしかしてそれしか出来ないのか?

18 :デフォルトの名無しさん:2018/07/26(木) 00:44:22.92 ID:9WKx7EUj.net
標準入力すら素直に受け取れないVBAじゃ他のツール呼び出すの難しかったね

ごめんね俺が間違ってた
全部VBAでやるのが正解だよ
それしかできないもん

19 :デフォルトの名無しさん:2018/07/26(木) 01:05:48.00 ID:LoTOwKr6.net
俺マクリスト

20 :デフォルトの名無しさん:2018/07/26(木) 01:06:28.33 ID:UMEAXP+A.net
お先マックラー

21 :デフォルトの名無しさん:2018/07/26(木) 04:09:18.23 ID:i54gzLVo.net
再び降臨 パワーシェルキチガイ

22 :デフォルトの名無しさん:2018/07/26(木) 08:14:35.04 ID:OM9s1u3H.net
>>17
>>18
それでもお前のコードは採用されない。
2ファイルになった時点で埋めようが無い差だ。
VBAで出来ないことなら別だがな。

VBAで標準入出力使うことはあまり無いなあ。
それで困ったことも無い。
そういう環境だと思うが。

23 :デフォルトの名無しさん:2018/07/26(木) 12:22:39.07 ID:ghkF5wqN.net
powershellは起動するためにもう一工程要る

24 :デフォルトの名無しさん:2018/07/26(木) 14:34:42.45 ID:dRpGxBDU.net
PSなんて使う必要ないだろ
PSこそ中途半端な機能だわ
こんなの使うくらいならVSとかのIDEで良いよね

25 :デフォルトの名無しさん:2018/07/26(木) 14:36:40.80 ID:2gS9pFwI.net
一般的な環境ならVSぐらい入ってるしな

26 :デフォルトの名無しさん:2018/07/26(木) 20:38:34.08 ID:eYfujGzi.net
vbaだと云々かんぬんはまぁ分からんでもないけどあーするといいこうしろよとか無くps勧めてくるのはありえんわ
知識そこで止まってる化石かなんかかよ

27 :デフォルトの名無しさん:2018/07/26(木) 23:24:39.34 ID:8XjexWHE.net
使いにくい言語を使い本来不要な問題を作り出す
その問題を工夫して回避することが大事なんだ
便利なツールを手軽に作りたいだけの軟弱者は別の言語を使えばいい

28 :デフォルトの名無しさん:2018/07/27(金) 00:34:59.37 ID:3FMr3f7+.net
VBAを否定するつもりはないが固執する理由もない
どの言語も向き不向きはあるしExcel周りはやっぱVBAが一番手軽で楽なんだよ

ただ行番号くらいはデフォルトで設定設けろ

29 :デフォルトの名無しさん:2018/07/27(金) 00:37:19.63 ID:Npi7GBC0.net
VBAはWindow10になってさらにクソ化した

30 :デフォルトの名無しさん:2018/07/27(金) 00:40:17.66 ID:mbQIXxf8.net
VBA質問スレなんだからVBAに固執してくれよ
逆に固執したくないならこのスレに固執するなよ

てかなんでVBA質問スレで最適言語談義が延々続いてるのかさっぱりわからない

31 :デフォルトの名無しさん:2018/07/27(金) 00:50:20.39 ID:zTP90E1i.net
それがマウンター

32 :デフォルトの名無しさん:2018/07/27(金) 02:38:29.13 ID:Aw8biuWY.net
Colloctionに入ってる要素をランダムに並べ替えたいんですが
どういうコード書けばよいですか?

33 :デフォルトの名無しさん:2018/07/27(金) 06:08:47.10 ID:zsHsTZpP.net
>>32
やりたいのはこういうこと?

Key1 → Value1
Key2 → Value2
Key3 → Value3

Key1 → Value3
Key2 → Value1
Key3 → Value2

34 :デフォルトの名無しさん:2018/07/27(金) 06:20:20.47 ID:Z7cB5M3n.net
>>28
これってVBAの言語的な優位性というかランタイムがエクセルに乗っかってるからってだけだよね
Pythonが乗っかったら急速に消え去りそう
VBAでおまんま食ってる人達は怯えてるだろうね

35 :デフォルトの名無しさん:2018/07/27(金) 07:46:13.68 ID:Aw8biuWY.net
>>33
いえこういうことです
>>32
やりたいのはこういうこと?

Key1 → Value1
Key2 → Value2
Key3 → Value3

Key3→ Value3
Key1 → Value1
Key2 → Value2

36 :デフォルトの名無しさん:2018/07/27(金) 07:53:09.32 ID:R37VLMlI.net
collectionは順番って概念がないからあまり意味ないけど。。
目的次第だけど一度配列にぶっ込んで
インデックス乱数で作ってその順でcollection作り直したら?

37 :デフォルトの名無しさん:2018/07/27(金) 08:03:27.23 ID:7rMzYIsO.net
inputboxにdefaultを設定すると選択状態になりますが、
これを選択しない状態にすることは可能でしょうか?

38 ::2018/07/27(金) 08:20:43.06 ID:VN9LlfpU.net
>>37
VBAにはinputboxは無いし、text boxにはdefaultプロパティもないんだが、一体なんの話だ?

39 :デフォルトの名無しさん:2018/07/27(金) 08:21:57.58 ID:hpcoy/E6.net
>>34
いや、あのね...
与えられた環境でどうするかって話で、そんなの当たり前だろ。
VBAも同時に使えるなら消えないだろうし、pythonに置き換わってVBAが使えないならpython覚えるだけだろ。

40 :デフォルトの名無しさん:2018/07/27(金) 08:24:28.31 ID:hpcoy/E6.net
>>35
もう1個Collection作ってランダムに入れれば良いんじゃね?

41 :デフォルトの名無しさん:2018/07/27(金) 08:50:15.62 ID:WxuEvi1L.net
VBAを.net対応にすれば良いのに

42 :デフォルトの名無しさん:2018/07/27(金) 09:41:22.77 ID:7Lss2z2K.net
>>34
VBAでおまんま食ってるPython未経験だけど
Python移行を熱烈に希望します

43 :デフォルトの名無しさん:2018/07/27(金) 09:43:45.36 ID:7Lss2z2K.net
>>41
せめてそれくらいはしてほしいよな
理想はC#AだがVB.netAでもいいわ

44 :デフォルトの名無しさん:2018/07/27(金) 12:10:40.85 ID:Aw8biuWY.net
>>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
------------------------------

45 :デフォルトの名無しさん:2018/07/27(金) 12:24:17.95 ID:9o30Opw+.net
Vbaってコレクションのランダムソートごときにすごい行数を使うんだなあ驚いた

46 :デフォルトの名無しさん:2018/07/27(金) 13:22:27.47 ID:W1pWGgrd.net
1、2、3、たくさん、すごい、って数える部族の人コンニチワ

47 :デフォルトの名無しさん:2018/07/27(金) 14:10:45.72 ID:/pOg/k3/.net
VBAのIDEには行数が書いてないから致し方ない

48 :デフォルトの名無しさん:2018/07/27(金) 17:04:08.64 ID:ferZ4IGy.net
VBAもBASICの一種だから行番号は付けられるんだけどね

Sub Foo()
10 Dim i As Integer
20 Debug.Print i
30 i = i + 1: GoTo 20
40 End Sub

49 :デフォルトの名無しさん:2018/07/27(金) 20:35:05.00 ID:7rMzYIsO.net
>>37
inputbox関数のことです
引数defaultに文字を入力した時、選択されないようにしたいのです

Sub foo()
bar = InputBox("", "", "選択されてしまう")
baz = Application.InputBox("", "", "選択されてしまう")
End Sub

50 :デフォルトの名無しさん:2018/07/27(金) 22:41:24.03 ID:R37VLMlI.net
選択されてしまうって、文字が?
inputboxの仕様だから難しいね

vbsだけど
https://stackoverflow.com/questions/28989351/vbscript-inputbox-unselect-the-text

51 :デフォルトの名無しさん:2018/07/27(金) 23:09:03.86 ID:7rMzYIsO.net
>>50
そうです、文字が選択されてしまいます
フォームでも作るしかないみたいですね
ただ、右キーで選択解除できるのは大きな収穫でした(endキー使っていました)
ありがとうございました

52 :デフォルトの名無しさん:2018/07/28(土) 00:48:56.31 ID:kTSYe+MH.net
おれはテキストボックスにフォーカスが当たったらテキストが選択されてない方が嫌だけどな
ダイアログボックスのUIに対するガイドラインみたいなのなかったかな

53 :デフォルトの名無しさん:2018/07/28(土) 01:05:32.09 ID:YviSsm89.net
おまえがどうかなんて聞いてない

54 :デフォルトの名無しさん:2018/07/28(土) 01:21:56.22 ID:kTSYe+MH.net
また偏った知識で変なUIがVBによって作られてしまうのかと思うと忍びなくてな

55 :デフォルトの名無しさん:2018/07/28(土) 05:02:40.84 ID:DudWgeWo.net
>>48
Integerオーバーフローまで無限ループw

56 :デフォルトの名無しさん:2018/07/28(土) 06:27:05.92 ID:Q0sE5Usk.net
16bitだからすぐにオーバーフローするけどね

57 :デフォルトの名無しさん:2018/07/28(土) 07:31:07.15 ID:rUA3L/4N.net
クラスインスタンスをJSONにシリアライズしたいのですがどうすればいいでしょうか
クラスの種類が1000種類ぐらいあるので個別に作ると工数が足りません

58 :デフォルトの名無しさん:2018/07/28(土) 07:32:26.75 ID:LmAaizbn.net
それVBAでやるの??

59 :デフォルトの名無しさん:2018/07/28(土) 07:44:25.29 ID:rUA3L/4N.net
>>58
そうです
エクセルVBAの使用以外の開発は全て禁止されています

60 :デフォルトの名無しさん:2018/07/28(土) 07:51:40.54 ID:Q0sE5Usk.net
VBAでクラスを1,000種類?
バカなのかネタなのかはっきりしてくれ w

61 :デフォルトの名無しさん:2018/07/28(土) 07:57:28.10 ID:rUA3L/4N.net
>>60
要件を満たすには必要なのです

62 :デフォルトの名無しさん:2018/07/28(土) 08:35:55.74 ID:RecypDDO.net
ならバカ決定

63 :デフォルトの名無しさん:2018/07/28(土) 08:37:47.02 ID:Q0sE5Usk.net
ならお前の工数見積もりのミスだな
おとなしく謝って人員投入してもらえ

64 :デフォルトの名無しさん:2018/07/28(土) 09:15:35.74 ID:rUA3L/4N.net
そこをなんとか
バカは承知なのですが他の選択肢は禁止されているんです
工夫でどうにかなりませんかね?

65 :デフォルトの名無しさん:2018/07/28(土) 09:59:39.84 ID:mUQBcLm1.net
出来ませんって言えば?
実際出来ないんだし
正直に言えば済むだろ

66 :デフォルトの名無しさん:2018/07/28(土) 10:13:43.19 ID:rUA3L/4N.net
こんな簡単なことがVBAではできないのでしょうか?

67 :デフォルトの名無しさん:2018/07/28(土) 10:15:03.35 ID:LmAaizbn.net
出来る出来ないじゃなく
出来るけど工数がかかるだけだろ…馬鹿か?

68 :デフォルトの名無しさん:2018/07/28(土) 10:21:59.57 ID:rUA3L/4N.net
>>67
もしできるなら工数はほとんどかかりませんよ
できないから工数がかかって大変なのでなんとか工夫してできませんか?という話をしてます
人にバカという前に自分の理解力の程度を自覚したほうが良いのでは?

69 :デフォルトの名無しさん:2018/07/28(土) 10:30:26.33 ID:fRhkCVmt.net
apiでメッセ送れば未選択状態に出来なかったかな?

70 :デフォルトの名無しさん:2018/07/28(土) 10:45:40.00 ID:LmAaizbn.net
クラス定義はテキストだし、JSONもテキストだし、変換しようと思えばできるじゃない
まさかそこの手法レベルで悩んでたの?
クラス定義が1000種類もあり、変換定義を書く工数が足りないって話だとばかり思っていたよ…

71 :デフォルトの名無しさん:2018/07/28(土) 10:48:20.08 ID:a+XCE/dC.net
何の禅問答だよ

72 :デフォルトの名無しさん:2018/07/28(土) 11:18:14.54 ID:bzfoDHBV.net
クラスのソースからコンバータ自動生成するプログラム作れば解決
つかクラス1000個とか、VBAに向いてないのを差し引いても、どう考えても設計間違ってるわ

73 :デフォルトの名無しさん:2018/07/28(土) 12:09:18.04 ID:IX5bbTr/.net
VBAではJSONシリアライズのようなちょっとした処理のためにVBAパーサーを書かなければならないんですか?
他の言語だと基本ライブラリを使って1行で出来る処理なのでにわかには信じられません

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

>>72
小さいオフィスの事務作業ではどうか知りませんが1000クラスは業務システムでは少ない方ですよ
1つのシステムでプロジェクト(機能)が100以上、それぞれのプロジェクトに画面がいくつか、クラスが10〜、なんてことは別に珍しくもないです

74 :デフォルトの名無しさん:2018/07/28(土) 12:11:55.65 ID:LmAaizbn.net
しゃあないやん、VBAてそうなんだもん

75 :デフォルトの名無しさん:2018/07/28(土) 12:12:24.12 ID:ZzrKjuqy.net
見積甘かったのを言語のせいにされても

76 :デフォルトの名無しさん:2018/07/28(土) 12:17:55.21 ID:IX5bbTr/.net
VBAはRuby、Python、.NETと比較されるほどの優れた高級言語なので
他の言語で当たり前のようにできることがまさか出来ないとは思いませんでした
こんなことで見積もりを誤ったなんてまるで交通事故にでもあったような気分です

77 :デフォルトの名無しさん:2018/07/28(土) 12:28:41.80 ID:V98tNPxX.net
使った事ないけどリフレクションぐらいあるに決まってんだろwww
それ使えば簡単に実装できるわ

78 :デフォルトの名無しさん:2018/07/28(土) 12:39:19.60 ID:ZzrKjuqy.net
上司だかお客だかにそう説明すりゃええやん

79 :デフォルトの名無しさん:2018/07/28(土) 12:39:27.77 ID:V98tNPxX.net
オブジェクトブラウザにクラス一覧やメソッド一覧が表示される
という事はメタデータの取得方法が存在するって事だ
詳しい方法はいつもの達人VBAerが教えてくれるだろう

80 :デフォルトの名無しさん:2018/07/28(土) 12:43:27.54 ID:+RGOdKJa.net
>>76
>他の言語で当たり前のようにできることがまさか出来ないとは思いませんでした
>こんなことで見積もりを誤ったなんてまるで交通事故にでもあったような気分です

ただの無能じゃん。部下がこんなしょぼいミスしたらブチ切れるわ

81 :デフォルトの名無しさん:2018/07/28(土) 12:47:45.60 ID:LmAaizbn.net
> VBAはRuby、Python、.NETと比較されるほどの優れた高級言語なので

その認識からしておかしい、ネタだろ?w

82 :デフォルトの名無しさん:2018/07/28(土) 13:06:03.00 ID:mUQBcLm1.net
>>66
実際、貴方が出来ないんだから僕には無理でした
って言えば?って事ですよ
カッコ付けて安請け合いするから変な事になる

83 :デフォルトの名無しさん:2018/07/28(土) 13:19:57.21 ID:HiD8uqsQ.net
皮肉質問にまじめに取り合うのはギャグなのか?

84 :デフォルトの名無しさん:2018/07/28(土) 14:11:14.29 ID:bzfoDHBV.net
>>79
あれは定義が見れるだけで
実際のインスタンスから値が取れることにはならん

>>80
俺ならVBAに対する理解がこの程度の部下に
1000を超えるクラスが必要な規模のVBA案件見積させた上司にもブチ切れるわw

85 :デフォルトの名無しさん:2018/07/28(土) 14:21:37.86 ID:HsLGqaOr.net
>>57
そpれっぽいものはあるよ
jsに投げてjsからもらう
http://outofmem.tumblr.com/post/63355773212/vbavba%E3%81%A7json%E3%82%92%E3%83%91%E3%83%BC%E3%82%B9%E3%81%99%E3%82%8B
ぱーっとよんだけどすげーめんどくさそうだった
まぁ0から作るよりかはなんぼかマシ

がんば〜

86 :デフォルトの名無しさん:2018/07/28(土) 14:49:36.36 ID:LmAaizbn.net
>>85
それJSONをVBAで解析するやり方で、
クラスをJSONに出力する方法じゃないから

87 :デフォルトの名無しさん:2018/07/28(土) 14:57:08.90 ID:LmAaizbn.net
「つづき」の方は一応シリアライズだけど

88 :デフォルトの名無しさん:2018/07/28(土) 17:16:54.38 ID:HsLGqaOr.net
>>86-87
あぁごめん、その続きの方貼ったつもりだったけど前のページ貼ってた
検証する気も起きないけど、ちょっとでも役に立てば

89 :デフォルトの名無しさん:2018/07/29(日) 14:59:24.56 ID:ZjGxu4jc.net
バカは適材適所を知らないという見本のような質問だな。

俺の職場にバカがいなくて良かった。

90 :デフォルトの名無しさん:2018/07/29(日) 18:03:41.01 ID:3KthijbH.net
>>89
でもお前無職じゃん

91 :デフォルトの名無しさん:2018/07/30(月) 20:07:26.47 ID:L4iRteYk.net
シートからデータを抜き出して重複しないリストを作ろうとしています。
For
If Cells(i+1,1) = .List(i) then
中略
Next
で重複の判定をさせているのですが、エラーが出ます。
InStrで判定させると期待通りに動きます。
検索しているのは数字なのですが、エラーの原因がわかりません。
挙動としては問題ないので、ひとまず満足はしているのですが、もし原因エスパーして頂けるようなら教えてください。

92 :デフォルトの名無しさん:2018/07/30(月) 20:33:15.09 ID:d+TLGZef.net
このスレの質問らしいw
エラーが出てるってだけでどんなエラーがどこで出てるのか言わない www

93 :91:2018/07/30(月) 20:40:42.50 ID:L4iRteYk.net
>>91
今確認し直したらエラーが出ているのではなく、重複の判定ができていませんでした。
デバッグで変数を追っていましたが、表面上は同じ数字が入っているように見えるのですがifの中身を読みに行ってくれません。
例えば100〜110の数字を重複なしでリスト化したいのですが、
100
100
101…
といった表示になってしまいます。
質問の仕方もわからないような有様で申し訳ありませんが、よろしくお願いします。

94 :デフォルトの名無しさん:2018/07/30(月) 21:22:34.72 ID:bLz+Q6Zv.net
>>91
重複なしのリストは、フィルタをうまく使えば一瞬でできるぞ


あと色々とめんどくさいから
・どういうリストを
・どうしたい
を書いてくれ
コードを書くから、それとどう違うかを照らし合わせると良い

95 :デフォルトの名無しさん:2018/07/30(月) 21:27:58.45 ID:MdDdO1Hd.net
まず質問する前にちゃんとデバッグしようぜ。。

96 :デフォルトの名無しさん:2018/07/30(月) 21:33:24.66 ID:mAgRmfNY.net
>>91
>検索しているのは数字なのですが
まずこれがあやしい
エクセルは表示されてる物と実際の値は違うぞ

そもそもそのコードで重複除去できると思えんけどな
1重ループで重複除去できるアルゴリズムあるなら教えて欲しいわ

97 :91:2018/07/30(月) 22:26:44.11 ID:L4iRteYk.net
>>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の中に入ってもらえなかったのでどうなっているのかもわかりませんでした。

98 :デフォルトの名無しさん:2018/07/30(月) 22:28:08.17 ID:lLAVt4bp.net
Dim d As New Dictionary(Of String, MyClass)

なぜかエラーが出るのですがなぜでしょうか???

99 :デフォルトの名無しさん:2018/07/31(火) 06:55:09.36 ID:hnMeVpcj.net
>>97
vba リストボックス 重複除去
辺りで検索すれば山程出てくるよ

100 :デフォルトの名無しさん:2018/07/31(火) 07:13:22.38 ID:hnMeVpcj.net
>>98
エラーの内容は書こう

多分参照設定してない
http://itref.fc2web.com/vb/vba/dictionary.html

101 :デフォルトの名無しさん:2018/07/31(火) 07:15:42.13 ID:viAsjoyM.net
やはりVBAばかりやるとプログラミングの基礎がおろそかになるね
見た目を意識したスプレッドシートをそのままデータとして使う、といった発想は基礎ができてないVBAer特有の現象
Excel VBAは入門用と宣伝されることが少なくないが、正直、特殊な環境だから初心者は避けたほうがいい

102 :デフォルトの名無しさん:2018/07/31(火) 07:18:36.03 ID:9D920yGd.net
と、VBA利権にたかるウジ虫がほざいてます

103 :デフォルトの名無しさん:2018/07/31(火) 07:21:50.77 ID:hnMeVpcj.net
>>101
誰もvbaでプログラミングの基礎なんて覚えないでしょ
よっぽどで無い限りフレームワークは無料

vb6以前なら仕方ないけどね、あの頃は色々と有料だった

104 :デフォルトの名無しさん:2018/07/31(火) 07:22:29.70 ID:R/dSWHzC.net
VBAerて…また新語作りやがったな

105 :デフォルトの名無しさん:2018/07/31(火) 08:10:41.76 ID:QKgssm6F.net
どの言語でも言えることをさもVBAでのみ起こるかのように言うw

CだろうがPythonだろうが誰かが頓珍漢なことをした時に言えば良いんだから

106 :デフォルトの名無しさん:2018/07/31(火) 08:25:14.43 ID:JoTrRiyA.net
星持ちは荒らしてばっかりか

107 :デフォルトの名無しさん:2018/07/31(火) 08:26:46.09 ID:7/S9zeio.net
専ブラJune使ってるんだけど何の設定もしてないのにあぼーんされてるのってなんで?
デフォでNGワード登録されてる単語あるの?

108 :デフォルトの名無しさん:2018/07/31(火) 08:46:49.23 ID:CQebd+HR.net
>>107
> デフォでNGワード登録されてる単語あるの?
当然ある。 このスレで確認できる

NGワード絞り込みスレッド★117
https://agree.5ch.net/test/read.cgi/mango/1532726276/

最後に「This is Original」と出ればOK
「Rock54ed.」とでればNGワードが含まれている

109 :デフォルトの名無しさん:2018/07/31(火) 16:04:06.73 ID:v6ZYNw/G.net
レベルが低いから質問しに来てるのに
質問者のレベルが低いとあざ笑うだけの書き込みしに来る人ってのは
やっぱりVBAプロなんでしょうか

110 :デフォルトの名無しさん:2018/07/31(火) 16:07:23.76 ID:+P8Kb7lC.net
>>109
え?質問をする理由はレベルが低いから「だけ」だと思ってるの?馬鹿なの?

111 :デフォルトの名無しさん:2018/07/31(火) 19:23:40.75 ID:9D920yGd.net
>>110
答えになってない!

112 :デフォルトの名無しさん:2018/07/31(火) 21:26:26.03 ID:viAsjoyM.net
セル関数だけで今開かれているWorkbookのWorksheetの一覧を作れるかい?

113 :デフォルトの名無しさん:2018/07/31(火) 21:29:34.12 ID:hnMeVpcj.net
>>109
質問内容を変に隠すのが嫌われてるだけだよ
あと、わかったフリ

114 :デフォルトの名無しさん:2018/07/31(火) 21:29:56.81 ID:hnMeVpcj.net
>>112
セル関数って何?

115 :デフォルトの名無しさん:2018/07/31(火) 21:53:17.28 ID:viAsjoyM.net
>>114
=aaa()みたいにセルに関数入力するやつ

116 :デフォルトの名無しさん:2018/07/31(火) 22:34:16.53 ID:HEdj3l67.net
>>112
できるっちゃできるし、現にSheet1をメニューのように使って
Sheet追加したりも可能 それはすぐにメニューに反映されるし
文字で説明するよか現物Upした方が早いだろうから あした

117 :デフォルトの名無しさん:2018/07/31(火) 22:37:03.15 ID:hnMeVpcj.net
これ?
https://www.tipsfound.com/excel/01306

118 :デフォルトの名無しさん:2018/08/01(水) 18:45:11.44 ID:/7P6ICDY.net
質問です
画像みたいにSheet2の氏名と県名から数値を検索してSheet1の黄色セルを埋めることは関数でできますか?
https://i.imgur.com/VtolpQf.jpg

119 :デフォルトの名無しさん:2018/08/01(水) 19:29:44.50 ID:bLi+fVsi.net
できる。

120 :118:2018/08/01(水) 19:37:48.99 ID:CrgSL/Mw.net
>>119
アホ。
やり方を聞いておるんじゃ。

121 :デフォルトの名無しさん:2018/08/01(水) 20:05:31.66 ID:KK2iEEgZ.net
「できますか?」としか聞いていないだろ

122 :デフォルトの名無しさん:2018/08/01(水) 20:09:04.73 ID:SDXNPz2D.net
お金を頂きます

123 :デフォルトの名無しさん:2018/08/01(水) 20:47:02.77 ID:Cx2XTKqG.net
あの説明じゃ何したいんだかさっぱり判らんけど出来るかってんなら出来るんだろうなぁ w

124 :デフォルトの名無しさん:2018/08/01(水) 20:49:54.52 ID:atM50NE9.net
>>121
日本語に不慣れな外人ならその言い訳は通用かもだね
(普通の常識というか社会経験があれば、外人であっても通用しないと思うけど)

125 :デフォルトの名無しさん:2018/08/01(水) 20:58:32.29 ID:ADJFw6Sc.net
( )の中が長すぎる

126 :デフォルトの名無しさん:2018/08/01(水) 21:01:06.09 ID:sbkooZWR.net
>>118
vlookup キー 2つ
とかで検索するといい

ただ、普通に作業列作ったほうが良い

127 :デフォルトの名無しさん:2018/08/01(水) 21:14:43.63 ID:dwiwmIsf.net
つーかVBAスレで関数とはどういうことよ
WorksheetFunction?

128 :デフォルトの名無しさん:2018/08/01(水) 21:16:08.42 ID:htMziwx3.net
pivotじゃだめなのん?

129 :デフォルトの名無しさん:2018/08/01(水) 21:56:40.95 ID:714hG0Tb.net
>>121
文は文脈に関係なく不変の意味を持つという形式意味論の立場ですね

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

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

それでは問題です

最初にりんごが3個あります、あと2個りんごを買ったらいくつになるでしょう?

130 :デフォルトの名無しさん:2018/08/01(水) 23:19:06.30 ID:sbkooZWR.net
>>129
スレチなんでそろそろ帰って

131 :デフォルトの名無しさん:2018/08/01(水) 23:56:36.26 ID:sS7kLAAW.net
>>129
お前みたいな馬鹿が質問するとおかしくなる
馬鹿なら何をしてもいいわけじゃない

132 :デフォルトの名無しさん:2018/08/02(木) 07:19:05.05 ID:M9+gUzRN.net
>>131
文脈を理解してないあなたの方が馬鹿です
死んでどうぞ

133 :デフォルトの名無しさん:2018/08/02(木) 07:19:41.69 ID:M9+gUzRN.net
>>130
ただいま

134 :デフォルトの名無しさん:2018/08/02(木) 08:12:15.27 ID:2BgkbQH+.net
こうして回答も得られず、何も叶わず、¥無駄な人生を歩むのでした

135 :デフォルトの名無しさん:2018/08/02(木) 10:09:33.51 ID:kHzgrEZ3.net
>>118
の者です
なんだかお騒がせしてしまってすいません
Sheet2の別の列に検索キーとして氏名と県名の結合文字列を作ってvlookupで参照するようにしました
もっとスマートなやり方があれば一番良いのですが…

136 :デフォルトの名無しさん:2018/08/02(木) 19:14:12.00 ID:dYoMhZad.net
>>135
sheet1のデータの持ち方がはっきりしないとむずかしいかも
各人名でどれか1つの値しか持たないなら最初の表から簡単にできる

137 :デフォルトの名無しさん:2018/08/02(木) 21:04:52.53 ID:TLBzkUIv.net
複数シートのデータを3次元配列に格納する効率の良いコードを組みたいんだけど、
サンプルコードをお願いできない?

条件
・三次元配列は(シートのインデックス番号,行,列)を想定
・対象のシートはインデックスの二番目から最後までで、現状5シートだが10シート程度まで増える見込み
・一枚のシート内におけるデータ数は、列数は30程度で固定、行数はシート毎に可変で現状は100程度だが1000程度まで増える見込み

138 :デフォルトの名無しさん:2018/08/02(木) 21:39:08.04 ID:2BgkbQH+.net
>>137
行、列、シートで三次元になってるから、
sheets(1).cells(2,3)
みたいに配列にいれずそのまま扱うのは駄目なの?

効率がいいかどうかは知らんけど、
二次元配列ならセルを直接保折り込めばok
これをシートの数だけ回せば瞬殺
Sub foo()
a = Range("a1:b2")
End Sub

139 :デフォルトの名無しさん:2018/08/02(木) 22:04:18.70 ID:rqIgowuq.net
>>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のとこは適当に書き換えてね

140 ::2018/08/02(木) 23:16:22.80 ID:XQFP0WAE.net
>>139
こういう感じになるから三次元配列に複数シートのデータを入れようと考えること自体が無駄。
素直に二次元配列をdictionaryにシート名つけて打っ込むのが一番効率的かと。

141 :デフォルトの名無しさん:2018/08/02(木) 23:18:46.98 ID:2BgkbQH+.net
>>140
綺麗

142 :デフォルトの名無しさん:2018/08/03(金) 00:40:38.97 ID:A1FDqy6b.net
>>139
こういう馬鹿はすぐにクビ

143 :デフォルトの名無しさん:2018/08/03(金) 05:28:19.46 ID:wa60SFcl.net
ユーザ定義型に対してforeach的なことってできないの?
Dictionaryやcollectionじゃないとだめかね

144 :デフォルトの名無しさん:2018/08/03(金) 08:10:11.78 ID:FdAoJ/Ly.net
>>143
クラスにすればええやん。

145 :デフォルトの名無しさん:2018/08/03(金) 10:48:59.11 ID:efvhV3fR.net
VBAで多態性(ポリフォーリズム)が実現できることを発見した。
ただし親オブジェクトはObjectクラスのみ。
これ以外に方法ないよね?

あとどうしてもコンストラクタを実現したいけど方法ある?
Class_Initializeのブロシージャは使えるんだけど引数が取れないという致命的な欠陥がある。

146 :デフォルトの名無しさん:2018/08/03(金) 10:49:43.01 ID:efvhV3fR.net
ポリモーフィズム

147 :デフォルトの名無しさん:2018/08/03(金) 11:24:42.37 ID:WNWnteXi.net
>>145
ないんじゃないの
諦めて初期化メソッド作ってそれを利用してるわ、面倒だけど

あー早く.NET化かPythonにならないかなあ

148 :デフォルトの名無しさん:2018/08/03(金) 12:10:29.95 ID:7xkrIrco.net
>>145
オブジェクトをNEWして初期化メソッドを呼ぶ
でオブジェクトを返す関数を作るぐらいしか回避策が思いつかない

149 :デフォルトの名無しさん:2018/08/03(金) 18:29:30.81 ID:Jes/PhJV.net
>>148
みんなそうしてると思う。
定番でしょ。

150 :デフォルトの名無しさん:2018/08/03(金) 19:49:24.72 ID:GOZ9L8DI.net
>>145
VBAはインターフェースを定義できたりするよ
オブジェクトの生成はオブジェクト指向らしくファクトリクラス作るとか

151 :デフォルトの名無しさん:2018/08/03(金) 20:07:46.13 ID:EY4tsGwx.net
VBAは手軽だって言ってた人いたけど上のような事をするならVBAでする必要ある?
VBAでするには面倒だよね

152 :デフォルトの名無しさん:2018/08/03(金) 20:18:21.80 ID:V7pxWvhe.net
そうだねPowerShellなら(ry

153 :デフォルトの名無しさん:2018/08/03(金) 20:21:52.83 ID:Jes/PhJV.net
インターフェースを定義するか、そこまではしなくても良いかと考えるかだな。
どっちもあり有り得るけど、大きなプログラムなら定義して小さなプログラムなら定義しないって感じ。
でも、クラス作るべきって思うこともそんなに多くない。

VBAでするのは面倒とか感じることは無いな。
VBAでクラス作るのにピッタリな時は作って得られる恩恵が多いから感じないし、ピッタリな時は少ないから普段は無理して作らん。

154 :デフォルトの名無しさん:2018/08/03(金) 20:36:12.66 ID:P22i9c3x.net
VBAでクラス設計ってなんかうさんくさい感じがして使わないんだけどC#みたいな感覚で設計出来るの?

155 :デフォルトの名無しさん:2018/08/03(金) 20:54:03.97 ID:TQSHsawm.net
>>145>>149
一体エクセルで何を作っているんだ?

156 :デフォルトの名無しさん:2018/08/03(金) 20:55:51.99 ID:EY4tsGwx.net
気になる
何作ってるの?

157 :デフォルトの名無しさん:2018/08/03(金) 22:16:03.36 ID:19fg4Hec.net
ひと昔前ならともかく今はいろんなツールが無料だからねぇ
excelはさくっと一覧表やグラフを作るときにしか使ってないや
ちょっとした作業が1週間くらいの見積もりで入ったけど、Redmine立てるのめんどくせーな、
一人作業だしタスク100以下ならエクセル一覧表で管理すりゃ、まあいーかポチポチー、みたいな感じ
こうなるともうVBAは大した役にはたたんのだな
プログラム書くほどの込み入った仕事なら、別の手段で楽に、収穫を大きくしようかってなる

何でも揃ってるこの時代に、あえてVBAを主力で使ってる人たちが、
普段Excelでどんな仕事してるのか興味ある

158 :デフォルトの名無しさん:2018/08/03(金) 22:24:24.13 ID:GOZ9L8DI.net
Excelより優れた表計算ソフトはいまだにないからのお

159 :デフォルトの名無しさん:2018/08/03(金) 22:44:29.83 ID:qP1+Mw6P.net
知らないだけかもよ

160 :デフォルトの名無しさん:2018/08/03(金) 22:51:02.21 ID:TQSHsawm.net
例えあったとしても、デファクトスタンダードという地位はもう揺るぎないものだろう

161 :デフォルトの名無しさん:2018/08/03(金) 23:02:27.33 ID:IVrK95Nj.net
ハンバーガーとコカコーラは世界で一番売れてるから一番優秀な食品だとかいう話を思い出した

162 :デフォルトの名無しさん:2018/08/03(金) 23:05:21.62 ID:19fg4Hec.net
バーガーとコーラだけじゃあっという間に病気だよ

163 :デフォルトの名無しさん:2018/08/03(金) 23:50:22.61 ID:19fg4Hec.net
相変わらず具体例でねえなぁこのスレ
お前らほんとにVBA使ってんのか?www

164 :デフォルトの名無しさん:2018/08/04(土) 00:14:17.09 ID:HKzLzVCj.net
>>155
何作るってエクセル単独で何かするか
Accessに繋いでなんかするかぐらいだけど
Accessに繋ぐならクラス使った方がキレイにまとまるからクラス使うよ

165 :デフォルトの名無しさん:2018/08/04(土) 07:34:19.25 ID:h4pZIq0i.net
>>164
接続部分だけクラスにまとめるって感じ?
それならまぁ、わからんでもないけど・・・うーん

166 :デフォルトの名無しさん:2018/08/04(土) 08:36:12.58 ID:hMaWSw1n.net
エクセルは簡単な関数までで出来ることに使う
定期で使ってコードを書くような事ならC#でWinアプリかWebアプリにする
そんな使い分けです

167 :デフォルトの名無しさん:2018/08/04(土) 08:59:40.72 ID:Pz55ajO/.net
ある文字が文字配列の要素の中に存在するかどうかを調べるには
for i = 0 to Ubound(配列)〜のようにして
添え字を使ったループで一個ずつ比較するしかないですかね?
Pythonなどのように、 値 in 配列 とかで一発で判定できると楽なのだが

168 :デフォルトの名無しさん:2018/08/04(土) 09:27:21.51 ID:iY2bfIdC.net
for eachあるよ

169 :デフォルトの名無しさん:2018/08/04(土) 14:03:53.24 ID:d9q3+5Xm.net
Worksheet Functionのmatchなら一発でしょ、インデックスはわからんけど
filter関数のほうが早いんだっけ?
てか職場の老害が作るコードがいちいちforでぶん回すコード書いててイライラ

170 :デフォルトの名無しさん:2018/08/04(土) 14:10:44.90 ID:AEBP847j.net
filterやmatchも中でforでぶん回してるよ

171 :デフォルトの名無しさん:2018/08/04(土) 14:20:20.63 ID:vm6Y2AFh.net
パフォーマンス無視でコードをシンプルにしたいだけなら Instr(Join( ))

172 :デフォルトの名無しさん:2018/08/04(土) 14:50:32.42 ID:MinsDCPQ.net
>>164
自分はAccessに繋ぐ所はクラス作らないからどんな所が上手くまとまると思うのか知りたいな。

自分はマ―クシートの管理と実際の用紙との比較をしやすいように管理上の結果(Excelシート)をForm上の用紙レイアウトに再現するようなプログラムでクラスを使ったのが良かった。
用紙上に配置するのはImageコントロールを使ったラジオボタンのようなものとテキストボックス、ラべル、他でユーザーが使う用紙にあわせて好きな位置に配置出来る編集モ―ドと配置後にデ―タにあわせてチェック状態を表示編集できる運用モードを持ったもの。
種類の違う可変個数のコントロールを同じように扱うのに便利。

173 :デフォルトの名無しさん:2018/08/04(土) 15:05:27.11 ID:iY2bfIdC.net
>>172
普通に接続して切断する処理はクラス使った方がキレイにまとまるよ
ファイル処理も同じ。

174 :デフォルトの名無しさん:2018/08/04(土) 15:43:02.15 ID:rFYImZyl.net
質問なのだが、エクセル関数とvba の使い分ける基準ってどうしてる?

175 :デフォルトの名無しさん:2018/08/04(土) 16:55:00.51 ID:K8sTmQ88.net
>>174
シート上で使うとき?
なければ作る。

コード上で使うとき?
簡潔に書けるほう、またはパフォーマンスのいい方。
>>174

176 :デフォルトの名無しさん:2018/08/04(土) 17:18:02.49 ID:/poCSM2A.net
>>167
文字配列ってなに?
Stringのことですか?

177 :デフォルトの名無しさん:2018/08/04(土) 17:43:58.28 ID:Pz55ajO/.net
>>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

178 :デフォルトの名無しさん:2018/08/04(土) 17:49:50.34 ID:rFYImZyl.net
シート上で使うとき!

179 :デフォルトの名無しさん:2018/08/04(土) 17:51:01.98 ID:/poCSM2A.net
>>177
ループで検索する、でいいじゃないですか。
一致(=)だけじゃなく Like での合致とかも選べるように汎用化しとくとなおよい

180 :デフォルトの名無しさん:2018/08/04(土) 19:29:54.74 ID:h4pZIq0i.net
>>174
重い時やミスしそうな処理が絡む時はvba
もちろん関数で実現できない時もvba

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

まぁ基本的には関数だな

181 :デフォルトの名無しさん:2018/08/04(土) 19:58:42.71 ID:FI6ie7QF.net
>>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

182 :デフォルトの名無しさん:2018/08/04(土) 20:00:16.54 ID:FI6ie7QF.net
バグ修正

Function あるかな(a, b)
If InStr("&" & Join(a, "&") & "&", "&" & b & "&") Then
あるかな = True
Else
あるかな = False
End If
End Function

183 :デフォルトの名無しさん:2018/08/04(土) 20:08:45.16 ID:ClJJf5ah.net
Functionの戻り値を関数名に代入する構文が最高に気持ち悪いんだけどどうにかならんの?

184 :デフォルトの名無しさん:2018/08/04(土) 20:39:40.48 ID:A9MJ7JgF.net
はじめまして。
下記のようなマクロを組もうと考えています。

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

このようなマクロを作るのにあたって、どのような方向性で作成していけば良いでしょうか。

185 :デフォルトの名無しさん:2018/08/04(土) 21:04:07.47 ID:nAdkHQiH.net
>>184
マクロ?

186 :デフォルトの名無しさん:2018/08/04(土) 21:04:16.50 ID:u8rcbYXZ.net
>>184

→→→
←←←
→→→

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

A B C
-----
9 8 7
4 5 6
3 2 1

187 :デフォルトの名無しさん:2018/08/04(土) 21:22:04.15 ID:AH7fLvgn.net
>>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)
って書かないんだろう…

188 :デフォルトの名無しさん:2018/08/04(土) 21:33:22.58 ID:BuSBdH9D.net
>>187
ほんこれ
ture/falseしか代入しないのに分岐する必要性がわからない。

189 :デフォルトの名無しさん:2018/08/04(土) 21:38:34.48 ID:h4pZIq0i.net
>>183
グローバル変数にでも代入してみるとか?
他の言語にも気持ち悪いとこいっぱいあるから気にしなくていいよ
C言語のint main()もそのint 0はどこへ返すんだよって気になるし

190 :184:2018/08/04(土) 21:44:58.48 ID:VLm3wLVC.net
>>186
レスありがとうございます。
しかし、その方法だと点数のばらつきが大きいときに、各グループごとの平均と標準偏差が均等にならずに使えないんですよね、、、

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

質問としては
a)他に良い方法があるか
b)組み合わせを書き出す際に重複を作り出さないようにするためにはどのようにすれば良いか
の2点です。
これらについて特に詳しく教えていただけないでしょうか。
よろしくお願いいたします。

191 :デフォルトの名無しさん:2018/08/04(土) 21:47:53.70 ID:AH7fLvgn.net
>>183
Pascal由来の構文だからいまさらどうしようもない

192 :デフォルトの名無しさん:2018/08/04(土) 21:55:39.30 ID:ClJJf5ah.net
>>187
VBA専門の人って変な常識で固まってるからしょうがない

193 :デフォルトの名無しさん:2018/08/04(土) 21:56:58.85 ID:ClJJf5ah.net
>>189
???
グローバル?
まじでいみわからんどういうことなんだ
VBA職人の思考パターンほんと異次元なんだけど

194 :デフォルトの名無しさん:2018/08/04(土) 22:05:27.29 ID:h4pZIq0i.net
>>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

195 :デフォルトの名無しさん:2018/08/04(土) 22:07:10.27 ID:h4pZIq0i.net
>>190
大体でいいならrand()で時間かけて総当たりして、最も偏差が少ない物で良いと思う

196 :デフォルトの名無しさん:2018/08/04(土) 22:29:32.76 ID:ZYatmaNb.net
>>189
>C言語のint main()もそのint 0はどこへ返すんだよって気になるし

OSになんじゃないのか?

197 :デフォルトの名無しさん:2018/08/04(土) 22:42:04.41 ID:qDTSwX/K.net
>>184
ソルバーアドインのエボリューショナリーエンジンで解決できそう
生徒のグループ分けをなるべく少ない変数で表すモデル作るのが難しそうだが

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

頑張れば数理的に最適解も求まりそう

198 :デフォルトの名無しさん:2018/08/04(土) 22:43:45.76 ID:h4pZIq0i.net
>>196
いやまぁそうなんだけど、理解が浅い時はそう感じてたよ

199 :デフォルトの名無しさん:2018/08/04(土) 23:00:54.48 ID:ClJJf5ah.net
>>194
なんでグローバルにしたの?

200 :デフォルトの名無しさん:2018/08/04(土) 23:15:34.93 ID:vm6Y2AFh.net
instr(join(だと部分一致で誤爆する

201 :デフォルトの名無しさん:2018/08/04(土) 23:17:23.65 ID:h4pZIq0i.net
>>199
>Functionの戻り値を関数名に代入する構文が最高に気持ち悪い
って言ってる人がいたので回避策を提示しただけ
勿論こんなコード俺は書かないよ

202 :184:2018/08/04(土) 23:26:11.15 ID:A9MJ7JgF.net
>>195
>>197
レスありがとうございます。

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

アドバイスしていただいたソルバーを用いた方法とrand関数を用いた方法の双方について調査し、検討してみようと思います。
また行き詰まったら質問させてください!
その際はどうぞよろしくお願いいたします。

203 :デフォルトの名無しさん:2018/08/04(土) 23:26:28.61 ID:ClJJf5ah.net
>>201
いやぜんぜん回避策になってないじゃん
そもそも戻り値として返してないんだが
VBAコミュニティだとグローバル変数に入れると戻り値として返したことになるって風習でもあんの?

204 :デフォルトの名無しさん:2018/08/04(土) 23:27:52.91 ID:u3c/0jtm.net
ref使えばいいってなるわな

205 :デフォルトの名無しさん:2018/08/05(日) 00:06:17.04 ID:VayD9W7b.net
>>203
知るかボケ

206 :デフォルトの名無しさん:2018/08/05(日) 00:32:29.81 ID:iOJlEZ6A.net
>>202
ここは何のスレだかわかっているか?低脳

207 :デフォルトの名無しさん:2018/08/05(日) 01:06:08.74 ID:TorrOw0p.net
>>184
例えば、40人を、5グループ8人毎

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

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

こんな問題は、一筋縄ではいかない。
ものすごい組み合わせ爆発が起こるから、vba なら、何日も掛かる

208 :デフォルトの名無しさん:2018/08/05(日) 01:14:27.29 ID:jrr7Gub0.net
そんなん言語関係ないやん、アルゴリズムの問題だろ

Rubyの関数で短時間で解ける問題なら、VBAでも数倍ぐらいの時間で同じ結果は出せる

209 :207:2018/08/05(日) 01:17:12.67 ID:TorrOw0p.net
>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! で割る

210 :207:2018/08/05(日) 01:22:35.24 ID:TorrOw0p.net
48人分のデータを作って「プログラミングのお題スレ」にでも書き込んでみ。
誰か解けるか、計算時間が掛かりすぎて解けないか

こういうのはプログラミングコンテストの問題だから、
vba で解くような問題ではない!

211 :デフォルトの名無しさん:2018/08/05(日) 01:28:53.98 ID:88RY240q.net
だからソルバー使えって
数理計画法とか大学でやらなかったのか?

212 :デフォルトの名無しさん:2018/08/05(日) 02:38:17.19 ID:Gfvh6gaU.net
夏休みの宿題は自分でやれ

213 :デフォルトの名無しさん:2018/08/05(日) 08:28:04.96 ID:jOOhioBF.net
>>200
その通りだよね
それにJoinなんて例に出た短い配列にしか通用しないし

214 :デフォルトの名無しさん:2018/08/05(日) 08:47:11.10 ID:fib/Q9e8.net
>>203
戻り値を使わないという回避策なんじゃないの?

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

関数名に代入する?
関数名じゃない。
関数そのものに代入してるというか、関数そのものを定義しているんでしょ。
俺は初めて見た時にすんなり頭に入ったね。

215 :デフォルトの名無しさん:2018/08/05(日) 09:53:33.07 ID:DQLB2G4w.net
何故関数名に代入するのが気持ち悪く感じるのかというと、後に述べるような危険性を無視しているからだと思う。

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

もちろん異論は認める。

216 :デフォルトの名無しさん:2018/08/05(日) 09:56:54.93 ID:d78e98dl.net
>>214
a=a+1
これのどこら辺が気持ち悪くなる部分なの?

217 :デフォルトの名無しさん:2018/08/05(日) 10:15:24.82 ID:C8NdcnMU.net
>>192
いやCとかでも
if(foo() == 0){
 return 1;
} else {
 return 0;
}
とか書くアホはいる

218 :デフォルトの名無しさん:2018/08/05(日) 10:15:26.66 ID:88RY240q.net
>>216
さてはまじめに数学やってなかったな?

219 :デフォルトの名無しさん:2018/08/05(日) 10:19:10.37 ID:C8NdcnMU.net
>>215
> 対処法としては、関数の最初にDim Retしておき、文中ではRetに戻り値を代入、End Sub直前に関数名にRetを代入する。
手間を増やしてバグの確率上げるとか最悪の対処法だな w
そもそも2.の対処ができるなら書き換える個所は1箇所になるからこんなアホな対処法は意味がない

220 :デフォルトの名無しさん:2018/08/05(日) 10:20:36.92 ID:C8NdcnMU.net
>>216
数学の等式としては成り立たん云々だろ
どうでもいいからスルーしとけ

221 :デフォルトの名無しさん:2018/08/05(日) 10:27:17.45 ID:88RY240q.net
決め事だからどうでもいいけど代入が=なのに名前付き引数に渡すときは:=なのが統一感なくて気持ち悪い

222 :デフォルトの名無しさん:2018/08/05(日) 10:37:44.10 ID:R+WsVzw5.net
If文とか
冗長になっても数年後に見ても簡単に分かるようにしとく事も大事だと思うけど

223 :デフォルトの名無しさん:2018/08/05(日) 10:58:15.16 ID:VayD9W7b.net
>>215
エラー処理がめんどくさくなりそう

224 :デフォルトの名無しさん:2018/08/05(日) 11:02:08.70 ID:lCYlyBjK.net
>>219
関数名は普通の変数と同等には扱えないからRetを使うのが必須な場面はある。
だから別に悪手ではない

225 :デフォルトの名無しさん:2018/08/05(日) 11:10:34.73 ID:vw7t6kWc.net
>>221
= だと式と区別がつかないから

226 :デフォルトの名無しさん:2018/08/05(日) 11:12:01.18 ID:vw7t6kWc.net
>>224
> 関数名は普通の変数と同等には扱えないからRetを使うのが必須な場面はある。
そういう場合はそうすればいいだけ
そういう前提がない場合にまでそうする奴は単なるバカ

227 :デフォルトの名無しさん:2018/08/05(日) 11:18:09.78 ID:DQLB2G4w.net
>>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

そもそもこの書き方って、自然と起こりうるものでコーディングルールとして定めるか臨機応変に使うかって話だと思うのだけどどうなん。

228 :デフォルトの名無しさん:2018/08/05(日) 11:31:30.01 ID:7RpOjRbA.net
変数宣言強制にしてれば関数名変えた時、戻り値返すための関数名も変更しないとエラーになるんじゃないの?

229 :デフォルトの名無しさん:2018/08/05(日) 11:42:23.57 ID:VayD9W7b.net
>>227
ごめん、なにか勘違いしてた
別にややこしくなかったね

230 :デフォルトの名無しさん:2018/08/05(日) 12:01:55.81 ID:jOOhioBF.net
>>226

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

だからあんたの言う
>そういう前提がない場合にまでそうする奴は単なるバカ
も根拠薄弱。

231 :デフォルトの名無しさん:2018/08/05(日) 12:06:39.32 ID:DQLB2G4w.net
>>228
関数名変えるだけなら、コンパイルエラー出るから問題ないよ。
ただあまりたくさん使ってると次々とコンパイルエラー出てイラっとするだけで・・・。

232 :デフォルトの名無しさん:2018/08/05(日) 12:11:44.20 ID:C8NdcnMU.net
>>227
> バグの確率が上がる状況ってどんな時?具体例を上げてくれ。
記述量が増えればバグは増える、常識
> 2の対処によって関数名に代入するのを1回にしてるんだが。どういう意味?
だからそれなら1.の対処の意味がない
無駄なGoto増えるだけ
>>228の言うように関数名の変更忘れてたらOption Explicitでその関数に入る時にエラーになる

233 :デフォルトの名無しさん:2018/08/05(日) 12:13:45.38 ID:C8NdcnMU.net
>>230
>> そういう前提がない場合にまでそうする奴は単なるバカ
> も根拠薄弱。
必要もないのにコード量増やす奴はバカ
って書かないとわからんの? w

234 :デフォルトの名無しさん:2018/08/05(日) 12:22:01.77 ID:C8NdcnMU.net
> ※コピペ直後に「完全に一一致」でプロシージャ内置換すれば良いのは分かっているが、そういう問題ではない。

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

わかってるけどやりたくない
でもいらつくとかちょっと病院に行った方がいいレベル

235 :デフォルトの名無しさん:2018/08/05(日) 12:32:44.13 ID:jOOhioBF.net
>>233
最初の>>215の段階からRetが有効に使える場合のことしか書いてないよ

その前提を無視して>>219が変なこと言うから悪い
つまり>>219>>226>>233が悪い

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

そもそもは関数名代入が気持ち悪いと感じる原因と、自分がやってる対処法を上げて有用な異論がないか知りたかっただけだし。

237 :デフォルトの名無しさん:2018/08/05(日) 12:46:59.88 ID:jOOhioBF.net
記述量が増えるったって Dim ret と 最後の代入の2行だけじゃん。
途中の 「関数名 = 〜 」 という代入の記述を減らせるんだったら大した害悪じゃない。
最初からそういう話をしているのにね。

238 :デフォルトの名無しさん:2018/08/05(日) 12:58:38.58 ID:d6sOKofu.net
>>190
平均はできた、けど標準偏差はわからない
https://paiza.io/projects/rCXyBIojlQ87fN8Gkr2n5g

239 :デフォルトの名無しさん:2018/08/05(日) 13:00:05.97 ID:d6sOKofu.net
>>238
ヒープ使って合計の少ないものに足してます

240 :デフォルトの名無しさん:2018/08/05(日) 13:30:42.82 ID:VayD9W7b.net
行き違いがあるんじゃない?
コーディングルールとして決められていれば、多少記述が増えてもそんなもん何の問題もない
コーディングルールがない状態でいきなり>>227みたいな記述が出てくれば、ボンクラは意味がわからずに戸惑うだろう

241 :デフォルトの名無しさん:2018/08/05(日) 13:51:42.51 ID:7Eiwzs5v.net
な?
たかが返り値を返すだけの話なのに
グローバルにするだのRetに一時保存するだのExit Sub禁止するだの
名前を変えるときは注意深く使ってるとこ全部変えるだの
謎のオレオレルールが一気に湧き出してきた
これが関数名に代入方式の弊害だよ

VBAに染まってない一般的なプログラマなら
「関数名に戻り値代入ってなんかキモくね?」「せやなぁなんでreturn文ないんやろねぇ」
こう一瞬で同意を得られるはずなんだがVBAワールドだとこうなってしまう
まるで異世界に迷い込んだような感覚

242 :デフォルトの名無しさん:2018/08/05(日) 13:57:46.59 ID:7RpOjRbA.net
VB.netもreturnなんだな

243 :デフォルトの名無しさん:2018/08/05(日) 14:22:10.24 ID:C8NdcnMU.net
>>235
> 最初の>>215の段階からRetが有効に使える場合のことしか書いてないよ
>>215が有効とか思ってるのはお前らだけ

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

>>237
> 途中の 「関数名 = 〜 」 という代入の記述を減らせるんだったら大した害悪じゃない。
記述は減ってない
関数名を変更した時の変更量が減るだけ
しかも本人が書いてる通り
> ※コピペ直後に「完全に一一致」でプロシージャ内置換すれば良い
だけなのに、何故はそれはやりたくないらしい w

244 :デフォルトの名無しさん:2018/08/05(日) 15:39:03.72 ID:fib/Q9e8.net
そもそも、仮に何度も関数名?に代入したとしてもその関数が長く無ければ混乱することも無い。
長い関数はそもそもダメるわけで最初から混乱することは無い。

関数を100行程度にするってのは常識だろ。

245 :デフォルトの名無しさん:2018/08/05(日) 16:14:10.59 ID:7Eiwzs5v.net
100は長すぎだろ

246 :デフォルトの名無しさん:2018/08/05(日) 16:31:24.96 ID:OTeO2/4+.net
>>245
そうか?
Cプログラミング診断室の人が許容される限界は100行までと言ってたからそれに準じたまでだが。
それに、だったらお前さんは短い関数で混乱してたということ?

247 :デフォルトの名無しさん:2018/08/05(日) 16:32:17.90 ID:lCYlyBjK.net
書き間違えでしょwww
俺は最長でも60行くらいだ。

それはともかく、関数名は最終的な答えを代入するためのものであって、
途中の値なんか決して代入したくないよって理由じゃないの?
少なくとも俺はそうだ。

248 :デフォルトの名無しさん:2018/08/05(日) 16:33:09.91 ID:lCYlyBjK.net
書き間違えじゃないのかよ

249 :デフォルトの名無しさん:2018/08/05(日) 16:39:11.36 ID:OTeO2/4+.net
returnのある言語から入ってきたから違和感を感じるのかも知れないがreturnよりは自然だろ。

そもそも俺は関数名?に代入するということを習ったことが無い。
最初にFunctionプロシージャを見て全てを理解した。
自然に理解出来た。

250 :デフォルトの名無しさん:2018/08/05(日) 16:53:49.71 ID:DQLB2G4w.net
>>246,245
限界が100行なのであって、普段は50行とかに抑えるべきだと言いたかったんだと思う。
それを100行程度が常識だと勘違いしただけじゃないかな?

251 :デフォルトの名無しさん:2018/08/05(日) 17:02:35.19 ID:C8NdcnMU.net
> 関数を100行程度にするってのは常識だろ。
って言うのを限界と言うのは苦しいだろ w

252 :デフォルトの名無しさん:2018/08/05(日) 17:40:35.93 ID:FkgLp/sd.net
ちょっと待ってほしい
他の言語なら50行で書ける関数もVBAだと100行に膨れ上がるから仕方ないのではないだろうか

253 :デフォルトの名無しさん:2018/08/05(日) 18:38:48.57 ID:FpUB4uXn.net
Cプログラミング診断室の人がVBAに言及するのか?
VBAを使ってはいけない原理主義者の人は相変わらずこじつけがスゴイなw

254 :デフォルトの名無しさん:2018/08/05(日) 19:19:38.85 ID:OTeO2/4+.net
なんじゃそりゃ。
どんな言語でも短くすべきなのは常識だろ。

50行だろうが100行だろうが関数名?代入しても混乱しないだろ。

255 :デフォルトの名無しさん:2018/08/05(日) 19:21:07.38 ID:OTeO2/4+.net
>>251
何だ?
10行じゃマズい何かがあるとでも思ってるのか?

それはさすがにプログラミング知らなすぎ。

256 :デフォルトの名無しさん:2018/08/05(日) 19:23:39.26 ID:NFAVCAdx.net
手続き型だとそこまで細分化してもかえってわかりにくいけどな

257 :デフォルトの名無しさん:2018/08/05(日) 19:31:00.06 ID:C8NdcnMU.net
>>255
プログラミングの前に日本語の勉強しなよ…

258 :デフォルトの名無しさん:2018/08/05(日) 20:48:23.33 ID:xg7vFkon.net
質問です
他の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

259 :デフォルトの名無しさん:2018/08/05(日) 20:48:50.34 ID:VayD9W7b.net
他の言語ならともかくvbaなんてスクリプトなんだから多少行が増えても普通でしょ

260 :デフォルトの名無しさん:2018/08/05(日) 21:46:30.28 ID:x6CWYB22.net
Workbook.worksheet.listobject("テーブル名")とか

261 :デフォルトの名無しさん:2018/08/06(月) 18:40:21.72 ID:srsn67Ss.net
基本vbaは良くも悪くもやっつけ仕事片付ける用途だからなぁ
いっそ他人が読んだりメンテしたりすることを全く考慮しないのも手っていう記事見たことがあるけど
極論とはいえ、適材適所って意味ではそれも手だなとおもた

262 :デフォルトの名無しさん:2018/08/06(月) 21:02:33.88 ID:nuq1zyN5.net
vbaは使い捨てのマクロとかしょっちゅうだしね
他の言語とはかなり正確が異なる

263 :デフォルトの名無しさん:2018/08/06(月) 21:57:34.50 ID:DlUo5dI6.net
・誰かが質問をする
 ↓
・とりあえず誰かが質問にダメ出しをする
 ↓
・そのうち誰かが回答する
 ↓
・俺の方が上と違う人が別の回答をする
 ↓
・どちらの回答も的外れなためにダメ出し合戦が始まる
 ↓
・不利になってきた方がそもそもVBA自体が糞と論点をそらす
 ↓
・とことん荒れる
 ↓
・各自「やっぱり俺の知識が至上だったな」と思い矛を収める


・質問者「で、俺の質問は…」

264 :デフォルトの名無しさん:2018/08/06(月) 22:05:07.55 ID:HWRT0k/I.net
・変なキチガイが唐突に持論を展開する

265 :デフォルトの名無しさん:2018/08/06(月) 22:09:50.77 ID:1zJm1iav.net
>>261
自分しか使わない書き捨てツールと社内に配布して他の人に使ってもらうツールじゃ組み方は違うわな
別にVBAに限った話じゃないけど

266 :デフォルトの名無しさん:2018/08/07(火) 01:29:58.65 ID:8F5FPkZy.net
質問に対してこんな感じでいいんじゃね〜って教えるのと、
仕事で残すコードでも組み方は全然違ったりする

267 :デフォルトの名無しさん:2018/08/07(火) 12:27:46.44 ID:o04k1oyM.net
変数を宣言したら直ぐに初期化するように、と解説サイトにはよく書かれているのですが、
ループカウンタも初期化する必要があるのでしょうか

268 :デフォルトの名無しさん:2018/08/07(火) 12:50:25.25 ID:Hr4AgTw6.net
vbaレベルならいらないんじゃねて思うけどね
グローバルとかオブジェクト変数はやるけどそれ以外はして無いわ

269 :デフォルトの名無しさん:2018/08/07(火) 12:58:23.99 ID:zpIkHTy8.net
>>267
VBAの変数には既定値というのがちゃんと定義されているので、初期化は必ずしも必要ない
VBAの仕様を知らない人にコードを見せる可能性があるなら初期化してもいいけど、
俺個人の考えでは、宣言と初期値の代入は分けて書くべき

質問の文脈から判断して、ループカウンタとはFor文で使うカウンタ変数のことだろうけど、これは初期化しなくていい
しかし「ループカウンタ」はもっと広い概念を表すので、初期化が必要なケースも多々存在する

270 :デフォルトの名無しさん:2018/08/07(火) 15:43:33.88 ID:JsLgKgln.net
>>267
VBAではそもそも初期化できない。

271 :デフォルトの名無しさん:2018/08/07(火) 18:35:06.29 ID:o04k1oyM.net
ありがとうございます。
特に初期値は設定せずにそのまま使うことにします。

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

スレチでしたら無視してください。

272 :デフォルトの名無しさん:2018/08/07(火) 19:02:13.91 ID:kevEyuIc.net
なんかの言語をひとつ習得できる人なら何でもいいよ
言語別の利用者数、給与、分野、いろいろ調べてみ

273 :デフォルトの名無しさん:2018/08/07(火) 20:12:05.34 ID:BqQIYASV.net
>>271言語よりIDEの開発環境が充実してる方が覚えやすい
VisualStudioがおススメ
C#の方が圧倒的にサンプルも多いし解説Webページも多いので良いのでは

274 :デフォルトの名無しさん:2018/08/07(火) 20:40:19.29 ID:50B7Hyqk.net
>>271
VB.NETとC#のコードを見比べて自分が分かりやすいと思った方かな
または、こっちの方が好きだと思える方

275 :デフォルトの名無しさん:2018/08/07(火) 20:44:08.52 ID:BqQIYASV.net
それにC#ならAndroidアプリも作れるしiOSアプリも作れる

276 :デフォルトの名無しさん:2018/08/07(火) 20:56:18.42 ID:i+W8MTkr.net
>>271
日常的な小手先の処理したいならPythonやNode.jsみたいなスクリプト言語
がっつりアプリ作りたいなら最近流行りのGoやSwiftやkotlin

277 :デフォルトの名無しさん:2018/08/07(火) 21:13:08.98 ID:zpIkHTy8.net
20代までならC#ぐらいは覚えておいたら転職で役に立つかも知れない

278 :デフォルトの名無しさん:2018/08/07(火) 21:33:21.73 ID:eM6c9wNK.net
仕事で社内サイトの検索結果を数十ページ出して
その中から必要なデータをExcelに貼り付けるVBAをCreateObject(" InternetExplorer.Application"を使って作ったのだけど
社内ネットワークが重すぎて1ページあたり1分以上、つまり20ページあると20分以上というものすごい時間がかかります。
これ各ページの平行作業かなにかで、どんなにページ数があっても1分強くらいですます方法はないのですか?

279 :デフォルトの名無しさん:2018/08/07(火) 21:44:50.55 ID:eM6c9wNK.net
ちなみに今は
1ページ開いて、そのページを完全に読み取ったら(●ここに時間がかかっている。30秒〜60秒くらいか)、IEオブジェクトを利用してGetIdByIDなどでデータを読み込み、そのページを閉じ、
それをページ数だけ繰り返しています。

280 :デフォルトの名無しさん:2018/08/07(火) 21:58:48.99 ID:zEgIKMkK.net
無いです
シス管に糞サイトが遅いぞって文句言いましょう

281 :デフォルトの名無しさん:2018/08/07(火) 22:03:53.33 ID:eM6c9wNK.net
いや、あるのでは?
他言語ではマルチスレッドというやつかな?

282 :デフォルトの名無しさん:2018/08/07(火) 22:07:46.26 ID:zpIkHTy8.net
IEオブジェクトを配列にしてWEBページの同時読み込みに挑戦してみたことあるけど、なぜかVBAではうまくいかなかった
これはいまだに理由がよくわからん

283 :デフォルトの名無しさん:2018/08/07(火) 22:52:34.26 ID:Ylf+FX0e.net
VBScriptで処理を書いて
マルチプロセスでやってみるのはどうだろう

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

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

社内DBに直結してデータぶっこ抜けないかな

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

100行ってのはおそらくだが速度最適化のために可読性保守性を無視したコードならそれぐらいまでOKってことではないかな
C言語は何よりもまず速度みたいなところがあるからね

285 :デフォルトの名無しさん:2018/08/07(火) 23:10:51.13 ID:50B7Hyqk.net
>>284
俺もC#では平均だと6,7行くらいだな
Javaも最近やってないがそんくらいだったと思う

286 :デフォルトの名無しさん:2018/08/07(火) 23:14:03.05 ID:zEgIKMkK.net
>>281
エスパーすると社内サイトの検索処理がダメダメで異様に時間食ってると思うのでクライアントでいくら頑張っても無理

287 :デフォルトの名無しさん:2018/08/07(火) 23:19:30.40 ID:EHUuk9/6.net
ネットワーク越しの処理ってVBA異常に遅かった記憶があるなぁ

288 :デフォルトの名無しさん:2018/08/07(火) 23:44:33.38 ID:+TFKzcWv.net
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

289 :デフォルトの名無しさん:2018/08/07(火) 23:44:40.74 ID:+TFKzcWv.net
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

290 :デフォルトの名無しさん:2018/08/07(火) 23:46:49.50 ID:+TFKzcWv.net
この辺は配列に入れようかと思ったけどもういいやってなった
使い捨てじゃなければもう少し綺麗にまとめたいんだけど、
そんな暇は、ない

Cells(i, 2) = objFs.GetBaseName(objFld.Name)
Cells(i, 3) = objFld.ParentFolder.Path
Cells(i, 4) = ・・・

291 :デフォルトの名無しさん:2018/08/08(水) 00:43:07.64 ID:vvQmCMQJ.net
扱うプログラミング言語によるエンジニアの年収差「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ってなんやねん…
って言うてたらアカンのんか…

292 :デフォルトの名無しさん:2018/08/08(水) 02:42:12.63 ID:bsMqBICX.net
ポケモンだろ

293 :デフォルトの名無しさん:2018/08/08(水) 03:02:57.55 ID:vtZ7Dair.net
>>282
複数のIE インスタンスがあっても、1つしか実体化されていないとか?
それか、それらが共有化されているとか?

すべてのインスタンスを、別々に実体化したか?

294 :デフォルトの名無しさん:2018/08/08(水) 05:59:42.24 ID:1w8vuJFc.net
>>293
インスタンスとは実体化されてるそのもののことだと思うけど。どういうこと?

295 :デフォルトの名無しさん:2018/08/08(水) 06:57:52.22 ID:QCGkbsMF.net
カップヌードルにお湯を入れます、これがインスタンス化です
カップヌードルにお湯を注いでいたとしても、それが同じカップヌードル
だったらできあがるカップヌードルは1つだけですよね、そういうことです

296 :デフォルトの名無しさん:2018/08/08(水) 08:10:17.80 ID:Ot2gBzQj.net
>>279
InternetExplorer.Applicationは遅い。
ページにもよるけどMSXML2.XMLhttpとかhtmlflle使った方が全然速い。
ページにもよるのは遷移後にJavaScriptなどでページ内容が変わる場合等は対応出来ない場合があるから。

297 :デフォルトの名無しさん:2018/08/08(水) 09:27:23.26 ID:wHDW8dSe.net
Webアプリを作って取得したデータをエクセルで読み込めば早いのでは?

298 :デフォルトの名無しさん:2018/08/08(水) 11:19:22.65 ID:wMtMcgI8.net
社内サイトなら>>283の言うとおりDBを直接アクセスするのが正解なんだが、
「そういう想定で作ってません」てパターンもありそう。

299 :デフォルトの名無しさん:2018/08/08(水) 12:44:02.26 ID:fnpjJPlP.net
一般社員用クライアント - WEBサーバ - DBサーバ - 管理者用クライアント
WEB経由じゃないと、DBには直接アクセスできないってケースもよくある

300 :デフォルトの名無しさん:2018/08/08(水) 13:19:28.34 ID:hYvxbMfU.net
以前データをCSVに書き出す社内Webがクソすぎて
解析したらページ内のパラメータjoinしてSQL文作ってPOSTで投げて取得してただけだったので
XmlHTTPで直接取るようにしたことあるわ

301 :デフォルトの名無しさん:2018/08/08(水) 19:07:51.20 ID:wMtMcgI8.net
>>299
つまらんことするよなあ

302 :デフォルトの名無しさん:2018/08/08(水) 19:14:31.05 ID:woeaWRrx.net
DBに無制限で直接アクセスってヤバくね?

303 :デフォルトの名無しさん:2018/08/08(水) 20:01:33.99 ID:5XCxVkf/.net
無制限のアクセスはやばいけど

このテーブルだけ許可しますとか
SELECTだけ許可しますとか
このIPからだけ許可しますとか
できるっしょ

304 :デフォルトの名無しさん:2018/08/08(水) 21:58:07.18 ID:F+QXSseb.net
社内DB全開放して自由にクエリ投げれるようにしたら事務の人間半分くらいいらなくなりそう
というかVBAなんかよりSQL勉強したほうが手っ取り早く幸せになれる人多いんじゃないかと前々から思ってる

305 :デフォルトの名無しさん:2018/08/08(水) 22:05:47.67 ID:XDTEOjvF.net
webで良いからurlがapiとして完成してれば何も言うことは無い

306 :デフォルトの名無しさん:2018/08/08(水) 22:22:03.67 ID:+Hip1o5f.net
>>304
報酬次第だね
事務のコストを圧縮するごとにシステム部の報酬が上がるなら、
システムは本気で頑張り続けるだろうね

現実的にはなぜかそれが行われないので、いつまで経っても事務が事務事務している

307 :デフォルトの名無しさん:2018/08/08(水) 22:23:00.50 ID:+Hip1o5f.net
ただ、下手にアクセスで作ると自分以外触れなくなって何かあったら即死する
中小企業なら、エクセル+エクセルvbaが最強だと思っている

308 :デフォルトの名無しさん:2018/08/08(水) 22:49:37.58 ID:jNIJWXgx.net
>>307
アクセス専門業者を呼べばいいだけじゃん

309 :デフォルトの名無しさん:2018/08/08(水) 23:28:48.50 ID:+Hip1o5f.net
>>308
死ぬほど高い

310 :デフォルトの名無しさん:2018/08/09(木) 00:59:24.50 ID:JCoC1JfU.net
1から開発で今更Accessも無いだろう。データベースシステムでスタンドアロンのシングルユーザーというのがそもそも想定しにくい

311 :デフォルトの名無しさん:2018/08/09(木) 01:02:04.53 ID:cF5SxCfL.net
当たり前のことなんだけど、これまでなかなか上手いたとえが思い付かなかったが…

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)

312 :デフォルトの名無しさん:2018/08/09(木) 06:36:39.58 ID:Uz7F5Yyf.net
真の欲求って奴だな
これを知らないとデスマーチからいつまで経っても抜け出せなし

313 :デフォルトの名無しさん:2018/08/09(木) 07:59:59.62 ID:TQ/3uoG6.net
ソフトごとに違う使い方やI/F覚えるよりSQL覚えた方が早いしずっと役立つんじゃね?

314 :デフォルトの名無しさん:2018/08/09(木) 08:16:05.94 ID:XQnUSO4S.net
>>313
なるほど!
じゃあ社内DBに直接アクセスしたいのですが、その方法はどうしますか?
HTMLのフォームに入力してSubmitすれば次のページでいろんなデータが見れるようになっているのですが
そのHTMLフォームがあるページのHTMLソースを見ればその中のどこかに社内DBのアドレスやログイン方法みたいなのが書いてあるのですか?

315 :デフォルトの名無しさん:2018/08/09(木) 08:22:15.68 ID:0WK0pW+2.net
>>314
そんなバカな
HTMLから投げるのはサーバーサイド処理のスクリプト
ASPだったりCGIやPHP
ページのソースに書いてあったら怖いだろ

316 :デフォルトの名無しさん:2018/08/09(木) 08:24:20.68 ID:nqTz3IyX.net
>>314
お前には無理だから諦めろ

317 :デフォルトの名無しさん:2018/08/09(木) 08:38:23.31 ID:sKYMgflt.net
そういやExcel VBAでもADO使えばSQL使えるみたいだけど、どれくらい制限あるの?

318 :デフォルトの名無しさん:2018/08/09(木) 09:09:17.52 ID:BeIAvoie.net
???
そもそも何に接続したいの?
SQLといってもそれによるでしょ。

接続できるアカウント用意してもらって、
接続用ODBCドライバ入れて良いかどうかとか、情シスに聞いてみれば?

319 :デフォルトの名無しさん:2018/08/09(木) 10:14:25.51 ID:yeHg7T00.net
>>317
機能に制限はない
運用側で接続やアクセスを制限するのが普通のやり方

320 :デフォルトの名無しさん:2018/08/09(木) 12:17:46.94 ID:TQ/3uoG6.net
>>317
SELECTとかINSERTとかのSQLを実行する分にはvbaだからどうこうっていう制約は何もないよ。

321 :デフォルトの名無しさん:2018/08/09(木) 18:30:51.09 ID:sKYMgflt.net
>>319
>>320
え、そうなんだ
じゃあ単にシート内を検索するときもDictionary使わずに、ADOで接続してSQL使った方がシンプルで応用がききそうだね
もっともExcelでSQLの命令書くのが簡単なのなのかはわからないけれども

322 :デフォルトの名無しさん:2018/08/09(木) 18:39:29.03 ID:XQnUSO4S.net
ところで新バージョンExcelで「游ゴシック」がうざくてしかたがない。
これ地獄の底へ抹消する方法ない?

しかも「游」ってなんだ?「遊園地」の「遊」でもないし。

323 :デフォルトの名無しさん:2018/08/09(木) 18:47:08.22 ID:JCoC1JfU.net
Web制作では游ゴシは福音なんだがな...嫌いならフォントだけアンインストールすりゃいんじゃね?

324 :デフォルトの名無しさん:2018/08/09(木) 19:24:43.48 ID:YxGb3uhT.net
>>311
たとえおかしくね?
ユーザーが右折したい左折したいっていってるならボタンが正解だろ
コーナーが90度だけじゃなくてたくさんあるっていう状況まで汲めってそりゃ無茶ぶりだろ

325 :デフォルトの名無しさん:2018/08/09(木) 19:26:31.27 ID:FjggVehY.net
既定のフォント設定で簡単に変更は出来るけど、他人の作るブックはどうにもならんからな…

326 ::2018/08/09(木) 19:29:47.37 ID:Iu9wUSgQ.net
>>325
それだけでは足りないぞ

327 :デフォルトの名無しさん:2018/08/09(木) 20:56:51.04 ID:cF5SxCfL.net
>>324
「コーナーが90度だけ『じゃなくてたくさんある』っていう状況」まで汲め

まずは、要求を抽象化してその可能性に気づき
次に、こちらから質問してそういうケースが起きうるのかを確認する
それだけの話で超能力でも忖度でもムチャぶりでもないよ
(あ、でも確かに最初の抽象化ができない人にやれというのはムチャぶりになるかもね)

328 :デフォルトの名無しさん:2018/08/09(木) 21:10:58.19 ID:ou4vsgQB.net
ヒアリングしても具体的な典型例のみが挙がるかレアケースばかり挙がることが多い気がする
実務やってる人間にとって当たり前すぎることは出てこなくて、試作段階で出来なくてもいいのかの確認とったら出来ないと話にならんとか
俺は自部署以外だと多部署からの依頼を受けて作る程度だからある程度実務がわかる分マシだけど、プロは畑違いの仕事の他社とやりとりするんだから大変だろうな

329 :デフォルトの名無しさん:2018/08/09(木) 21:23:36.18 ID:Uz7F5Yyf.net
レアケース挙げてくれるならありがたいジャン

330 :デフォルトの名無しさん:2018/08/09(木) 21:32:44.33 ID:s67NkejU.net
そのためのOOPだ
なんの問題ないよ

331 :デフォルトの名無しさん:2018/08/10(金) 00:05:32.03 ID:Xmz6l8g0.net
>>321
ODBCだったら
Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)
というドライバを使うことになるけど、これの機能が貧弱だから凝ったSQLは受け付けてくれない。
単純なWHERE文での抽出だったらできるから、形式が決まったシートなら便利に使える可能性はある。

332 :デフォルトの名無しさん:2018/08/10(金) 00:07:31.23 ID:Xmz6l8g0.net
>>327
大変だねえ、委託業務は

333 :デフォルトの名無しさん:2018/08/10(金) 00:07:58.29 ID:buW+ivGR.net
>>323
具体的にはなにがどう良いんだ?

334 :デフォルトの名無しさん:2018/08/10(金) 00:13:58.45 ID:KVMpRfYs.net
あらゆることを想定したお見積がこちらです


なんでそんなかかるの?と

335 :デフォルトの名無しさん:2018/08/10(金) 00:36:24.65 ID:GY+5Xvxa.net
>>327
いや、ハンドルとコーナーの話だから抽象化やらも考えやすいだけじゃね?っていう
車とか曲がる行為とかがある程度普遍的だから敷衍できる
でも普段やってる仕事ってそのレベルで進んでるか?ってことよ
抽象化しろっていうのも一見正論だしある程度はしてるけど
曲がるを実装するためにハンドルは俺には飛躍が激しく思える

336 :デフォルトの名無しさん:2018/08/10(金) 00:45:08.80 ID:nHU64y35.net
抽象化が苦手そうなのがよく伝わってくる
アレはアレ、コレはコレで別モンとして対処するのが得意そうだな

337 :デフォルトの名無しさん:2018/08/10(金) 00:51:11.37 ID:GY+5Xvxa.net
幸運な>>336はそのレベルででなんだな
どういう仕事してんだ?web系とかか?

338 :デフォルトの名無しさん:2018/08/10(金) 04:05:42.61 ID:3Gbr2Rmh.net
>>314
そういうのは、Rails とか

無料のRails チュートリアルでも勉強すれば?

339 :デフォルトの名無しさん:2018/08/10(金) 04:22:01.75 ID:8SROxuQV.net
>>333
游ゴシックはMacとWindowsの両方に搭載されているのでCSSの手間が減る

340 :デフォルトの名無しさん:2018/08/10(金) 07:12:17.59 ID:hEgtpW6D.net
出ましたRubyヴァカ

341 :デフォルトの名無しさん:2018/08/10(金) 07:42:41.23 ID:gxVIX6OQ.net
20年遅れくらいでオブジェクト指向に出会った感じがよくでてる

342 :デフォルトの名無しさん:2018/08/10(金) 13:30:13.92 ID:u/kCZrV9.net
あるクラスのインスタンスをいっぱい作ってそれをCollectionに入れてて
それをその1つの要素でソートするためにはどうしたらいいですか?
VBAにはソート関数みたいなのはないのですか?

イメージとしては人間クラスがあって、年令でソートする感じ。

343 :デフォルトの名無しさん:2018/08/10(金) 13:40:04.94 ID:PoJQ6i5f.net
rubberduck入れたらCall使うなって怒られた
なんでダメなの?

344 :デフォルトの名無しさん:2018/08/10(金) 14:51:32.56 ID:gxVIX6OQ.net
>>342
1 年齢と連番を入れた配列を別に作る
2 その配列を年齢でソートして順位を出す
3 インスタンス列をその順番で引っこ抜いて新しいcolllectionとする

345 :デフォルトの名無しさん:2018/08/10(金) 16:02:16.73 ID:ZQbSW7gd.net
列のソート時に行を崩さない方法について質問させてください。

手作業では成功してます。
一列オートフィルタ→ソートのカスタムから指定文字列選択→完。
マクロだと指定した行のみソートになってしまいデータが壊れてしまいます。
ご回答よろしくお願いします。

346 :デフォルトの名無しさん:2018/08/10(金) 18:20:14.79 ID:u/kCZrV9.net
>>344
2にもソートが入ってるけど
そのソートの方法が知りたいのですが。
VBAにはもともとの機能としてソートは入っていないかな?

作業シート作って、そこにデータ入れて、Excelの並べ替えの機能を使ってやる方法は思いついたけど
それはダサい、作業シート作るなんてスマートじゃない、等の理由で好きじゃないのですが。

347 :デフォルトの名無しさん:2018/08/10(金) 18:55:47.50 ID:9rAsrzZF.net
VBA自体がダサくてスマートじゃないから諦めましょう
生粋のVBAerはこういうとき自作のソートサブルーチンをコピペするらしいです

348 :デフォルトの名無しさん:2018/08/10(金) 19:00:51.38 ID:hEgtpW6D.net
お前の「ダサい、スマートじゃない、好きじゃない」なんて知ったこっちゃない

349 :デフォルトの名無しさん:2018/08/10(金) 20:01:43.47 ID:u/kCZrV9.net
VBAってソート関数ないの?
ほんとウンチみたいな言語ですね

350 :デフォルトの名無しさん:2018/08/10(金) 20:09:31.68 ID:t0FQp9fT.net
>>349
これが言いたばかりに半日スレ更新繰り返してたと思うとクソ笑え?

351 :デフォルトの名無しさん:2018/08/10(金) 20:26:39.07 ID:u/kCZrV9.net
>>350
あまりわたしを怒らせないほうがいいぞ

352 :デフォルトの名無しさん:2018/08/10(金) 20:27:17.52 ID:u/kCZrV9.net
わたしは怒ったら怖いんだぞ

353 :デフォルトの名無しさん:2018/08/10(金) 20:43:22.07 ID:TzsaHsn2.net
自分でクイックソートでも組んでクソしながら寝とけ

354 :デフォルトの名無しさん:2018/08/10(金) 20:53:13.90 ID:cfNcxUIl.net
ソートってお前ら、せっかくのエクセルvbaなんだから
セルに一度いれたらいいだけじゃないか?
何万行かあってもエクセルのソートはそこまで遅くないだろう

355 :デフォルトの名無しさん:2018/08/10(金) 20:54:14.30 ID:EZ4av1qU.net
そういやSortがkeyが三つまでしか指定できない仕様は変わらんのかな
Excelだと四つ以上指定できるのに、VBAだと複数回に分けてやる必要があるとかいうよくわからない状態になってるし

356 :デフォルトの名無しさん:2018/08/10(金) 21:13:10.19 ID:DHT31mYJ.net
>>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

357 :デフォルトの名無しさん:2018/08/10(金) 21:18:56.66 ID:hElUeWw3.net
>>346
数値のソートは自分で頑張って実装しなさいよ
順序づけインデックスを使って任意のコレクションを並べ替えるロジックは汎用性のあるものだから
自作する意義は十分にある。

358 :デフォルトの名無しさん:2018/08/10(金) 21:21:33.75 ID:hElUeWw3.net
汎用性があるってだけでなく、
ひとつの順序づけインデックスを使って複数のコレクションを同じ順に並べ替えることが出来るからね

359 :デフォルトの名無しさん:2018/08/10(金) 21:59:32.18 ID:CvQqUFge.net
順序付けインデックスって何?

360 :デフォルトの名無しさん:2018/08/10(金) 22:19:22.24 ID:BBFwYEVu.net
>>359
ごめん一般的にどう呼ぶか知らんからテキトーな名前で言った
ソート対象のデータの横にナンバーが振ってあったとして、データと一緒にそいつもソートすると思ってください。
その後、ナンバー部分を取り出したもの。

361 :デフォルトの名無しさん:2018/08/10(金) 23:26:19.27 ID:swVL64k5.net
別にVBAでもソート出来るでしょ。
調べ方が足りないんじゃね?

362 :デフォルトの名無しさん:2018/08/10(金) 23:42:39.74 ID:tKZj7bhP.net
ソートが出来るコレクションは限られてる
目的にあった使用ができるか調べればいい

363 :デフォルトの名無しさん:2018/08/10(金) 23:52:22.63 ID:CvQqUFge.net
>>360
そんなことしなくても比較する関数を渡して直接ソートするのが一般的だし汎用的では

364 :デフォルトの名無しさん:2018/08/10(金) 23:56:04.31 ID:Xmz6l8g0.net
>>363
そうだけど>>358のメリットががが

365 :デフォルトの名無しさん:2018/08/11(土) 01:03:51.43 ID:niUEedr6.net
.NET APIのArrayList使えばコレクションのソートもできるじゃん
VBAでも使えるぞ

366 :デフォルトの名無しさん:2018/08/11(土) 11:39:39.78 ID:K8a9DxhQ.net
>>365
それどうやって使えるようにするの?

367 :デフォルトの名無しさん:2018/08/11(土) 11:46:17.07 ID:KSv2Sz3+.net
>>366
CreateObject("System.Collections.ArrayList")で普通にオブジェクト生成できる
あとはググってどうぞ

368 :デフォルトの名無しさん:2018/08/11(土) 12:05:04.95 ID:YyI+aygL.net
λもLinqもないVBAに.NETコレクションを渡されてもあんまり嬉しくないでしょう

Private app As New MyDotNetComLib.MyApp

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

こっちのほうが楽だよ
コレクションのソートはC#サイドで好きなだけできる

369 :デフォルトの名無しさん:2018/08/11(土) 12:20:08.44 ID:cu5jnq2r.net
>>368
比較関数は渡せるの?

370 :デフォルトの名無しさん:2018/08/11(土) 12:42:46.23 ID:YyI+aygL.net
>>369
C#サイドで好きなだけ渡せるよ

371 :デフォルトの名無しさん:2018/08/11(土) 12:50:48.93 ID:Tdr5W98e.net
>>370
VBA側で定義できるかが課題

372 :デフォルトの名無しさん:2018/08/11(土) 12:56:28.26 ID:YyI+aygL.net
>>371
わざわざVBA側でする意味がないじゃん?

373 :デフォルトの名無しさん:2018/08/11(土) 13:11:49.02 ID:0HQvSoaX.net
>>370
楽といっても、C#スキルのある人限定の話でしょ
VBAのメイン利用層は、現場のエンドユーザーであり
本職のプログラマーじゃないんだよ

374 :デフォルトの名無しさん:2018/08/11(土) 13:13:13.81 ID:XUOVQ5jM.net
そのC#側のコードはどう書くんだ
メモ帳か?HTMLタグ手打ちでホームページ作るのよりしんどそうだが
ああ、今はオンラインIDEってのもあるのか
IE11が使用環境に入ってなきゃ意味ないけど

375 :デフォルトの名無しさん:2018/08/11(土) 13:15:21.09 ID:K8a9DxhQ.net
>>367
ありがとうでガンス。
なんだかよさげザマスね。

ところでこのCreateObject("System.Collections.ArrayList")を収納する変数の型はなににしたらよいザマしょうか?
F2で出るオブジェクトブラウザに表示されてそんなメソッドが使えるか調べたいでガンスが、それにはどうしたらいいでしょうか?フンガー

376 :デフォルトの名無しさん:2018/08/11(土) 13:38:17.51 ID:KSv2Sz3+.net
>>375
受け手の変数をVariant型かObject型で定義しとけば処理実行時にArrayListオブジェクトを受け入れる
Scripting Runtimeとかのオブジェクトを実行時バインディングで使用するときとまったく同じ

.NETライブラリのパスを参照先に設定すれば、ArrayList型変数の宣言、インテリセンス入力、オブジェクトブラウザでのオブジェクトモデルのブラウジングも有効になるよ
ライブラリパスは自分で調べてね

377 :デフォルトの名無しさん:2018/08/11(土) 13:53:32.73 ID:cu5jnq2r.net
>>372
C#側をライブラリとして固定できなくなっちゃう

378 :デフォルトの名無しさん:2018/08/11(土) 14:18:44.31 ID:YyI+aygL.net
>>377
すまない
MyDotNetComLibと書いたのが悪かったようだね
これはライブラリじゃなくアプリケーションのつもりで書いた(MyApp)
キミが考えているだろう一般的な意味でのライブラリはアプリケーション内部で好きに参照してくれればいい

379 :デフォルトの名無しさん:2018/08/11(土) 14:34:57.92 ID:cu5jnq2r.net
>>378
ちょっと意味がわからん
比較関数をとっかえひっかえしたいときどうするの?

380 :デフォルトの名無しさん:2018/08/11(土) 14:38:33.82 ID:YyI+aygL.net
>>379
C#側でとっかえひっかえすればいい

互いのイメージに齟齬があるのかもしれない
まずVBAで書いたらどうなる?

381 :デフォルトの名無しさん:2018/08/11(土) 15:02:32.83 ID:cu5jnq2r.net
>>380
VBA側で
Function compare(a, b) As Boolean を書いて
ソートするときに compare を渡せるかって意味だけど。
「C#でとっかえひっかえ」っていうのはつまりC#のコードを都度書き加える、って意味だろ?
C#側でそんな粒度での改修はやりたくないよ。

382 :デフォルトの名無しさん:2018/08/11(土) 15:11:49.88 ID:YyI+aygL.net
>>381
そうか?
バックグラウンドで自動テストしてくれるC#のほうが高頻度の修正ではだいぶ有利だろう
逆にVBAでそんな粒度の改修なんて俺はやだよ
テストの工数で死んじゃうよ

383 :デフォルトの名無しさん:2018/08/11(土) 15:24:07.75 ID:cu5jnq2r.net
>>382
C#側に比較関数をいくつか書いたとして、VBAではどういう方法で比較関数を選ぶんだ?
それともVBA側に選択ないのか?

384 :デフォルトの名無しさん:2018/08/11(土) 15:26:35.53 ID:CkFe1vux.net
それってVBAでやる必要あるの?

385 :デフォルトの名無しさん:2018/08/11(土) 15:31:01.25 ID:759gB6fj.net
VBA側ではワークブックを渡すだけにしてあとは全部C#でやれっていう皮肉だろ
皮肉が面白くないってのは置いといて>>368を見てそれが理解できないのも相当ヤバい

386 :デフォルトの名無しさん:2018/08/11(土) 15:44:44.45 ID:YyI+aygL.net
>>383
比較関数を選ぶのはC#側だよ
当然VBA側じゃない

>>384
この手の処理はVBAでやる必要はまったくないよ
必要ないからC#でやろうって話をしている
ただしExcelそのものは優れたホスト環境なので捨てるのはもったいないし積極的に使いたい
なのでVBAはExcelとのインタラクションに集中してもらい
コアな仕事はすべてC#にディスパッチしてやってもらおうという考え方だね

387 :デフォルトの名無しさん:2018/08/11(土) 15:45:41.89 ID:cu5jnq2r.net
>>385
なんか1oもわからない
VBAでできないこと(コレクションのソート)をC#で補うという話なんだぜ。

388 :デフォルトの名無しさん:2018/08/11(土) 15:53:33.14 ID:cu5jnq2r.net
>>386
なんだ、やる仕事の数だけそれに対応したC#プログラムがあるってスタイルか。
それなら理解できるが極端だな。

389 :デフォルトの名無しさん:2018/08/11(土) 16:01:58.82 ID:YyI+aygL.net
>>388
そう
そしてそれ(仕事の数だけVBAプログラムがある)はVBAでも同じでしょ
だったらどうせ作るなら簡単なC#のほうがいいってこと
極端とは思わないけどね
コアロジックとインフラを可能な限り分離しようって発想はプログラマなら当たり前だから

390 :デフォルトの名無しさん:2018/08/11(土) 16:03:32.17 ID:WNr/dTgn.net
.NETFrameworkを使えばいいやんと言うのはわかるけどC#とか引っ込みつかなくなった知ったかのあがきにしか見えん w

391 :デフォルトの名無しさん:2018/08/11(土) 16:18:50.45 ID:KSv2Sz3+.net
VBA以外の言語を使用するアプリケーション開発が出来ない環境も普通にあったりするからね
なので、ArrayListやQueueやStackなど、.NETのオブジェクトであっても引数付きコンストラクタを使用しないクラスならば使えるってことは覚えといた方がいいよ

392 :デフォルトの名無しさん:2018/08/11(土) 16:20:22.67 ID:cu5jnq2r.net
>>389
VBA/ExcelはUIとデータホルダ役でしかなく、処理はC#ということ自体はわかる。
だけどきっかけはVBAのコレクションをソートするにはどうしたらいい、って話だった。
あんたのスタイルだと「さあここでソートしよう」なんて判断も要求もVBA側には要らなくなるな。

393 :デフォルトの名無しさん:2018/08/11(土) 16:56:58.80 ID:YyI+aygL.net
>>392
そうだ
VBA側には要らなくなるんだよ
これですっきりしたね

394 :デフォルトの名無しさん:2018/08/11(土) 18:48:11.02 ID:8odd+763.net
>>391
おまえがそういう畑を歩いてきたのはかまわないが、
そんな環境は「普通」ではないってこと知った方がいいよ

395 :デフォルトの名無しさん:2018/08/11(土) 18:57:02.54 ID:cu5jnq2r.net
まさかまたプロ様かね

396 :デフォルトの名無しさん:2018/08/11(土) 19:09:51.09 ID:BZfhgdqm.net
だから、何度も言ってるがユーザーインターフェースはExcelの方が良いんだよ。
業務のメインがExcelなんだから。
とすると.netの場合VSTOということになる。
で、わざわざそこまでする程のことがやりたいかどうかということになる。

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

Excel上だけどVBAではどうにもならないことをしたい場合ぐらいだな。

397 :デフォルトの名無しさん:2018/08/11(土) 19:14:22.31 ID:BZfhgdqm.net
>>394
残念ながらVBA使ってる所はそういう所多いよ。
アプリ1つ入れるのに申請が必要な所は多いし、却下となることもある。

どうしてもって時は申請するけど、VBAだけでどうとでもなるからな。
どうとでもならない時にはじめてVisualStudioを入れてもらう。

398 :デフォルトの名無しさん:2018/08/11(土) 19:35:19.38 ID:0HQvSoaX.net
>>397
うちはきついぞ
・利益を生まない投資は不可
・フリーソフトのインストール禁止
・エンドユーザーによるアプリ開発禁止
・一般職員のインターネット利用禁止

何かしたければプリインストールのExcel・Accessで何とかしろという体制

399 :デフォルトの名無しさん:2018/08/11(土) 19:49:44.13 ID:kovukvPe.net
>>398
何もしないで給料もらえるなら平気

400 :デフォルトの名無しさん:2018/08/11(土) 19:51:49.13 ID:YyI+aygL.net
>>391
いや無いだろ
仮にExcelがなくてもPowerShell、C#、VB.NET、VBS、JavaScriptあたりはまず間違いなく開発出来る

401 :デフォルトの名無しさん:2018/08/11(土) 20:00:51.06 ID:YyI+aygL.net
禁止されてるからで思考停止してないで使えるように根回しするなり
まともな権限をもらえる企業に転職したほうがいいぞ
俺だったらVBAしか使えないとか言われたらその日から転活だな
まあこれはVBAだけに限った話じゃなくてもっと一般的にも通じる話な
現代のビジネスマンは受け身の姿勢じゃ通用しない

402 :デフォルトの名無しさん:2018/08/11(土) 20:03:41.93 ID:BZfhgdqm.net
>>400
だからVisualStudioを入れられない環境はたくさんある。
メモ帳でもC#の開発はできるかもしれないけど、それじゃメリット無いんだよなあ。
他のソフトもそれ用のツールなりエディタなりが入れられなかったらメリットが殆ど無くなるな。

>>398
フリーソフトは駄目でむしろ有料ソフトは申請すれば入れられる場合もあるという所は多いだろうね。

403 :デフォルトの名無しさん:2018/08/11(土) 20:06:13.95 ID:7FFa3R0I.net
C#er プ

404 :デフォルトの名無しさん:2018/08/11(土) 20:07:50.49 ID:kovukvPe.net
>>398
一般職員とかあるけど、もしかして税金が給料になる人ですか?

405 :デフォルトの名無しさん:2018/08/11(土) 20:08:11.63 ID:BZfhgdqm.net
>>401
それは君がそれだけの人だってことだろ。
転職するかどうかは言語よりも仕事の内容や待遇の方が大きい。
それに、突然そういう会社になる訳じゃないから。
今の君はそういう会社には入ろうとしないし。
昔の君ならそういう環境が普通と思うだろ。

406 :デフォルトの名無しさん:2018/08/11(土) 20:08:29.31 ID:759gB6fj.net
VisualStudioは有料ソフトなんだから申請して入れればいいな

407 :デフォルトの名無しさん:2018/08/11(土) 20:12:49.57 ID:BZfhgdqm.net
>>398
エンドユーザーによるアプリ開発禁止ってのは、うちもそうだな。
そういえば。

あれだろ。
建前として、開発要員じゃないからだろ。
開発はベンダーにやらせるもので自らやるものじゃないってやつだろ。

408 :デフォルトの名無しさん:2018/08/11(土) 20:15:59.00 ID:BZfhgdqm.net
>>406
必要になることは無いと思うぜ。
VBAでほぼ何でも作れるから。

うちも建前では開発禁止なんだけど、入れてる奴はいる。

409 :デフォルトの名無しさん:2018/08/11(土) 20:33:59.79 ID:CkFe1vux.net
マクロ許可ってセキュリティ無しと同意

410 :デフォルトの名無しさん:2018/08/11(土) 21:12:18.46 ID:cu5jnq2r.net
>>398
それでよく競争になるね

よっぽどゆるい業界なのかソフトウェアで付加価値を生み出せないような業種なのか。
もしくはすでに負けつつあるか
まあそれは日本全体がそうなのかもしれんが

411 :デフォルトの名無しさん:2018/08/11(土) 21:32:22.07 ID:YyI+aygL.net
>>402
C#ならVSCodeでもサクラでも秀丸でもなんでもいいじゃん
まさかテキストエディタ1つも入ってないわけじゃないだろ
個人的にはメモ帳でもVBAよりはだいぶマシって感じるけど
PowerShellならISEが標準なのでおすすめ

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

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

>>410
上に立つ人間が競争に勝つことより自分の定年までリスクを避けて逃げ切りたいと考えてる会社なんだろう
こういう会社で後に残された若手~中堅の社員は悲惨だよ

412 :デフォルトの名無しさん:2018/08/11(土) 21:58:11.03 ID:Td/zZZ7D.net
了解しました

413 :デフォルトの名無しさん:2018/08/11(土) 23:28:48.62 ID:Ddi0PfCN.net
>>398
金融?
昔勤めてた証券会社がそんな感じだったな
初めての会社だったから何の疑問もなかったけど、今思えばクソだったな

414 :デフォルトの名無しさん:2018/08/11(土) 23:48:16.13 ID:cu5jnq2r.net
>>413
金融はマーケットに近い業務だったらエンドユーザによるエンジニアリングが命って部分もあるよ。
バック業務は違うかもしれないが>>398みたいなのは想像しにくい。

415 :デフォルトの名無しさん:2018/08/12(日) 07:12:24.35 ID:eDwYBbq+.net
>>414
あーそういや営業はネット見れたな
総務だったけど、な〜んにもできんかった
lhaca+だけ入ってたのが印象的だったわ(本部からこれだけは認められていた)

416 :デフォルトの名無しさん:2018/08/12(日) 08:07:48.87 ID:qQiXzzF2.net
確かに...

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

想像できないなw

417 :デフォルトの名無しさん:2018/08/12(日) 09:42:38.38 ID:IifAsj4h.net
【ロシア国防省】 日本が、地震に偽装して、核実験
http://rio2016.5ch.net/test/read.cgi/lifeline/1533983438/l50
【核クーデター】 地震頻発おかしい…地下核実験?
http://rio2016.5ch.net/test/read.cgi/earth/1533984228/l50

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

いろんな環境や言語で開発経験が有って
人に売れる程度のモノを作った経験がある前提で話してるのかと思ってたがそうじゃなかったんだな

419 :デフォルトの名無しさん:2018/08/12(日) 09:58:55.05 ID:qQiXzzF2.net
>>418
そこまで行くとプロ様だからこのスレでは出禁になってますよw

420 :デフォルトの名無しさん:2018/08/12(日) 10:36:29.18 ID:eDwYBbq+.net
>>418
大企業は本部が全てのシステムを作り、画一されたものが支社に配られるってパターンが多い
全てのツールは基幹システムに集約されているからvbaを使う必要は無い

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

vbaは開発コストが高い上に単価を安く見られがちなので
わざわざvbaで開発したものを売ろうって奇特な会社は少ないと思う

421 :デフォルトの名無しさん:2018/08/12(日) 10:36:48.72 ID:231D16m0.net
まじかよw

422 :デフォルトの名無しさん:2018/08/12(日) 11:17:08.28 ID:YMBuKX4y.net
>>420
中小・零細のほうが身軽だし金がない
ならVBAにこだわる理由なくね?

423 :デフォルトの名無しさん:2018/08/12(日) 12:00:36.42 ID:G3Q4bI/2.net
>>422
こだわってるんじゃなく、選択肢がないんだよ
・有償ソフトを買う予算は通らない
・フリーソフトのインスコ禁止

この環境で君は何を使って開発するのかな

424 :デフォルトの名無しさん:2018/08/12(日) 12:15:11.22 ID:eNrGPpfD.net
マクロ禁止にしててもvbsからC

425 :デフォルトの名無しさん:2018/08/12(日) 12:15:25.61 ID:eNrGPpfD.net
やっぱやめとこw

426 :デフォルトの名無しさん:2018/08/12(日) 13:01:03.65 ID:YMBuKX4y.net
>>423
いやいやメチャクチャこだわってるじゃんw
膨大な実績があってMSなど様々な企業や団体も採用してる無料のOSS製品やサービスなんていくらでもあるのになんでわざわざ禁止してエクセルVBA?
変なこだわりがあるとしか思えんなぁ

427 :デフォルトの名無しさん:2018/08/12(日) 13:08:20.22 ID:+KVVkWbV.net
禁止してるのはセキュリティ上の理由やろな
アホが上に立つとそうなるもんやで

428 :デフォルトの名無しさん:2018/08/12(日) 13:22:01.64 ID:YMBuKX4y.net
>>427
「セキュリティよく分からんけど何かあったとき俺が責任とるのやだから何もかも禁止」ってやつだね

というかこの場合も結局のところ「セキュリティにこだわってるからVBA以外禁止」ってことだろ
このセキュリティに対する(無意味な)こだわりを捨てれば選択肢はいくらでもある
やっぱりこだわり故の自縄自縛だな
選択肢はあるけど放棄してるだけ

429 :デフォルトの名無しさん:2018/08/12(日) 13:49:02.84 ID:uH5mjHL8.net
ここのVBAの質問に答えてる人が事務員って事はないでしょ
異常に詳しすぎるよね
本職のプログラマーよりも詳しい
それか本職の人たちはチョロチョロと色んなプログラムに手を出すけどVBA一本だから極めたとか?

430 :デフォルトの名無しさん:2018/08/12(日) 13:50:21.92 ID:+KVVkWbV.net
趣味でやってる人の方が詳しいもんだよこの業界

431 :デフォルトの名無しさん:2018/08/12(日) 13:59:48.32 ID:G3Q4bI/2.net
>>426
世間でどんなに実績があろうが、インターネットからダウンロードしたソフトを
業務マシンに入れることはセキュリティポリシーで禁止されてるわけ
だけど現場は手作業を自動化して楽したいわけ
だけど利益を生まないシステム開発には経費が下りないわけ
だからExcelに内蔵されてるVBAでこっそりシコシコやるしかないわけ
そうでなけりゃこんな時代遅れで融通の利かない言語を使うものかと

432 :デフォルトの名無しさん:2018/08/12(日) 14:00:42.95 ID:THZQVPj8.net
>>423
ソースだけだったらテキストファイルなんだからOSSは大丈夫だ

433 :デフォルトの名無しさん:2018/08/12(日) 14:01:32.73 ID:2G7L+2Mx.net
>>431
お前の能力では使いこなせないだけだろ
馬鹿死ねよ

434 :デフォルトの名無しさん:2018/08/12(日) 14:10:56.06 ID:lJZ67VC6.net
>>431
「現場は手作業を自動化して楽したいわけ だけど利益を生まないシステム開発には経費が下りない」

プレゼン力が低すぎだろ、効率が上がればコストカットが出来、利益産むだろ

435 :デフォルトの名無しさん:2018/08/12(日) 14:12:11.32 ID:YMBuKX4y.net
セキュリティーポリシー
ポリシーってようするにこだわりじゃん?
世界中で安全に無料のOSS製品を運用して利益を出している実績があるのだから
VBA以外のすべてを禁止しなければセキュリティを確保できないというのは大嘘なわけだ
だったらなんで禁止するかっていうと「こだわり」でしかないんだよね
選択肢はあるけどへんなこだわりで放棄してるだけ

436 :デフォルトの名無しさん:2018/08/12(日) 14:18:43.89 ID:Ghi+Nx4b.net
他の言語のスレは山ほどあるのにVBAに拘ってるのほお前だろw

437 :デフォルトの名無しさん:2018/08/12(日) 14:25:09.48 ID:E6mj5Hz2.net
>>431
同感
ただこっそり作ったのを業務フローに組込んで来る奴は勘弁
一生面倒見てくれるなら構わんけど

438 :デフォルトの名無しさん:2018/08/12(日) 14:34:45.54 ID:+KVVkWbV.net
ジャップらしい文化だな

439 :デフォルトの名無しさん:2018/08/12(日) 14:41:32.34 ID:G3Q4bI/2.net
>>437
引継ぎが悩み
自分の後任がVBAを解さない人、あるいは努力して身に着ける気力のない人ならアウト
ただVBAは仕様が枯れていてExcelバージョン間の互換性が高いし、
書籍や情報も多いし、コードがブックと一体化して実行環境を成しているから何とかなると思ってる

440 :デフォルトの名無しさん:2018/08/12(日) 14:42:58.75 ID:RzbuUHfm.net
>>431
自分で使う+こっそりやっていい
なら
C#、VB.NET、PowerShell、vbs
でいいやろ

441 :デフォルトの名無しさん:2018/08/12(日) 14:57:07.79 ID:auWodvpS.net
他の言語スレは見てないけどさぁ、なんでこうも他の言語をアレコレ強制しようとするやつが多いんだよ、ここは。
Excelを使うならVBA使うのが自然だろ?Excelを他の言語からVBAと同等に動かすこと出来るんかよ

ほんとうぜぇな。いつまでC#がいいだのパワーシェルだの、あげくはRubyがどーたらこーたらとか言ってんだよ
雑談したいんだったらそういうスレにでも逝けよ、さみしがりやの僕ちゃん連中は

442 :デフォルトの名無しさん:2018/08/12(日) 15:14:12.51 ID:EncC8RvO.net
> Excelを使うならVBA使うのが自然だろ?
いいえ

443 :デフォルトの名無しさん:2018/08/12(日) 15:29:44.44 ID:Ghi+Nx4b.net
>>442
なら他のスレに行けばいいのにw

444 :デフォルトの名無しさん:2018/08/12(日) 15:39:42.82 ID:uP5xtaXw.net
>>411
入ってないな。
エディタはメモ帳だ。

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

競争の頂点にいるような会社はリスクを取りたがらない。

445 :デフォルトの名無しさん:2018/08/12(日) 15:43:05.47 ID:uP5xtaXw.net
>>420
逆。
本部はベンダーに任せるから。
本部の人間は逆にVBAとかで組んでる。

勿論大規模ではない。
大規模なのは本部の人間は作ってはいけない。
ベンダーにやらせるからね。

446 :デフォルトの名無しさん:2018/08/12(日) 15:48:35.76 ID:uP5xtaXw.net
>>431
よく分かってるじゃん。
でも、やりようだからね。
結局。

使い勝手が良くなる手を打てなかった、もしくは打つ前にVBAを辞めたとも言える。

447 :デフォルトの名無しさん:2018/08/12(日) 15:52:52.87 ID:uP5xtaXw.net
>>441
一応、C#でのVSTOというものがあって、どうにも行き詰まった時にそれで突破できるかどうかぐらいは知っといても良いと思うよ。

448 :デフォルトの名無しさん:2018/08/12(日) 15:54:48.73 ID:uP5xtaXw.net
>>442
何も分かってない。
散々やり合って、Excel上で動かすという簡単なことが他言語では難しいことがはっきりしてる。

449 :デフォルトの名無しさん:2018/08/12(日) 16:20:55.60 ID:EncC8RvO.net
してない

450 :デフォルトの名無しさん:2018/08/12(日) 16:32:57.41 ID:+KVVkWbV.net


451 :デフォルトの名無しさん:2018/08/12(日) 16:42:39.01 ID:YMBuKX4y.net
日本がIT後進国になった理由を実感できるスレ

452 :デフォルトの名無しさん:2018/08/12(日) 16:54:23.52 ID:qQiXzzF2.net
全ての人間を満足させる方法なんてない。

ネット閲覧さえできずソフトもインストールできない環境の人はExcelとVBAで頑張れ。
インストール権限はないけどOSSのコピペならOKの人は自分に合ったライブラリをさがせ。
いろいろ導入できる人は好きなの使え。

453 :デフォルトの名無しさん:2018/08/12(日) 16:58:06.19 ID:pZvjUUz9.net
スレチだけどOSSなんか使わせてくれる会社あんの?
頭おかしいんじゃねえの

454 :デフォルトの名無しさん:2018/08/12(日) 17:02:21.92 ID:231D16m0.net
え?

455 :デフォルトの名無しさん:2018/08/12(日) 17:06:12.31 ID:foPG/4Nx.net
ギクッ

456 :デフォルトの名無しさん:2018/08/12(日) 17:09:00.64 ID:YMBuKX4y.net
>>452
ネットにも繋げない奴隷環境ならPowerShellのほうがいいぞ
部品の再利用性が高いから長引くほど有利

>>453
いままでで最高のジョーク

457 :デフォルトの名無しさん:2018/08/12(日) 17:13:31.65 ID:EkdmozDA.net
>>456
PowerShellはVBAの代わりにゃならん。
PowerShellも使うけど、役割が違う。

458 :デフォルトの名無しさん:2018/08/12(日) 17:16:07.41 ID:eDwYBbq+.net
>>426
>様々な企業や団体も採用してる無料のOSS製品
互換性の問題で、どっかの役所がこれをやめた

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

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

>453
レンタルサーバーのphpはオープンソースだよねって反論したら知るかボケって返ってきたわ
その辺は規模にも寄るだろう

459 :デフォルトの名無しさん:2018/08/12(日) 17:17:12.97 ID:EkdmozDA.net
>>456
ジョークって程じゃない。
ああいう意見が出てもおかしくない。

会社によるんでしょ。

460 :デフォルトの名無しさん:2018/08/12(日) 18:23:06.11 ID:qQiXzzF2.net
VBAが使えてネット閲覧OKというまあ普通の環境においては
ネットからサンプルコードをコピペしてきて使うことも当然あるだろ?
ソースをまるごと持ってくるのと何も変わらんよね。
インストールという行為がなければ区別つかないんだし。

461 :デフォルトの名無しさん:2018/08/12(日) 18:28:40.34 ID:E/Yl+18H.net
そうか
ネットに繋がらない環境でプログラミングするって凄い事だね
コードのスペルとか全部記憶してるのか

462 :デフォルトの名無しさん:2018/08/12(日) 18:39:35.81 ID:+G+aLZZB.net
>>461
まぁ1年も使えばVBAはネットなしでもスラスラ書けるのは強み

463 :デフォルトの名無しさん:2018/08/12(日) 18:45:45.36 ID:eDwYBbq+.net
>461
死ぬほどめんどくせーよ
worksheetとworksheets、
cells(y,x)、cells(x,y)、cell(x,y)、
何十回間違えたか検討もつかない
あと、再計算のcalculate

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

vbaの場合、全然発達してないからある意味ネット環境がなくてもいいって奇妙な強みがある

464 :デフォルトの名無しさん:2018/08/12(日) 18:48:04.27 ID:YMBuKX4y.net
>>462
VBAかんけいなくてわろた

>>461
なので開発環境のインテリセンスが優れている言語は強い
C#とPowerShellはいいね
VBAはご愁傷さまって感じ

465 :デフォルトの名無しさん:2018/08/12(日) 20:17:48.27 ID:EkdmozDA.net
>>460
サンプルコードコピペは有るけど完全に理解してる物に限るだろ。
ソース丸ごと持ってきて、それを全部読んで、全て自分の知識から既に分かってる内容ならOKだろう。

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

普通は賠償出来ないからこれまた申請やらが必要だろうな。

466 :デフォルトの名無しさん:2018/08/12(日) 20:23:11.69 ID:+KVVkWbV.net
社畜心得

467 :デフォルトの名無しさん:2018/08/12(日) 20:26:12.54 ID:EkdmozDA.net
>>463
何か、間違えの内容がごく初心者のやらかす内容だな。
さすがに、そんな間違いはあり得んから全く面倒くさくないな。
後、初心者が良くやらかすのがいきなりCellsで書き出して、ブックやシートを省略する奴。

基本ブックから省略せずに書くからそういうミスもあり得ん。
当然Withを使うかSetを使う。

468 :デフォルトの名無しさん:2018/08/12(日) 20:31:35.18 ID:qQiXzzF2.net
>>465
おいおいw
OSS利用なんてあたり前だろう
それにバグなら自分のコードだって出るんだし

469 :デフォルトの名無しさん:2018/08/12(日) 20:41:45.49 ID:pXo7RZSL.net
>>468
自分のバグとコピペにバグじゃ違うだろ。
それにコピペの場合、悪意あるコ−ドが入ってて機密情報が流出したら、自分が意思をもって流出させようとしたのと変わらんと思うが。

470 :デフォルトの名無しさん:2018/08/12(日) 20:47:30.42 ID:qQiXzzF2.net
>>469
じゃあ使わなければいい
保険をかけることにもコストがかかり、リスクを取らないリスクがあるってことも忘れるなよ

471 :デフォルトの名無しさん:2018/08/12(日) 20:49:14.70 ID:eDwYBbq+.net
>467
もちろんsetを使っているよ
withは入れ子できないのが気持ち悪くてあんまり使わない

ってか、Cライク言語でしばらく書いた跡の等価演算子とifインデント辺りの方がめんどい
if (foo = bar) then
と書いた跡のカッコを消す何とも言えない気分

472 :デフォルトの名無しさん:2018/08/12(日) 20:49:42.20 ID:pXo7RZSL.net
勘違いしてるかもしれんが、君の会社がOSSに対してどういうスタンスを取ってるかによる。
コピペからソース丸ごと持ってきてOKと解釈する所が間違いな。

君の会社だったら客から賠償されるだろうけど君はお咎め無しだろう。

473 :デフォルトの名無しさん:2018/08/12(日) 20:57:36.30 ID:pXo7RZSL.net
>>471
それは複数言語を同時に使えばどんな言語でも起こるだろ。
SQLだってOracleとAccessとSQLServerでそういうことは起こる。

474 :デフォルトの名無しさん:2018/08/12(日) 21:25:16.26 ID:sFpP4hR5.net
>>471
> withは入れ子できないのが気持ち悪くてあんまり使わない
入れ子はできるだろ
ただ入れ子にすると外側にアクセスできないのが不便
Pythonみたいに別名を付けられればいいのに

475 :デフォルトの名無しさん:2018/08/12(日) 21:54:05.73 ID:E/Yl+18H.net
VisualStudioを入れれる環境ならVBAは使わない?
そーいうことでもない?

476 :デフォルトの名無しさん:2018/08/12(日) 22:32:25.31 ID:eDwYBbq+.net
>>473
SQLの方がキツイね
あと、正規表現。細かいルールまで覚えてないと普通に死ぬ

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

>>475
そういうことでもない。VBAはエクセルの便利機能の一つ
VSからエクセルを触ることもできるけど、割と冗談抜きでめんどくさい。
一回やってみると方が良い。俺はかなり昔、二度とやらないと決めた。今は便利になってるかもしれないけど、そこまでは知らないなぁ

477 :デフォルトの名無しさん:2018/08/12(日) 23:56:34.44 ID:G3Q4bI/2.net
>>475
まず前提として、これは総務や営業の事務部門のねーちゃん・オッサンたちが
手元のPC作業を自動化したいという話だと思ってるんだけど・・・
そういう人らには、例えPCにVisualStudioが入っていたとしても、それでバリバリ
開発したり開発後のコードを管理・メンテしていくことは無理だろ?

んでこの手の社内システムの支援が行き届かない末端業務では
大抵のデータはExcelやAccessに入ってて、それを手操作で処理してるのが典型
よって手になじんだExcelやAccessのまんまVBA処理に移行するのが手っ取り早い
C#やPythonなどからExcelを動かす荒業もあるらしいけど、わざわざそうする理由がない

478 :デフォルトの名無しさん:2018/08/13(月) 06:22:10.19 ID:2dORgvS5.net
>>477
> 総務や営業の事務部門のねーちゃん・オッサンたち
が、VBA使えるという前提もどうかと思う

479 :デフォルトの名無しさん:2018/08/13(月) 07:05:16.10 ID:JKsq+WjD.net
 
畏(おそ)れ多くも森喜朗元帥閣下の有り難いお言葉:
 「オレはIT(いっと)のことはよく知らんがぁ
   時計をたった2時間早めるだけだろぉ?
  オレなら1分あれば済ませるぞぉ!
   サマータイムの何がそんなに難しいんだぁ?」
 
システム開発現場の勇ましい言葉:
 「畏れ多くも森元帥閣下のご下命を賜った以上
   現場SEは有り難いお言葉に勇気百倍
  デスマーチとバンザイ突撃を敢行いたします!」
  
 「マラソン選手さまが涼しい時間に走るためなら
   現場SEの千人や二千人死んでも本望です!
  私たちSEの生命など、虫けらと同じです!」
 
 「畏れ多くも森元帥閣下の有り難いご下命にしたがって
   最前線システム開発現場で殉職出来るとしたら
  現場SEとしてこれに勝る喜びはありません!」
 
日本という国では
 体育会系が一番偉い(森元帥閣下、田中理事長)
  文科系がその次で(財務省、教授会)
 理科系は最底辺の奴隷とされています(現場SE)
 

480 :デフォルトの名無しさん:2018/08/13(月) 07:29:38.19 ID:J9TEOhCW.net
>>478
ifとforとエクセル操作ならそんなに難しくない
前提として十分成立するレベル。
プログラミングで難しいのは環境の話。
で、環境はExcelなので事務屋は知ってる。
動くコード書くだけなら誰でもできる。

481 :デフォルトの名無しさん:2018/08/13(月) 08:06:20.93 ID:ultFGnC1.net
ネットつながってないならなにインストールしようが問題なくね?

482 :デフォルトの名無しさん:2018/08/13(月) 08:28:37.19 ID:wY5iWaZC.net
>>477
「ねーちゃん・オッサン」という言い方自体が印象操作だね。
部門部署はたくさんあるんだから。
「理系院卒のあんちゃん」と言ったら真逆の印象になるだろ?
まじめな話普通大学で少しはやってるだろ今どき。

483 :デフォルトの名無しさん:2018/08/13(月) 08:43:35.15 ID:2dORgvS5.net
>>482
総務、営業とかの事務職に就いてる
> 「理系院卒のあんちゃん」
ってどう見ても使えない奴だろ…
if, forなら簡単とか言うがそれはこんなスレを見てる奴らだから通じる話
わからん奴はとことんわからんし理解しようともしないよ

484 :デフォルトの名無しさん:2018/08/13(月) 08:48:20.03 ID:wY5iWaZC.net
>>483
「部門部署はたくさんあるんだから。」と書いてあるのにどうして総務と営業にこだわるのか。
俺にはさっぱりわからんね。

485 :デフォルトの名無しさん:2018/08/13(月) 08:56:36.93 ID:zRQUni3U.net
総務、営業、SEしかいない会社にいるからそれ以外の環境が想像つかないんだろ

486 :デフォルトの名無しさん:2018/08/13(月) 08:58:43.54 ID:FIAlujHy.net
>>481
ウィルスにかかればローカルサーバーのデータを消去・改ざんしつくすぞ

487 :デフォルトの名無しさん:2018/08/13(月) 08:59:29.64 ID:2dORgvS5.net
>>484
そう言うことは>>477に言ってくれよ…
いきなり前提変えて話しされても困る

488 :デフォルトの名無しさん:2018/08/13(月) 09:05:14.44 ID:G2gqSSs3.net
>>477を否定してるのに>>477の前提を変えられても困るって何の話?
日本語に弱い人かな?

489 :デフォルトの名無しさん:2018/08/13(月) 09:39:52.63 ID:2dORgvS5.net
前提変えて勝利宣言乙

これでいい? w

490 :デフォルトの名無しさん:2018/08/13(月) 09:47:32.84 ID:SL48Gldu.net
>>477
そういう利用目的なら
Excel・Accessからデータを吸い上げてデータ処理がカンタンな別言語で処理したほうがいい
わざわざそうする理由がない、というがそもそもエクセルのランタイム上でなんでもやろうとするほうが理由がない

491 :デフォルトの名無しさん:2018/08/13(月) 18:16:02.39 ID:0bLJ3vwb.net
VBA以外の言語が簡単に扱えるかどうかって大前提を無視し話をされてもなぁ

492 :デフォルトの名無しさん:2018/08/13(月) 18:36:50.62 ID:5JyLffZ3.net
>>491
お前が扱えないからって他の人も同じだと思うなよ

493 :デフォルトの名無しさん:2018/08/13(月) 18:45:28.00 ID:8SbgszM+.net
>>483
それすら理解できない人なら他の言語を勧めるのが間違いでしょうに。

494 :デフォルトの名無しさん:2018/08/13(月) 18:56:24.13 ID:2dORgvS5.net
>>493
そういう話をしてるけど?

495 :デフォルトの名無しさん:2018/08/13(月) 19:17:06.71 ID:G2gqSSs3.net
>>489
日本語に弱くて前提が変わって無いのに気づかないんだろうなw

しようがねえな。
まず>>477に対して君が 総務や営業の事務部門という前提で>>478を書いた。
しかし>>482は君にレスしたわけじゃない。
>>477に対して 総務や営業の事務部門という前提をも否定して部門部署はたくさんあると書いたんだろ。
>>482>>477の前提がおかしいぞと言ってるんだよ。

496 :デフォルトの名無しさん:2018/08/13(月) 19:23:34.58 ID:G2gqSSs3.net
>>482は最初から>>477の前提に立っていない。
むしろ>>477の前提を否定する発言だ。
だから>>482を否定したいなら>>482の前提に立って否定するか>>482と同じように>>482の前提自体を否定するしかない。

497 :デフォルトの名無しさん:2018/08/13(月) 19:28:34.14 ID:G2gqSSs3.net
しかし君は>>482>>477の前提に最初から立っていないということに気付いて無いから>>482の前提自体を否定するような発言も出来ないし、>>482の前提に立った上で反論するということも出来ない。

それで>>484や俺(>>488)が気付かせてあげようとしたんだが、まだ気付かないようだw

498 :デフォルトの名無しさん:2018/08/13(月) 19:33:44.73 ID:G2gqSSs3.net
プログラミング言語もさ、日本語と同じように言語なんだよな。
論理的に考えれば日本語だって理解出来る筈なんだよ。
まあ、論理的に考えられない人はプログラミングは向いて無いな。

499 :デフォルトの名無しさん:2018/08/13(月) 19:36:11.96 ID:2dORgvS5.net
>>495
印象操作とかぶち上げて指摘されたら部署ガーとか恥ずかしすぎるだろ w

500 :デフォルトの名無しさん:2018/08/13(月) 19:39:59.63 ID:J9TEOhCW.net
部門部署はたくさんある、の一言にここまで思いが込められていたことは俺もわからなかったよw

501 :デフォルトの名無しさん:2018/08/13(月) 19:41:32.91 ID:Nxc0x6KD.net
>>497
これだけアンカー付くと壮観だな
読む気になれんけど

502 :デフォルトの名無しさん:2018/08/13(月) 19:50:53.27 ID:G2gqSSs3.net
>>499
まだ分かってないw
>>482は一番最初から部署ガーと言ってる。
君が指摘する前からだw

503 :デフォルトの名無しさん:2018/08/13(月) 19:53:30.97 ID:G2gqSSs3.net
論理的な思考の出来ない奴が外いな。
碌なプログラムも組めないと想像できる。

504 :デフォルトの名無しさん:2018/08/13(月) 20:01:07.22 ID:aNd06r20.net
横だが碌なプログラムって表現もおかしいぞ

505 :デフォルトの名無しさん:2018/08/13(月) 20:05:36.20 ID:G2gqSSs3.net
>>504
確かに、でも意思の疎通はできるでしょ。

506 :デフォルトの名無しさん:2018/08/13(月) 20:10:08.14 ID:2dORgvS5.net
>>500
どう見ても印象操作がメインだしな
まあ、指摘されて引っ込みつかなくなったから>>502-503みたいに話そらそうと必死なんだろ w

507 :デフォルトの名無しさん:2018/08/13(月) 20:21:55.47 ID:wY5iWaZC.net
しかしまあ>>485が言うみたいな「総務、営業、SEしかいない会社」ってのも無視できない割合で存在してるんだろうな。
総務がSEやったりとか。

508 :デフォルトの名無しさん:2018/08/13(月) 20:28:11.20 ID:Nxc0x6KD.net
確かにSEもいない会社も普通に多いか
そしたらVBAでも大活躍だしVisualStudioで自作アプリなんて作った来たらキモいな

509 :デフォルトの名無しさん:2018/08/13(月) 20:36:20.55 ID:wBJkicYb.net
>>504
形容動詞「ろくな」が名詞「プログラム」を修飾して
連体修飾語「ろくなプログラム」になってるわけで
「ろくな」はまともなという意味だから
まともなプログラムも組めないと言ってるわけで
表現としておかしいところはなにもないと思った

510 :デフォルトの名無しさん:2018/08/13(月) 20:41:45.48 ID:lA4o8DKj.net
プログラミングはそれなりにできるけど、ExcelでGUIを作ろうという場合に参考になる書籍やサイトってない?
例えば、VBScriptからExcelをCOMで呼び出してのバッチ処理などは全然できる。
だから初歩的な分岐だとかループだとかは要らんわけで。

ざっと調べるとフォームとイベントが捌ければ何とかなりそうな気がする…んだけど何やればいいのか…

511 :デフォルトの名無しさん:2018/08/13(月) 20:45:37.57 ID:h5xj3US4.net
GUIならC#でもやんなよ
ExcelなんざCOMで呼び出しゃいいんだよ

512 :デフォルトの名無しさん:2018/08/13(月) 20:55:29.74 ID:lA4o8DKj.net
Amazonで見たところ、
「アプリ作成で学ぶExcelVBAプログラミングユーザーフォーム&コントロール」
とか、
「小さな会社のExcel VBA業務自動化アプリケーション作成・運用ガイド」
とかかなぁと思うけどレビューがあんま参考にならん…

>>511
「俺の、俺による、俺のためのアプリ」ならExcelなんか使わないよ。
「会社の皆が使うちょっとしたアプリ」なら、なるべく金かけず維持・メンテ・引継ぎしやすいものを選ぶのは当たり前。
HTAやPowerShell+WPFや.NETなんか使ったら一生メンテさせられるっての。

513 :デフォルトの名無しさん:2018/08/13(月) 21:01:25.25 ID:FIAlujHy.net
>>510
書籍は見たこと無い

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

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

俺はいつもこんな感じの構成

514 :デフォルトの名無しさん:2018/08/13(月) 21:04:43.90 ID:7g9HiHc/.net
自分がいる間動けば十分じゃないの
みんなで共有しないといけないやつならしゃーないけど

515 :デフォルトの名無しさん:2018/08/13(月) 21:11:44.08 ID:G2gqSSs3.net
>>506
メインw

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

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

悔しくて仕方ないかもしれんが今さら挽回は無理だな。

516 :デフォルトの名無しさん:2018/08/13(月) 21:29:13.87 ID:yoEa1bdZ.net
>>474
>ExcelなんざCOMで呼び出しゃいいんだよ

C#でExcel使ったことねーだろ

517 :デフォルトの名無しさん:2018/08/13(月) 21:30:17.15 ID:wBJkicYb.net
C#でもCOM呼び出すでしょうに

518 :デフォルトの名無しさん:2018/08/13(月) 21:30:43.45 ID:wBJkicYb.net
ラッパだろうけど

519 :デフォルトの名無しさん:2018/08/13(月) 21:43:57.21 ID:lA4o8DKj.net
>>513
どうも。手探りでやるしかないみたいねぇ…

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

俺はとりあえずExcelでそこそこのインターフェイスで作っといてリリースして放置したいわけ。
何か言われたら「Excelが得意」と周りに吹聴している馬鹿にやらせればいい。
「君の得意なExcelで作ったんだよ?できるんでしょ?」てね。

520 :デフォルトの名無しさん:2018/08/13(月) 21:51:12.63 ID:h5xj3US4.net
どうしてもVBAでGUIというなら図書館でVB6辺りの書籍を探してきた方がいいぞ
腐る程あるはず

521 :デフォルトの名無しさん:2018/08/13(月) 21:53:09.72 ID:iaB0L5Gv.net
>>519
引き継ぎもまともにできないただの自己顕示欲丸出しのキチガイじゃねーか

522 :デフォルトの名無しさん:2018/08/13(月) 22:14:11.12 ID:SL48Gldu.net
>>512
>なるべく金かけず維持・メンテ・引継ぎしやすいものを選ぶ
それでVBAという答えはないわ

523 :デフォルトの名無しさん:2018/08/13(月) 22:19:05.95 ID:wY5iWaZC.net
現実問題、ツールの引き継ぎなんてものが本当に発生するのか疑問だ。
ツールなしで手作業でやってたらどうするのさ?
後任者には仕事の仕様だけ教えて1から使ってもらうのが正しいんじゃないのか。

524 :デフォルトの名無しさん:2018/08/13(月) 22:21:49.65 ID:wBJkicYb.net
VBAは良いと思うけどね
MS Officeは使ってること多いし

525 :デフォルトの名無しさん:2018/08/13(月) 22:22:04.47 ID:SL48Gldu.net
>>519
要望がうざいならリリースしなきゃいい
つうか他人のボランティア前提でリリースしてんのかよ
こういう人がいるから社内統制で野良マクロ禁止にする会社が出てくるのかね

526 :デフォルトの名無しさん:2018/08/13(月) 22:22:44.45 ID:wBJkicYb.net
まあまあ、そう悪いように解釈するのをやめなさいな

527 :デフォルトの名無しさん:2018/08/13(月) 22:24:57.49 ID:712/1HlP.net
>>522
じゃあ君の答えとやらをきいておこうか

528 :デフォルトの名無しさん:2018/08/13(月) 22:48:41.94 ID:SL48Gldu.net
>>527
C#でもJavaでもPythonでもGoでもなんでもいいけどね
世界中で生産性・保守性が高いと認められて採用実績の多い道具を使う

529 :デフォルトの名無しさん:2018/08/13(月) 22:50:41.41 ID:2dORgvS5.net
>>515
そもそも>>477は総務、営業とかの事務部門の話ししてるだけで他の部門の話なんてしてない
他の部門がどうあれ総務、営業の事務部門の話が変わるわけじゃない
他の部門の話をしたいなら勝手にやっててくれ

> 悔しくて仕方ないかもしれんが今さら挽回は無理だな。
でかいブーメラン刺さってるぞ w

530 :デフォルトの名無しさん:2018/08/13(月) 22:52:19.35 ID:2dORgvS5.net
>>516
アンカーぐらいまともに打てよ…

531 :デフォルトの名無しさん:2018/08/13(月) 23:11:52.41 ID:Yid0Gj7C.net
>>528
あんた何もわかってないなあ
システム部門の支援を受けられず、オプソを入れることも許されず、
VisualStudioを買う予算も下りない
そんな事務部門が、シコシコと手作業でやってるExcel処理を
何とか自動化したいって話題だぜ?
どこからC#やJavaなんてものが出てくるんだよ

532 :デフォルトの名無しさん:2018/08/13(月) 23:40:25.56 ID:J9TEOhCW.net
>>515
お前のレスは悔しさが滲み出てるんですけどw

533 :デフォルトの名無しさん:2018/08/13(月) 23:49:52.57 ID:FIAlujHy.net
ってかどんなマクロ想像してるの?
俺の中ではこんなレベルなんだけど

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

534 :デフォルトの名無しさん:2018/08/13(月) 23:50:36.42 ID:FIAlujHy.net
ちなみに
MsgBox "完了〜〜〜!"
これは実際に見たコード。俺のセンスじゃないぞ

535 :デフォルトの名無しさん:2018/08/13(月) 23:53:07.84 ID:yUNLe23N.net
過去に既出かもしれないが相談させてほしい
ExcelにPDF内のテキストを取り込んで別工程の作業指示書作成を自動化出来ないかと相談された
取り敢えず「希望のコスト・納期では不可能」と切り捨てておいたが、個人的に興味は沸いたので手持ちのPDFをいくつか見たところFlateDecodeなるもので圧縮されている模様
会社のPCはセキュリティ上の制約で外部のdll(zlib.dllとか)を追加出来ないのだが、FlateDecodeの圧縮ストリームを展開してExcelに取り込む手段ないかな?

536 :デフォルトの名無しさん:2018/08/13(月) 23:55:07.23 ID:SL48Gldu.net
>>531
ほかと比べたら敗色濃厚だからそうやって条件つけて逃げるしかないよな
よほど頑固な会社か交渉力ゼロの無能でもなきゃMS公式のVSCodeとdotnet-sdkぐらいすぐOKでるし
全部NGなんてレアケースで比べる意味ねえよ?
まあ仮に禁止したところでVBAよりはるかに便利なPowerShellもC#もカンタンに使えるんだけどな

537 :デフォルトの名無しさん:2018/08/14(火) 00:06:03.69 ID:n9VvPXNA.net
>>531
誰もそこまで限定してないと思うよ。
制約がキツい極端から制約がユルい極端までいろんな環境があると思うが、
あんたのは「制約が一番キツい環境を前提にして話せ」という主張に見える。

それはさすがに同意を得られないってことだ。

538 :デフォルトの名無しさん:2018/08/14(火) 00:06:17.05 ID:5GU0qsYr.net
>>535
https://msdn.microsoft.com/ja-jp/library/system.io.compression.deflatestream(v=vs.110).aspx

539 :デフォルトの名無しさん:2018/08/14(火) 00:06:22.66 ID:nfaXmVxR.net
エクセルの処理を自動化するならVBAが最適でしょうに

540 :デフォルトの名無しさん:2018/08/14(火) 00:08:27.40 ID:nfaXmVxR.net
普通に同意できるけどね
むしろ他の言語でやろうとするのはおかしいと思う

541 :デフォルトの名無しさん:2018/08/14(火) 00:10:00.63 ID:nfaXmVxR.net
Goが生産性高いからとかやばいでしょ

542 :デフォルトの名無しさん:2018/08/14(火) 00:13:13.65 ID:UeTN7rkw.net
VS眺めてみたら、普通にC#でエクセルアドイン作れるのな
これぐらい楽なら有りかも?

543 :デフォルトの名無しさん:2018/08/14(火) 00:19:55.01 ID:5GU0qsYr.net
業務の大半はExcelに依存しないので言語もExcelに依存しない使いやすいものを使えばいい

544 :デフォルトの名無しさん:2018/08/14(火) 00:27:30.30 ID:UeTN7rkw.net
>業務の大半はExcelに依存しないので
>言語もExcelに依存しない使いやすいものを使えばいい

ゆでたまご理論かな?

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

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

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

Ruby での表示には、Selenium WebDriver で、ブラウザを操作して使っている

546 :デフォルトの名無しさん:2018/08/14(火) 05:59:12.23 ID:IYCmiTRH.net
>>545
おいおまえ、Selenium WebDriverでエクセルの自動化をできるか?

547 :デフォルトの名無しさん:2018/08/14(火) 06:15:13.42 ID:5GU0qsYr.net
>>546
???

548 :デフォルトの名無しさん:2018/08/14(火) 06:35:25.29 ID:IYCmiTRH.net
>>547
Selenium WebDriverを使って
エクセルの自動化をできますか?
と聞いてるんです

549 :デフォルトの名無しさん:2018/08/14(火) 06:52:47.31 ID:5GU0qsYr.net
>>548
???

550 :デフォルトの名無しさん:2018/08/14(火) 06:59:46.51 ID:IYCmiTRH.net
>>549
S e l e n i u m W e b D r i v e r を 使 っ て

エ ク セ ル の 自 動 化 を で き ま す か ?

551 :デフォルトの名無しさん:2018/08/14(火) 07:00:21.04 ID:IYCmiTRH.net
なんでわからないんだろ

552 :デフォルトの名無しさん:2018/08/14(火) 07:06:31.74 ID:KIUgAfbf.net
あれは壮大なスレチなのでスルー

553 :デフォルトの名無しさん:2018/08/14(火) 07:06:49.00 ID:7g7tSC0n.net
聞き方が悪いんじゃね?

554 :デフォルトの名無しさん:2018/08/14(火) 07:08:04.15 ID:IYCmiTRH.net
>>553
S e l e n i u m   W e b D r i v e r を 使 っ て
エ ク セ ル の 自 動 化 を で き ま す か ?

こうですか?わかりません

555 :デフォルトの名無しさん:2018/08/14(火) 07:08:55.18 ID:IYCmiTRH.net
Selenium WebDriverを使って
エクセルの自動化をできるか聞きたいのですが
どう聞けばいいでしょうか?

556 :デフォルトの名無しさん:2018/08/14(火) 07:36:51.87 ID:z2MeDRaG.net
↑この人もしかしてカキコミスのレスにめちゃくちゃ食いついちゃったってこと?
そしてそれに気が付いてない?

557 :デフォルトの名無しさん:2018/08/14(火) 07:38:14.66 ID:IYCmiTRH.net
純粋な疑問としてSelenium WebDriverを使って
エクセルの自動化をできるか聞きたいのですが

558 :デフォルトの名無しさん:2018/08/14(火) 07:38:38.70 ID:IYCmiTRH.net
できるんですか? できないんですか? はっきりしてください!

559 :デフォルトの名無しさん:2018/08/14(火) 07:47:59.49 ID:9xPZi6uk.net
>>529
バーカw
だから>>482>>477を否定していると何度言っても分からない。
他の部門の話(>>482)に噛みついたのはお前。

560 :デフォルトの名無しさん:2018/08/14(火) 07:50:58.08 ID:9xPZi6uk.net
>>532
論理的に明らかに相手が間違ってる場合、悔しいとは感じないだろ。

ピエロを面白がってるだけだな。

561 :デフォルトの名無しさん:2018/08/14(火) 07:57:41.73 ID:9xPZi6uk.net
RubyもSelenium Web Driverも使えるけどどっちも会社じゃ入れられ無いけどな。

交渉とかバカが言ってるがVBAで同じことが十分出来るのに何で交渉しなきゃならんのだ?
交渉するのはどうにもならなくなってからだ。

562 :デフォルトの名無しさん:2018/08/14(火) 08:35:17.68 ID:1ZcqdWcx.net
誤爆に噛み付いてなんだこいつ

563 :デフォルトの名無しさん:2018/08/14(火) 08:35:41.90 ID:z2MeDRaG.net
楽にできるように動いてどうしてもダメだったらあるものでやるってのが常識的で賢い判断
最初から金と労力をかける方向に進もうとするとはもしかしてビジネスを知らん人かな?公務員?

それと他がダメだったとしてもpowershellとC#で解決したほうが楽

564 :デフォルトの名無しさん:2018/08/14(火) 08:41:25.34 ID:9xPZi6uk.net
>>563
だからVBAじゃないと使う人が不便な場合が多いと何度書いたら・・・

Excel上からプログラム動かすのがVBAで組む場合の通常。
それにブック1つで完結出来ないのもダメダメだ。

565 :デフォルトの名無しさん:2018/08/14(火) 08:44:30.97 ID:vNNJJh8I.net
作ったコードから、モジュール/クラス/フォーム一覧と、使われている変数、関数(引数/返り値付)の一覧も表示してくれるツールはありませんか?

それを作ってくれるコードでもいいけど。
コードを書いてるエディターのWindowsのコード自体を取得する関数ってあるかな?
なければ自分でコピペしてそれを引数に自作関数に代入かな?

566 :デフォルトの名無しさん:2018/08/14(火) 08:45:16.22 ID:vNNJJh8I.net
いわゆるJavadocみたいな。

567 :デフォルトの名無しさん:2018/08/14(火) 08:46:39.54 ID:vNNJJh8I.net
https://ja.wikipedia.org/wiki/Javadocより

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

「多くのIDEは自動的にJavadoc HTMLを生成する機能を備えている。」らしいですよ。

568 :デフォルトの名無しさん:2018/08/14(火) 08:50:21.80 ID:i5ysOntH.net
>>563
総務のおねーちゃんにPowerShellとC#で開発しろって言うのか?
てか、なんでVBAのスレで他言語推しするんだよお前は

569 :デフォルトの名無しさん:2018/08/14(火) 08:54:02.58 ID:vLkntRUX.net
C#がもっと使い勝手いいExcelのライブラリあればいいんだがなぁ

570 :デフォルトの名無しさん:2018/08/14(火) 08:55:00.65 ID:TB9AjC50.net
>>559
否定?
他にあるというだけで否定にはなってないんだが w
論理的思考能力がないのかな?

571 :デフォルトの名無しさん:2018/08/14(火) 08:56:19.05 ID:TB9AjC50.net
>>560
> 論理的に明らかに相手が間違ってる場合
ブーメラン過ぎる w
笑い取ろうとしてるのか?

572 :デフォルトの名無しさん:2018/08/14(火) 08:57:45.09 ID:9xPZi6uk.net
>>565
今、通勤中でコード書けないけどApplication.VBEを弄れば出来る。
そんなに苦労はしない。

ただ、VBEを弄るのはセキュリティ的に勧めないし、Excelの場合はデフォルトでは弄れないようになっている。

573 :デフォルトの名無しさん:2018/08/14(火) 09:00:45.63 ID:TB9AjC50.net
>>565
http://www.hotdocument.net/document/Excel2016.html

574 :デフォルトの名無しさん:2018/08/14(火) 09:01:03.44 ID:9xPZi6uk.net
>>570
駄目だこりゃ、論理など全く無いようだ。
>>477は他に無いという立場で書いてる。
だから他にあれば否定している。

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

小学生からやり直したら?

575 :デフォルトの名無しさん:2018/08/14(火) 10:55:45.58 ID:rExPS0w4.net
>>555
「毛細血管が一杯詰まってるとこ脇!」と言う所が聞き取り辛いんです

576 :デフォルトの名無しさん:2018/08/14(火) 10:58:56.44 ID:TB9AjC50.net
>>574
> >>477は他に無いという立場で書いてる。
どこをどう読んだらそんなアホな解釈できるんだ? w

> 小学生からやり直したら?
お前がな

577 :デフォルトの名無しさん:2018/08/14(火) 11:45:11.94 ID:n9VvPXNA.net
まあまあ。

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

これでは「そんな前提には乗っかれないよ」という反論が出てくるのもしょうがないよね。

578 :デフォルトの名無しさん:2018/08/14(火) 12:08:20.74 ID:KfIbP3u9.net
乗っかろうよ
ホント君たち天の邪鬼だよね

579 :デフォルトの名無しさん:2018/08/14(火) 12:08:47.58 ID:KfIbP3u9.net
悪い意味で素直じゃない

580 :デフォルトの名無しさん:2018/08/14(火) 12:10:38.72 ID:QgSZqWcZ.net
間違った前提を元に議論する不毛さよ

581 :デフォルトの名無しさん:2018/08/14(火) 12:11:47.96 ID:KfIbP3u9.net
捻くれた態度取るのがしょうがないと
開き直るその態度が気に入らないのよ〜

582 :デフォルトの名無しさん:2018/08/14(火) 12:13:39.53 ID:KfIbP3u9.net
>>580
前提に正しいも間違いもない
意見に良いも悪いもない
チミは議論というものをてんで理解していない

583 :デフォルトの名無しさん:2018/08/14(火) 12:14:48.54 ID:KfIbP3u9.net
VBAって良いよね
これがスレの総意です

584 :デフォルトの名無しさん:2018/08/14(火) 12:16:46.61 ID:QgSZqWcZ.net
わかった
ここからはID:KfIbP3u9は死ぬべきだという前提を元に議論しよう

>>582
良い悪いかじゃなく意味がないって言ってんだよ死ね

585 :デフォルトの名無しさん:2018/08/14(火) 12:24:01.35 ID:3nAHhFbt.net
エクセルを使う業務ってメモ帳代わりとか電卓以外に何?
そんなに大切な事には使わないよな
そんな会社ないよな

586 :デフォルトの名無しさん:2018/08/14(火) 12:27:09.59 ID:JduObfEP.net
>>564
ぜんぜん不便じゃないけど?
コマンド打つだけ
ファイルダブルクリックするだけ
幼稚園児でもできるよね

587 :デフォルトの名無しさん:2018/08/14(火) 12:31:51.96 ID:JduObfEP.net
エクセル開かなきゃ動かないツールのほうが面倒だよ
開くの遅すぎだしシートベースのUIは不恰好で操作感も直感的じゃないし
ちょっとした誤操作でもすぐぶっ壊れるしね

588 :デフォルトの名無しさん:2018/08/14(火) 12:35:36.52 ID:n9VvPXNA.net
>>582
議論ってことで言えば
「前提を受け入れられてからその前提で話を進めろ」ってことになるけどね。
そうしないと誰も乗ってこないのは当然だろう。

議論じゃなくて「俺はこういう前提でこういう結論を出した」で終わるならOKだが。

589 :デフォルトの名無しさん:2018/08/14(火) 12:38:37.78 ID:9xPZi6uk.net
>>576
日本語分からないだけじゃね―のかよw
事務部門と限定しているのが分からないのかね?
>>477が事務部門以外を前提にしてたら、最初のお前の>>483自体成り立たないし、
前提変えたとか言ってる自分の意見も自ら否定していることになるんだがw

590 :デフォルトの名無しさん:2018/08/14(火) 12:42:26.13 ID:n9VvPXNA.net
>>585
むちゃくちゃ重要な業務に
継続的に
使われているよ

それだけじゃなく
複数の部署間や複数の会社間に
エクセルを介した依存関係が
双方向に
発生しているよ

591 :デフォルトの名無しさん:2018/08/14(火) 12:46:11.48 ID:9xPZi6uk.net
>>588
いや、前提自体を否定する議論も成り立つわけで、>>482の発言はそれ。
だから>>483>>482の内容をよく見て頓珍漢なことを言わなければ良かった。
だが、自分が頓珍漢なことが分からず、結果として>>482の前提に乗れてもいないし、>>482の前提自体も否定していない。

592 :デフォルトの名無しさん:2018/08/14(火) 12:51:46.61 ID:TB9AjC50.net
>>589, >>591
結局限定してる根拠示せずに喚いてるだけかよ
そもそも総務と営業だけの会社なんてあるのか?
って考えたらわかるだろうに w

593 :デフォルトの名無しさん:2018/08/14(火) 12:56:08.09 ID:v5onVyOv.net
>>590
マクロ許可してねって言って使い回してるの?
そんなのでセキュリティ大丈夫なの?

594 :デフォルトの名無しさん:2018/08/14(火) 14:11:04.58 ID:n9VvPXNA.net
>>593
なんのこと?

595 :デフォルトの名無しさん:2018/08/14(火) 14:19:40.45 ID:ExfA2How.net
なんでこんな粘着質な奴ばっかり集まってくるんだ

596 :デフォルトの名無しさん:2018/08/14(火) 14:39:09.50 ID:UeTN7rkw.net
>>595
夏休みの上に天気悪いからな
みんな超暇なんだよ
多分今質問投げるとすげー返答が帰ってくると思うぞ

597 :デフォルトの名無しさん:2018/08/14(火) 17:09:16.26 ID:YTiF5JLC.net
プログラミング初心者です。
ちゃんと触ったのは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で使われる同名プロパティと同じ意味として捉えていいのでしょうか。

598 :デフォルトの名無しさん:2018/08/14(火) 17:25:55.06 ID:QgSZqWcZ.net
>>597
同じものとして捉えて大丈夫です
DOM(Document Object Model)でググりましょう

599 :デフォルトの名無しさん:2018/08/14(火) 17:29:04.68 ID:UeTN7rkw.net
>>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

600 :デフォルトの名無しさん:2018/08/14(火) 17:48:00.72 ID:oMGTI9sO.net
知らないなら黙ってればいいのに

601 :デフォルトの名無しさん:2018/08/14(火) 17:59:15.81 ID:UeTN7rkw.net
>>600
では正確な回答をどうぞ

602 :デフォルトの名無しさん:2018/08/14(火) 18:38:16.94 ID:oMGTI9sO.net
>>597
JavaScriptで使われる同名プロパティと同じ意味です


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

そもそも誰もそんなことは聞いてねーんだよ
質問文読めてるか?実は日本語ネイティブじゃないのか?
知らないなら黙ってろクズが

603 :デフォルトの名無しさん:2018/08/14(火) 18:57:26.07 ID:Uz6OHk+w.net
兄弟じゃないよ

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

VBAerには難しいかな?

604 :デフォルトの名無しさん:2018/08/14(火) 18:57:49.13 ID:9xPZi6uk.net
>>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などと初期化する。

605 :デフォルトの名無しさん:2018/08/14(火) 18:59:35.38 ID:r5upUQvA.net
開発ソフトをインストール出来ない環境で致し方なくVBAを使ってる人がほとんどだと思う。

606 :デフォルトの名無しさん:2018/08/14(火) 19:06:43.38 ID:9xPZi6uk.net
InternetExplorer.Applicationは少し特殊でね。
HTMLのソース内の改行も1つのノードとしてカウントする。
だからMSXML2.XMLHTTPとはノード番号が違ってしまうことがある。

607 :デフォルトの名無しさん:2018/08/14(火) 19:08:06.90 ID:oMGTI9sO.net
>>603
これは俺が間違えてたすまん
兄弟だけじゃなかったね。甥っ子とかも含まれてたね

子要素という回答は間違いなくあり得ないが

608 :デフォルトの名無しさん:2018/08/14(火) 19:14:50.89 ID:oMGTI9sO.net
自身と自身の子孫の子孫も入るね

609 :デフォルトの名無しさん:2018/08/14(火) 19:19:26.04 ID:TB9AjC50.net
>>604
小学生以下乙
お前が後付で条件付けても何も変わらんぞ w

610 :デフォルトの名無しさん:2018/08/14(火) 19:37:03.61 ID:UeTN7rkw.net
>>602
怒ってて笑ったw
どちらが正しいかは回答者の返答待ち

611 :デフォルトの名無しさん:2018/08/14(火) 19:45:53.63 ID:9xPZi6uk.net
>>609
もしかして、言い負かされるのが嫌だから今になっても論理破綻に気付いてないフリをする作戦か?

後付け?
何を言ってるんだ?

612 :デフォルトの名無しさん:2018/08/14(火) 20:05:01.43 ID:YTiF5JLC.net
>>598,602
検索したらすぐ出てきました!
JavaScriptと共通の仕様だったんですね

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

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



</form>

と言った感じです。

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

>>604
表示されるようになりました。ありがとうございます。
もしInternetExplorer型を利用する場合、マクロを使う人全員が各々参照設定を変更する必要があるのでしょうか。

613 :デフォルトの名無しさん:2018/08/14(火) 20:07:05.64 ID:HhG+br3u.net
>>611
> もしかして、言い負かされるのが嫌だから今になっても論理破綻に気付いてないフリをする作戦か?
それお前な w

614 :デフォルトの名無しさん:2018/08/14(火) 20:13:52.93 ID:1VnLB036.net
VBer完敗だな
VBAでもHTMLやJavascriptが絡むと全然ダメダメなのね
やっぱり一つの事しか出来ないと発展しないな

615 :デフォルトの名無しさん:2018/08/14(火) 20:16:39.89 ID:9xPZi6uk.net
>>612
参照設定はブック毎だからそのブックを使うなら問題無い。
しかしソースコードの配布の場合やモジュールの配布だったらそれぞれが参照設定する必要がある。

GetElement系は4つ有るけど1つだけを返すのはGetElementByIdだけ。
他はGetElement"s"というようにsが付いている。

616 :デフォルトの名無しさん:2018/08/14(火) 20:31:45.14 ID:oMGTI9sO.net
だからなんで聞いてもいないことをいきなり語り出すの?
しかも半端な知識で

617 :デフォルトの名無しさん:2018/08/14(火) 20:33:26.52 ID:9xPZi6uk.net
>>613

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

A「文系大学ってのは前提として教育学部とか文学部のねえちゃんが入る所という話だと思ってるんだけど」
B「ねえちゃんというのは印象操作だね。学部はたくさんあるんだから。法学部のあんちゃんと言ったら真逆の印象になるだろ」
C「教育学部、文学部にいる法学部のあんちゃんって何だ?」←これお前。

618 :デフォルトの名無しさん:2018/08/14(火) 20:34:00.47 ID:vNNJJh8I.net
自作関数で
getFishみたいなのを作るとき
魚が複数だと想定したときどうしますか?
英単語ではfishの複数形は同型のfishです。

619 :デフォルトの名無しさん:2018/08/14(火) 20:35:10.45 ID:vNNJJh8I.net
>>572
ありがとうございます。
できるのですね。
どうしたらいいか教えていただけませんか?

>>573
なんか金を払わないと使えないようですね。
こんなケチくさいVBAの言語ってまるでウンチですねw

620 :デフォルトの名無しさん:2018/08/14(火) 20:39:14.81 ID:TB9AjC50.net
>>617
また違う話をしだしたぞ w

621 :デフォルトの名無しさん:2018/08/14(火) 20:43:07.05 ID:UeTN7rkw.net
>>618
普通はitem等の抽象的な単語になるので、複数形がitemsになるだけ
fishの複数形は知らなかったけど、それは考えた事がないな

どうしてもバッティングしてしまうなら、fish_multiなどアンダーバー付けて判別できるようにすると思う
多分一生その事態に出くわすことはないと思う

622 :デフォルトの名無しさん:2018/08/14(火) 21:17:59.82 ID:hL6geYDs.net
> fish_multi

fish_multi wwwwwwwwwwwwww

623 :デフォルトの名無しさん:2018/08/14(火) 21:20:02.20 ID:CO1HK5vR.net
英語のテストじゃないんだからルール指向でfishsでOKよ
外人プログラマでもわりとこう書く人が多い

624 :デフォルトの名無しさん:2018/08/14(火) 21:23:33.49 ID:UeTN7rkw.net
>>622
すまん、アメリカ語苦手なんや

>>623
ええんか?ええんやったら遠慮なくやるぞ

625 :デフォルトの名無しさん:2018/08/14(火) 21:31:54.39 ID:wlzWc6Tu.net
>>623
せめてfishesとかにしようぜ

626 :デフォルトの名無しさん:2018/08/14(火) 21:53:13.66 ID:9xPZi6uk.net
>>620
全く同じ構造の話。
お前はプログラミングの才能無いよ。

627 :デフォルトの名無しさん:2018/08/14(火) 22:13:53.86 ID:TB9AjC50.net
>>626
総務、営業の話に「理系院卒」とか言ってたのをお忘れ? w

628 :デフォルトの名無しさん:2018/08/14(火) 22:28:07.20 ID:n9VvPXNA.net
>>627
そりゃもちろん理系院卒のあんちゃんたちもExcelとVBAを使っている実情があるから言ってるんじゃんか。
その実情を踏まえないから印象操作だとなったんでしょ。

629 :デフォルトの名無しさん:2018/08/14(火) 22:41:39.16 ID:9xPZi6uk.net
>>627
もう1度>>482を読み返せ。
>>482は「部門部署はたくさんあるんだから。」と書いてる。
総務、営業の話を否定していると何度言ったら・・・

630 :デフォルトの名無しさん:2018/08/14(火) 22:42:31.28 ID:9xPZi6uk.net
>>627
まずな、>>477に対してお前が>>478を書いた。
その後に>>482が書かれたわけだが、しかし>>482はお前にレスした文章じゃない。
アンカーをよく見ろ。

631 :デフォルトの名無しさん:2018/08/14(火) 22:42:56.82 ID:9xPZi6uk.net
>>477の前提に立った>>478>>477の前提を否定した>>482でブランチは>>477から2つに別れてる。

632 :デフォルトの名無しさん:2018/08/14(火) 22:48:33.53 ID:TB9AjC50.net
>>628
話の流れが読めないの?
>>482>>617が同じ構造かどうかの話な

633 :デフォルトの名無しさん:2018/08/14(火) 22:50:32.70 ID:TB9AjC50.net
>>629-631
あれ?
>>482>>617が同じ構造かどうかの話はもういいの?
色々大変だね w

634 :デフォルトの名無しさん:2018/08/14(火) 22:52:30.79 ID:FxNfwjJS.net
煽り合いやめーや

635 :デフォルトの名無しさん:2018/08/14(火) 22:53:08.09 ID:5GU0qsYr.net
俺がまだ理系学生だったころ
Windowsを使ってる仲間がそもそも居なかった
データ解析、シミュレーション、実験機器制御、ビジュアライゼーション、レポーティング、プレゼンテーション、ツール作成
いろいろやったけどVBAは1度も使ったことがなかった
Excelも社会人になってはじめて使った

636 :デフォルトの名無しさん:2018/08/14(火) 22:53:20.88 ID:FxNfwjJS.net
                              / ̄ ̄ ヽ,
           喧嘩をやめゅてぇ〜♪    / 丶 /   ',
                         ノ//, {゚}  /¨`ヽ {゚} ,ミヽ
 ふたりをとゅめてぇ〜♪        / く l   ヽ._.イl    , ゝ \
  .ni 7                  / /⌒ リ   ヘ_/ノ   ' ⌒\ \
l^l | | l ,/)                (   ̄ ̄⌒          ⌒ ̄ _)
', U ! レ' /   / ̄ ̄ ヽ,       ` ̄ ̄`ヽ           /´ ̄
/    〈   /        ',        .n   .|   ・    ・   |
     ヽっ{゚}  /¨`ヽ {゚},       l^l.| | /)ノ           |
  /´ ̄ ̄ .l   ヽ._.イl  ',      | U レ'//)           ノ
/  ィ-r--ノ   ヘ_/ノ   ',    ノ    /          ∠_
   ,/              ヽ rニ     |  f\      ノ     ̄`丶.
  丿'               ヽ、  `ヽ   l |  ヽ__ノー─-- 、_   )
. !/                  ヽ、 |   | |           /  /
/                      !jl   |ノ          ,'  /
 .l                      l    |          |   ,'
 .|  ・                  丶   ヽ         |  /
 !                 ア!、,  |   |        ,ノ 〈
./            ・   ./'  (  ヽ_____ノ        ヽ.__ \
                 /   ヽ._>              \__)

637 :デフォルトの名無しさん:2018/08/14(火) 23:02:13.52 ID:n9VvPXNA.net
>>632
同じ構造に見えるけどそれが何か?

638 :デフォルトの名無しさん:2018/08/14(火) 23:03:35.49 ID:n9VvPXNA.net
>>632

>>482
>>617のBまで

が同じ構造ね

639 :デフォルトの名無しさん:2018/08/14(火) 23:05:45.68 ID:9xPZi6uk.net
>>633
バーカw

同じ構造であることを説明してるんだよ。
何から何まで理解出来ねえ奴だな。

640 :デフォルトの名無しさん:2018/08/14(火) 23:11:16.42 ID:1MVGxjCr.net
朝から晩まで延々とくそどうでもいいような話、よく続けられるなお前ら

641 :デフォルトの名無しさん:2018/08/14(火) 23:16:25.80 ID:hMCb6LVb.net
もうスレ立てして別でやれよ

642 :デフォルトの名無しさん:2018/08/14(火) 23:28:07.31 ID:TB9AjC50.net
>>637-639
>>482の「理系院卒」が>>617の何に対応するのか言ってみ

643 :デフォルトの名無しさん:2018/08/14(火) 23:31:25.07 ID:n9VvPXNA.net
>>642
法学部だけど?

644 :デフォルトの名無しさん:2018/08/15(水) 00:16:08.70 ID:o8lgioa7.net
>>643
まだ気づかないのか w

なら、>>482の「部門部署」が>>617の何に対応するのか言ってみ

645 :デフォルトの名無しさん:2018/08/15(水) 07:45:58.25 ID:GNnFHxQ5.net
夏だなあ

646 :デフォルトの名無しさん:2018/08/15(水) 07:50:26.11 ID:+0zUs7od.net
>>644
何言ってんだ?
法学部 ⇔ 理系院卒
学部 ⇔ 部門部署
という対応関係だろ。
>>617がどういう意図で書いたかは知らんが俺は>>482でそういうつもりで書いた。

647 :デフォルトの名無しさん:2018/08/15(水) 08:10:19.35 ID:MbmwE69Z.net
>>646
だよな。
誰がどう見てもそれ以外無いでしょ。
日本語が分からない奴なら理解出来ないかもしれんが。

>>642
>>644
言質を取ってから挙げ足を取るようなことは辞めたら?
明らかなんだから確認する必要無いだろ。
それとも本当に理解出来てないのかもしれんが。

648 :デフォルトの名無しさん:2018/08/15(水) 08:40:51.81 ID:nAEL3LGJ.net
不毛だな
お前らの頭の話だ

649 :デフォルトの名無しさん:2018/08/15(水) 08:54:43.18 ID:9VsLoehT.net
>>648
また髪の話してる…

650 :デフォルトの名無しさん:2018/08/15(水) 09:06:01.31 ID:o8lgioa7.net
>>646-647
学部と法学部の関係と、理系院卒と部署の関係が同じと言うのかよ w
書いてて恥ずかしくね?

651 :デフォルトの名無しさん:2018/08/15(水) 09:14:28.41 ID:MbmwE69Z.net
>>650
???
日本語理解出来ないの?
ええと、比喩という言葉は知ってるかい?

652 :デフォルトの名無しさん:2018/08/15(水) 09:22:29.19 ID:MbmwE69Z.net
法学部→全体に対い一部のできる奴の喩え
理系院卒→全体に対して一部できる奴の喩え

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

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

事務部門→一部のできない部署の喩え
教育学部・文学部→一部のできない学部の喩え

653 :デフォルトの名無しさん:2018/08/15(水) 09:34:06.55 ID:+0zUs7od.net
>>650
対応関係ってのは単に

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

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

 あ ⇔ A
 い ⇔ B
 う ⇔ C

という対のことを言うんだから
お前が変な考えに囚われているだけだよ

654 :デフォルトの名無しさん:2018/08/15(水) 09:48:29.72 ID:o8lgioa7.net
>>651-653
何一生懸命言い訳してるのか知らんけど
・法学部は学部に含まれる
・理系院卒と部署に直接の関係はない
ただそれだけ

655 :デフォルトの名無しさん:2018/08/15(水) 09:51:26.21 ID:+0zUs7od.net
>>654
・法学部は学部に含まれる
・理系院卒と部署に関係はある
以上
俺がそういってるんだからそうなんだよ。文句つけんな。

656 :デフォルトの名無しさん:2018/08/15(水) 10:29:39.23 ID:o8lgioa7.net
>>655
はいはい w

657 :デフォルトの名無しさん:2018/08/15(水) 11:31:11.58 ID:pqG57C1I.net
前提に正も誤も無いとか言って自分の前提は無条件で信じられるべき
なのに他人の出す前提は理解すら示そうとしないダブスタ

相手にするだけ無駄なやつ

658 :デフォルトの名無しさん:2018/08/15(水) 11:44:29.14 ID:o8lgioa7.net
> 相手にするだけ無駄なやつ
ならレスしなきゃいいのに…
悔しさ滲み出てますよ w

659 :デフォルトの名無しさん:2018/08/15(水) 11:46:09.96 ID:pqG57C1I.net
>>658
顔赤いぞ

660 :デフォルトの名無しさん:2018/08/15(水) 12:02:22.01 ID:o8lgioa7.net
あれ?
相手する価値ないんじゃなかったの?
ダッサ w

661 :デフォルトの名無しさん:2018/08/15(水) 12:05:44.37 ID:azz2Q493.net
無駄話やら罵り合いしたいだけならスレ立ててそこでやってくんねーかなー

662 :デフォルトの名無しさん:2018/08/15(水) 12:07:24.16 ID:pqG57C1I.net
>>660
議論に乗るつもりがないだけでお前を馬鹿にするのをやめる理由はない
お前ただ相手にされなくなったのを論破したと勘違いして生きてきたっぽいな

663 :デフォルトの名無しさん:2018/08/15(水) 12:08:58.00 ID:o8lgioa7.net
また話変えてきてるよ…
頭悪いって可哀想だな w

664 :デフォルトの名無しさん:2018/08/15(水) 12:12:12.04 ID:pqG57C1I.net
>>663
とてもそう思う

665 :デフォルトの名無しさん:2018/08/15(水) 12:16:44.17 ID:kebfuqT8.net
ここまでVBAの話なし

666 :デフォルトの名無しさん:2018/08/15(水) 12:32:04.60 ID:o8lgioa7.net
>>664
ようやく気づいたのか
まあ気を落とさずに頑張れよ w

667 :デフォルトの名無しさん:2018/08/15(水) 12:54:37.56 ID:KuKFPEdV.net
>>661
VBAの話がしたいなら違うスレ立ててやれ

668 :デフォルトの名無しさん:2018/08/15(水) 12:56:36.01 ID:MbmwE69Z.net
>>654
引数が偶数だったら文字列を返し、奇数だったら数値を返すプロシ―ジャがあったとしよう。

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

構造の話なんだから引数と戻り値の関係を比較して、両者が同じ関係かどうか評価しろよ。

669 :デフォルトの名無しさん:2018/08/15(水) 13:02:03.82 ID:o8lgioa7.net
また頓珍漢なこと言い出したぞ w

まあ「含まれる」とかが構造の話と思えない時点で詰んでる

670 :デフォルトの名無しさん:2018/08/15(水) 13:07:08.07 ID:MbmwE69Z.net
ついでに言っとくと法学のあんちゃんは全ての学部のどれかに含まれる。
理系院卒のあんちゃんも全ての部署のどれかに含まれる。

同じ構造だ。

671 :デフォルトの名無しさん:2018/08/15(水) 13:09:43.34 ID:FDr69IxI.net
この数式のない一軒不毛そうな議論から規則性とか関連性を見つけるのもプロクマラーに必要なスキル

672 :デフォルトの名無しさん:2018/08/15(水) 13:10:36.49 ID:+0zUs7od.net
やっと納得を得たようでなによりだ。本題に戻ろう。

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

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

そのIT能力でExcelやVBAの能力を補うことが正しい戦略だ。
ネットに繋げないとかOSSが利用できないなんて論外だ。

673 :デフォルトの名無しさん:2018/08/15(水) 13:33:56.84 ID:rsN0oxe0.net
>>671
他人が書いた糞コードの解読的な

674 :デフォルトの名無しさん:2018/08/15(水) 13:46:28.89 ID:o8lgioa7.net
>>670
> 理系院卒のあんちゃんも全ての部署のどれかに含まれる。
まじで言ってる? w
理系院卒の無職がいないとでも思ってるのか?

>>672
>>655で引っ込んどけばいいものを…

675 :デフォルトの名無しさん:2018/08/15(水) 14:08:47.99 ID:pqG57C1I.net
単純に文章が読めないんだなこいつ

676 :デフォルトの名無しさん:2018/08/15(水) 14:09:56.50 ID:o8lgioa7.net
はいはい w

677 :デフォルトの名無しさん:2018/08/15(水) 14:48:08.03 ID:+0zUs7od.net
>>675
ほんとだね
算数の文章題の内容を式に直したりできなさそう
俺には>>674に正しく伝わる文章なんて書けそうもない

678 :デフォルトの名無しさん:2018/08/15(水) 14:50:05.48 ID:o8lgioa7.net
はいはい

> ・理系院卒と部署に関係はある
とか言うアホに言われてもなぁ w

679 :デフォルトの名無しさん:2018/08/15(水) 15:04:43.74 ID:TLBrAROC.net
やっぱり>>2にもどったな
印象操作やら神の声やら今夜のおかずやら他のノイズも混ざってるけどw

↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
引き続き、知ったかぶりがVBAにマウントをとる長文と
VBA老害が見当外れのレスをする長文をお楽しみください

680 :デフォルトの名無しさん:2018/08/15(水) 15:18:45.96 ID:o8lgioa7.net
>>679
> 引き続き、知ったかぶりがVBAにマウントをとる「長文」と
> VBA老害が見当外れのレスをする「長文」をお楽しみください
最近の長文 → >>604, >>672
なるほど確かに知ったかの見当外れのレスだわ w

681 :デフォルトの名無しさん:2018/08/15(水) 20:28:47.28 ID:PFaZ124V.net
アレ?
なんで罵り合いが終わったの?
燃料切れ?

682 :デフォルトの名無しさん:2018/08/15(水) 20:45:18.70 ID:3FUQ7EIU.net
寝落ち
起きたら再開

683 :デフォルトの名無しさん:2018/08/15(水) 20:55:50.25 ID:PFaZ124V.net
期待してます
ボッコボコにして

684 :デフォルトの名無しさん:2018/08/15(水) 21:45:16.76 ID:Ln7PviFU.net
>>682
お仕事とか…してらっしゃらないんですか…?

685 :デフォルトの名無しさん:2018/08/15(水) 22:00:35.47 ID:ptNtiXuo.net
世間では明日までお盆休みだよ

686 :デフォルトの名無しさん:2018/08/15(水) 22:04:45.10 ID:W9B5BJh8.net
裏山
俺は強まで・・・

687 :デフォルトの名無しさん:2018/08/15(水) 22:08:06.98 ID:+0zUs7od.net
主張の食い違いとかだったら面白いんだけどね

688 :デフォルトの名無しさん:2018/08/16(木) 00:05:39.03 ID:l34+V18a.net
>>477をまず読め。
ねえちゃん・おっさんは何処に所属してる?

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

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

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

日本語弱い君は文章全体を理解しようとせずに出てくる単語単体にこだわるようだ。
アスペか何かか?

689 :デフォルトの名無しさん:2018/08/16(木) 00:15:17.92 ID:gbtMedVo.net
>>688
ちょっと違うよ
>>482は理系院卒を「事務部門以外」とは言ってない。
事務部門にもいろいろな部署があるからね。いわゆる戦略的な「攻め」の部署には割とエリートっぽい奴が配属される。

まあスレの流れ的にはあまり関係ないからいいけど。

690 :デフォルトの名無しさん:2018/08/16(木) 00:20:40.85 ID:l34+V18a.net
>>689
確かに事務部門以外に限定しているわけじゃないけど、日本語弱い君とやり取りしてると細かいことはど―でも良くなる。

もっと基本的な所が既に通じないからな。

691 :デフォルトの名無しさん:2018/08/16(木) 00:22:29.57 ID:SOTYyfvv.net
(こいつらいったい何と戦っているんだ…)

692 :デフォルトの名無しさん:2018/08/16(木) 00:41:08.45 ID:gbtMedVo.net
>>691
そりゃもちろん
「事務員に高度なITは使いこなせないから不要」
っていう固定観念と戦っているのさ。
事務員の中のポテンシャルの高い連中の能力を引き出せれば
くだらないSIerなんかとおさらばできて競争力も高まるからね。

693 :デフォルトの名無しさん:2018/08/16(木) 06:03:27.79 ID:H6lHpBvI.net
Worksheets("w").Range(Cells(1, 1), Cells(1, 43)).ClearContents
これってシートをアクティブにしなくても使えますよね?
アプリケーション定義またはオブジェクト定義のエラーが出てしまうのですが

694 :デフォルトの名無しさん:2018/08/16(木) 06:29:39.37 ID:AOJ6PJJu.net
>>693
そのコードが実行されるときにアクティブになっているブックにwシートがなければエラーになるぞ
当たり前だけど

指定してるシートの名前が"w"じゃなくて"w"とか"w "になってたなんてことはよくあるし、コードの実行時にwシートを持たない別のブックがアクティブになってしまってる場合もある

695 :デフォルトの名無しさん:2018/08/16(木) 06:34:34.81 ID:HHNkLN/y.net
>>693
wがアクティブでないとエラーになりますよ

696 :デフォルトの名無しさん:2018/08/16(木) 06:57:21.22 ID:O4RP4kA0.net
>>691
NASAの工作員かなんか

697 :デフォルトの名無しさん:2018/08/16(木) 07:23:14.62 ID:t6OwQxX1.net
>>688
> 理系院卒は会社に所属している前提だ。
で、それが何か?
含まれるの概念がわかってないの?
あと会社にいるからと言って所属部署があるとは限らんよ、社長かもしれないしね w

698 :デフォルトの名無しさん:2018/08/16(木) 08:10:34.34 ID:l34+V18a.net
>>697
文章をちゃんと読め。
理系院卒は"この場合は"何処かの部署に含まれている前提だ。
社長であるという前提ではない。

699 :デフォルトの名無しさん:2018/08/16(木) 08:26:56.80 ID:t6OwQxX1.net
>>698
で、それが何か? w
ツッコミが明後日過ぎて笑うわ

700 :デフォルトの名無しさん:2018/08/16(木) 08:51:59.47 ID:l34+V18a.net
>>699
そういうわけで日本語に弱く論理破綻しているのがお前という結論にお前が抗えなくなったということだ。

701 :デフォルトの名無しさん:2018/08/16(木) 08:59:32.11 ID:BCwpVRwG.net
本当に再開してるじゃん
もしかして自作自演?
だとしたら深刻な症状ですよ

702 :デフォルトの名無しさん:2018/08/16(木) 09:06:30.09 ID:ZGWCaRN6.net
セルに4桁の数字を打ち込むと、その行の変えたい4桁の数字が全部入れ替わるようにしたいのですが、できますか?
いまは、デフォルトで4桁の数字を9999に入れておいて、すべて置き換えで変えたい4桁の数字に置換えています。
よろしくお願いします!

703 :デフォルトの名無しさん:2018/08/16(木) 09:07:26.88 ID:Au8uUKpS.net
出来る

704 :デフォルトの名無しさん:2018/08/16(木) 09:12:04.69 ID:l34+V18a.net
そもそもは>>477>>482のやり取りをどう解釈するかという問題だ。

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

それなのに目先の文章や単語単体にとらわれて元々の>>477>>482のやり取りを忘れてもらっては困る。

705 :デフォルトの名無しさん:2018/08/16(木) 09:21:29.75 ID:l34+V18a.net
>>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

706 :デフォルトの名無しさん:2018/08/16(木) 09:37:10.05 ID:gbtMedVo.net
>>704
悪いけど>>482は事務部門にいる理系院卒という意味だよ。
文章だけではそう限定できないから、どう取っても論理的に解釈間違いになるわけじゃないけどね。

>>477では事務部門のスタッフを「ねーちゃん・オッサン」と呼び、VisualStudioを使った開発なんかできない
人々の集まりのように描写していた。
それを「印象操作」と呼んだわけだ。

707 :デフォルトの名無しさん:2018/08/16(木) 09:40:28.42 ID:fIO0uyHl.net
既出かも知れません。
セルに入力した式を、数式として返すvbaが欲しい。

あるセルに=A1×A2と入っていれば、指定セルに2×3=6とか表示するやつ。

708 :デフォルトの名無しさん:2018/08/16(木) 09:43:32.55 ID:t6OwQxX1.net
>>700, >>704
> それなのに目先の文章や単語単体にとらわれて
それお前な

> ・法学部は学部に含まれる
> ・理系院卒と部署に関係はある
どんな関係があるんだ?
そもそも「含まれる」と「関係ある」という時点で比較になってないし
>>655で許してやったんだからそこでやめてりゃいいのに w

709 :デフォルトの名無しさん:2018/08/16(木) 09:45:06.52 ID:WItIpmjO.net
じゃ、作れよ
俺はできんけど

710 :デフォルトの名無しさん:2018/08/16(木) 10:01:07.98 ID:gbtMedVo.net
>>708
>・理系院卒と部署に関係はある

単に事実として書いたんであって、論理的に読み取るとか解釈できる・できないの話じゃないでしょ。

711 :デフォルトの名無しさん:2018/08/16(木) 10:53:21.12 ID:t6OwQxX1.net
>>710
>>・理系院卒と部署に関係はある
> 単に事実として書いたんであって
だから「どんな関係」かを書きなよ

> 論理的に読み取るとか解釈できる・できないの話じゃないでしょ。
誰もそんな頓珍漢な話はしてない

712 :デフォルトの名無しさん:2018/08/16(木) 11:00:04.22 ID:gbtMedVo.net
>>711
もう書かれているから断る

713 :デフォルトの名無しさん:2018/08/16(木) 11:16:20.96 ID:18y92em0.net
やたら長文飛び交ってるからスルーしてたけどお前ら馬鹿なのか?

714 :デフォルトの名無しさん:2018/08/16(木) 11:36:03.34 ID:gbtMedVo.net
>>713
スルーして本題が復活するまで待つか自分で振るかすればいいじゃん。

715 :デフォルトの名無しさん:2018/08/16(木) 11:37:12.39 ID:q37zSSst.net
これ自作自演のひとりの人らしいですよ

716 :デフォルトの名無しさん:2018/08/16(木) 11:55:56.49 ID:H/uvpZju.net
botだよ

717 :デフォルトの名無しさん:2018/08/16(木) 12:04:32.04 ID:MBvEYoJ9.net
最近のAIはすごいな

718 :デフォルトの名無しさん:2018/08/16(木) 12:08:01.31 ID:0dTep/In.net
>>693
cellsにも明示的にシート指定すればいいんだよ

719 :デフォルトの名無しさん:2018/08/16(木) 12:39:20.77 ID:t6OwQxX1.net
>>712
> もう書かれているから断る
でも、どこに書いてるかは明かせないってか?
低能がごまかすのによくやる手 w

720 :デフォルトの名無しさん:2018/08/16(木) 12:42:23.78 ID:VPX9WWnJ.net
>>717
AIにしても酷い出来だろ、これは

721 :デフォルトの名無しさん:2018/08/16(木) 12:44:51.37 ID:fD/OKUaV.net
まだ機械学習中なんで

722 :デフォルトの名無しさん:2018/08/16(木) 12:51:48.47 ID:gbtMedVo.net
>>719
みんな思ってるんだよ。
「断る」
ってな。

723 :702:2018/08/16(木) 12:55:51.13 ID:ZGWCaRN6.net
>>705
ありがとうございます!

724 :デフォルトの名無しさん:2018/08/16(木) 12:59:30.71 ID:fD/OKUaV.net
みんな知らんだろうけどこの法学部と院卒のくだりは昨日の夜からやってるんだからな
一旦睡眠のために休憩してたみたいだけど
こんなどーでも良いことを続けられるなんて凄いよな

725 :デフォルトの名無しさん:2018/08/16(木) 13:41:48.38 ID:18y92em0.net
>>724
人間はどーでもいいことにこそ注力しちゃう生き物なんだよなぁ
でもよそでやれ

726 :デフォルトの名無しさん:2018/08/16(木) 14:01:26.94 ID:t6OwQxX1.net
>>722
はいはい w

詭弁のガイドライン
5.資料を示さず持論が支持されていると思わせる
https://ma tome.na ver.jp/m/odai/2144740466806479501

727 :デフォルトの名無しさん:2018/08/16(木) 15:28:17.68 ID:MBvEYoJ9.net
また寝たのか?
生活リズムガッタガタやな

728 :デフォルトの名無しさん:2018/08/16(木) 16:03:09.69 ID:3fUcOf8H.net
質問したいんやけど
VBA エキスパートのベーシックの資格を取ろう公式テキスト買ったんやけど
模擬試験をやろうとしたけどWindows 7までしか対応していないんや
Windows 10の場合、代替プログラムをインストールしろと書いてあるが
インストールの仕方がわからん
知ってる人いる?

729 :デフォルトの名無しさん:2018/08/16(木) 17:16:08.82 ID:5/9Syz1B.net
すげーな、ハンドルと右折の話から一週間くらいでこれとか活気があっていいなw

サマータイムの話が職場で盛り上がった時に
それくらいはプログラム作るときに考慮しておけよなって人が多くて
やっぱり求められてるのはハンドル作れってことなんだなと痛感したわ
ー応じようだなんて1ミリも思わないけどww

730 :デフォルトの名無しさん:2018/08/16(木) 18:00:06.03 ID:L21XhAl1.net
>>728
それ自体が試験の一部

731 :デフォルトの名無しさん:2018/08/16(木) 18:48:51.47 ID:1cDvfnJm.net
>>728
そのテキストのHPとかあるんじゃね

732 :デフォルトの名無しさん:2018/08/16(木) 21:26:24.30 ID:Z/EAAxtY.net
教えてください

マクロを登録したチェックボックスを用意して、ワンクリックでその隣のセルの値をコピーする
という簡単そうな事ができませんでした
Activecell.offset(,1).Copy
くらいの事でできると思っていました…
すみません助けてください
たぶんすぐ出来るとか豪語してしまいました
反省しています

733 :デフォルトの名無しさん:2018/08/16(木) 21:31:43.44 ID:W+10vliG.net
>>732
出来ませんでした、と謝ればいいと思う

734 :デフォルトの名無しさん:2018/08/16(木) 21:46:48.30 ID:BIfWFzcm.net
>>732
Private Sub CheckBox1_Click()
  CheckBox1.TopLeftCell.Offset(0, 1) = "←ここだよ"
End Sub

735 :デフォルトの名無しさん:2018/08/16(木) 23:30:13.50 ID:Z/EAAxtY.net
>>734
参考にしてできました!
ありがとうございました!!!

736 :デフォルトの名無しさん:2018/08/17(金) 01:42:30.73 ID:tOusYlvg.net
>>735
馬鹿は死ねよ

737 :デフォルトの名無しさん:2018/08/17(金) 01:50:16.73 ID:yjK/nJxZ.net
そんなに自分を卑下しなくてもいいぞ

738 :デフォルトの名無しさん:2018/08/17(金) 07:22:56.68 ID:nBQYbnk5.net
>>736
隗より始めよ

739 :デフォルトの名無しさん:2018/08/17(金) 08:34:01.64 ID:w1qAakJm.net
>>736
泣いて馬鹿を斬る

740 :デフォルトの名無しさん:2018/08/17(金) 17:20:05.57 ID:lRSRxbIQ.net
with使うやつアホなの?
.で始まる部分を見るたびにwithを探しに行って確認する手間暇がかかって面倒。

741 :デフォルトの名無しさん:2018/08/17(金) 18:01:20.36 ID:KaaDwp63.net
普通の人が追うのに苦労するほどなら確かにWithの使い方としてはあまり良くない
ただ>>740の能力がなさ過ぎる可能性が微レ存

742 :デフォルトの名無しさん:2018/08/17(金) 18:03:08.60 ID:dZqaXnfX.net
>>740
何故頑なに変数使わんのか謎だよなw
一行に何度も.出てくるの見ると吐きそうになる

743 :デフォルトの名無しさん:2018/08/17(金) 18:31:53.54 ID:LWrcZ49g.net
with無くしてメソッドチェインできるようにAPI変えてくれ

744 :デフォルトの名無しさん:2018/08/17(金) 22:49:53.19 ID:Y+5hjotK.net
やだ

745 :デフォルトの名無しさん:2018/08/17(金) 22:57:11.00 ID:zD2h2oDf.net
このスレもルビパー臭くなったなwプロさんwwwww

746 :デフォルトの名無しさん:2018/08/17(金) 23:20:18.52 ID:vMaMvG23.net
>>740
オブジェクトの生成とWithを組み合わせるとスコープ(っぽいもの)の終了で
リソース解放してくれるのだけは重宝している。

747 :デフォルトの名無しさん:2018/08/18(土) 00:16:22.71 ID:u8ja/Ot0.net
>>746
その使い方以外あんまり使ってほしくない
.開始はなんというか、キョドる

748 :デフォルトの名無しさん:2018/08/18(土) 00:25:21.58 ID:1Mn+50P1.net
>>747
.開始?

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

Nothing代入せずにデストラクタが呼ばれるのいいじゃない

749 :デフォルトの名無しさん:2018/08/18(土) 00:33:56.94 ID:u8ja/Ot0.net
そういやvbaのガベージコレクションってどうなってるの?
sub・functionが終わったらメモリから全部消えるのかな

750 :デフォルトの名無しさん:2018/08/18(土) 00:38:28.60 ID:PRD/1v4M.net
>>748
C#のusing的な使い方になるってこと?

751 :デフォルトの名無しさん:2018/08/18(土) 00:52:41.00 ID:QJ6qXFdU.net
プロさん出番やでーwwwww

752 :デフォルトの名無しさん:2018/08/18(土) 01:07:33.12 ID:1Mn+50P1.net
>>750
単に End Withのタイミングで Class_Terminate が呼ばれるってだけだけど
Sub・Functionの終了を待たずにそのタイミングをコントロールできるのがいい。

753 :デフォルトの名無しさん:2018/08/18(土) 02:05:15.49 ID:Qu3u+5ap.net
>>750
なるほど、廃棄が前提ならアリやな。
でもVBA掲示板のプロっぽい風吹かしてるやつらは、廃棄する必要のないworkbookとかworksheetをワザワザwithする不思議。

754 :デフォルトの名無しさん:2018/08/18(土) 02:35:51.37 ID:gharGiQ8.net
ブルゾンちえみ

755 :デフォルトの名無しさん:2018/08/18(土) 03:10:47.26 ID:r01iwFGV.net
>>752
VBAのガベコレは参照カウンタ方式だから、参照がなくなったら廃棄されるだけ
変数に受けても、明示的にNothing代入すればその場で解放されるはずだからタイミングのコントロールはできる


>>753
そもそもWithは、単に何度も同じオブジェクト参照を書かなくて済むだけの機能だから
廃棄するかどうかとは関係ないしそんなものと絡めて使うべきではない

756 :デフォルトの名無しさん:2018/08/18(土) 09:04:47.19 ID:1Mn+50P1.net
>>755
明示的にNothing代入するのがだるいって話さ

757 :デフォルトの名無しさん:2018/08/18(土) 09:10:53.39 ID:pAmB63kN.net
>>755
> 廃棄するかどうかとは関係ないしそんなものと絡めて使うべきではない
>>748みたいな奴ならEnd Withで廃棄されるだろ
難癖つけてるだけにしか見えん

758 :デフォルトの名無しさん:2018/08/18(土) 11:11:44.78 ID:HXszneG/.net
VBAで べき論 は不要

759 :デフォルトの名無しさん:2018/08/18(土) 13:39:35.74 ID:u8ja/Ot0.net
>>758
だよな
vbaなんてサクッとエクセルデータをどうにかしたり印刷の体裁整える程度でいい
そんなインストラクタだのガベージコレクションなんて考えて書く言語じゃない

760 :デフォルトの名無しさん:2018/08/18(土) 14:07:43.88 ID:WpMgA9bG.net
>>759
それもまたべき論

761 :デフォルトの名無しさん:2018/08/18(土) 14:20:57.50 ID:u8ja/Ot0.net
>>760
うん、知ってる

762 :デフォルトの名無しさん:2018/08/18(土) 14:25:54.38 ID:r01iwFGV.net
>>758
ああ、そうだな
VBAではっていうより、ここでは不要だな
どうせまともな議論にはならんしな

763 :デフォルトの名無しさん:2018/08/18(土) 14:26:50.24 ID:r01iwFGV.net
>>758
ああ、そうだな
VBAではっていうより、ここでは不要だな
どうせまともな議論にはならんしな

764 :デフォルトの名無しさん:2018/08/18(土) 14:37:54.05 ID:pHq61mgp.net
>>763
明確に賛成 vs 明確に反対
の罵り合いになるなら荒れても面白いんだけど、なぜかそうならんね
みな本題から逸れたところで言い争う

765 :デフォルトの名無しさん:2018/08/18(土) 15:01:58.92 ID:u8ja/Ot0.net
前提や環境が違いすぎるからな

766 :デフォルトの名無しさん:2018/08/18(土) 15:33:37.30 ID:OGMfrWDu.net
>>753
WorkbookやWorksheet等の組み込みオブジェクトであってもWithで参照保持した方が良い場合もある
実際比べてみると分かるがオブジェクト変数を使うとメモリを確保する分動作が重くなるし、一つの処理の中でWithを使わず何度も同じプロパティ参照を行えばその分計算量は増える

それなりに大きな配列を処理したり何百ものブックやシートを処理したりするプログラムになれば、この手の小手先の調整が大きく動作に影響したりするよ

767 :デフォルトの名無しさん:2018/08/18(土) 15:50:10.99 ID:u8ja/Ot0.net
オブジェクト変数って言っても中身は参照でしょ?
どんなポンコツPC使ってるんだ

768 :デフォルトの名無しさん:2018/08/18(土) 16:17:32.41 ID:1Mn+50P1.net
>>766
With なんちゃら
  .Hoge
End With
の代わりに
Set ref = なんちゃら
として ref.Hoge
とするなら原理的に同じはずでは?

769 :デフォルトの名無しさん:2018/08/18(土) 16:26:03.95 ID:XAZ8inQ9.net
アマチュアのVBAユーザーだとインスタンスと参照の概念はよくわからないんじゃないかな
Java研修などでも新人が躓きやすいところだし勘違いしてもしょうがない

770 :デフォルトの名無しさん:2018/08/18(土) 16:33:12.97 ID:lPI41hg1.net
VBA推しの人の前提条件がアプリのインストールも何もかも出来ないって会社の話でしょ?
そんな会社は特殊な極一部じゃん
普通はインストールも出来るしアプリも入れれる
でもそうなるとVBAを使う意味が全くなくなるから特殊な環境の話をこじつけてるんでしょ?

771 :デフォルトの名無しさん:2018/08/18(土) 16:38:06.28 ID:u8ja/Ot0.net
>>770
>特殊な極一部じゃん
中小企業にばかりいればわからないかもな
そこら中にあるぞ

772 :デフォルトの名無しさん:2018/08/18(土) 16:53:37.10 ID:lPI41hg1.net
大企業が極一部じゃん

773 :デフォルトの名無しさん:2018/08/18(土) 17:07:16.74 ID:u8ja/Ot0.net
>>772
正論じゃん!
すまんかった

774 :デフォルトの名無しさん:2018/08/18(土) 17:19:14.72 ID:XAZ8inQ9.net
本当にエクセルしか使わない大企業などというものが存在するのだろうか
具体的にどこの企業のことなんだ?

775 :デフォルトの名無しさん:2018/08/18(土) 17:32:37.30 ID:ktgzOwh8.net
やたらとメール重用で社内システムは古臭いwebアプリ
末端はこそこそエクセル開発ってイメージ
ただの偏見だけど

776 :デフォルトの名無しさん:2018/08/18(土) 17:50:50.84 ID:XAZ8inQ9.net
>>775
そんなんで仕事になるのかね?
大企業じゃなくて底辺か中小の話ではないのかそれって

777 :デフォルトの名無しさん:2018/08/18(土) 18:23:43.35 ID:lPI41hg1.net
大企業からwebアプリでやってそうだけど
違うんだ
共有や同時接続が決定的にダメダメなエクセルで仕事しなけりゃいけないなんで気の毒だな

778 :デフォルトの名無しさん:2018/08/18(土) 19:11:00.94 ID:QbV6+C0c.net
大企業でも大抵は入れていいアプリはホワイトリストとかで持ってるし申請すれば大抵は通る

779 :デフォルトの名無しさん:2018/08/18(土) 19:24:59.50 ID:Rl20PTNq.net
じゃあVBAしか使えないって大前提が崩れるじゃん
そしたらVBAなんて使う意味ないじゃん
VBAしか使えないのに色んな工夫して凄いなぁーって
とてつもなく面倒で生産性の悪い事をさせられてるんだなーって

780 :デフォルトの名無しさん:2018/08/18(土) 19:43:20.54 ID:g/6PiQSP.net
で、またC#だのなんだのでループ?

781 :デフォルトの名無しさん:2018/08/18(土) 19:54:33.41 ID:Rl20PTNq.net
ループっても前提条件が大きく変わったんだから議論は初めてと言っても良いだろ

782 :デフォルトの名無しさん:2018/08/18(土) 20:12:24.79 ID:u8ja/Ot0.net
>>775
メールは使いにくい!チャットワーク導入!
→チャットワーク使いにくい!
→メールへ

って感じ

783 :デフォルトの名無しさん:2018/08/18(土) 20:34:54.41 ID:1Mn+50P1.net
>>779
根本的なところで根拠がないんだよ
Excelが周りで使われているんだからVBAも当然使いたくなるだろう

784 :デフォルトの名無しさん:2018/08/18(土) 20:41:33.86 ID:Rl20PTNq.net
今からVBAを覚えようとしてる人へ

他言語ならもっとシンプルで簡単にそして高速ですよ
それに開発ツールも遥かに強力だしインテリセンスも抜群に効くし半分の労力で10倍の生産性があるので無意味なVBAを覚えるなんて遠回りしない方が良いですよ
VBAは主に大企業で制約がとてもキツく何もインストールさせて貰えない環境で働かされてる人向けです

785 :デフォルトの名無しさん:2018/08/18(土) 21:15:29.15 ID:1Mn+50P1.net
>>784
そんなあなたのイチオシは?

786 :デフォルトの名無しさん:2018/08/18(土) 21:34:56.80 ID:XAZ8inQ9.net
俺は.NETに惚れ込んでMS好きになったから、MSファミリの代表格であるExcelやVBAも好きになりたい
でも、ExcelとVBAの使い道を必死に探しても、残念ながらC#やPowerShellには勝てない日々が続いている
なんでもいいから、VBAコミュニティが努力して革命的な利用方法を発明してくれればいいんだけど

787 :デフォルトの名無しさん:2018/08/18(土) 21:42:59.05 ID:ddghJ7gy.net
>>784
VBAは大企業では大いに役に立つわけですな

788 :デフォルトの名無しさん:2018/08/18(土) 21:50:10.80 ID:ddghJ7gy.net
ここはVBAのスレだから
VBAのポジティブなところにフォーカスしたいよね
その他の言語は専用スレに行っていただくとして

大企業で活かせるっていうのは良いですよね

789 :デフォルトの名無しさん:2018/08/18(土) 22:00:30.77 ID:g/6PiQSP.net
>>786

お前が.NETに惚れ込んでいようとなんだろうとそんなのはこのスレに何の関係もない

790 :デフォルトの名無しさん:2018/08/18(土) 22:09:36.45 ID:XAZ8inQ9.net
>>789
VBAのメリットや効果的な運用方法を教えてください

791 :デフォルトの名無しさん:2018/08/18(土) 22:13:23.22 ID:FUzlnCg0.net
前提条件が崩れてアタフタしとる
ちなみにお前は大企業の書類選考も通らん
なので好きなだけインストール出来る環境なのにVBAでのたうちまわってる

792 :デフォルトの名無しさん:2018/08/18(土) 22:17:28.63 ID:ddghJ7gy.net
>>790
Wikipediaから引用するけど

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

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

効果的な運用方法はわかりません。

793 :デフォルトの名無しさん:2018/08/18(土) 22:25:10.50 ID:ddghJ7gy.net
大企業の書類選考を通らない人は中小企業に就職するしかありませんね。

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

まとめるとVBAは大企業で大いに役立つし
中小企業でもその知識や技術は重宝されるよってことです

794 :デフォルトの名無しさん:2018/08/18(土) 22:30:17.99 ID:XAZ8inQ9.net
GoogleやMicrosoft、Amazonなどの大企業ではエクセルVBAを推奨してほかのツールはインストール禁止なのでしょうか?

795 :デフォルトの名無しさん:2018/08/18(土) 22:30:34.00 ID:FUzlnCg0.net
エクセル以外は何もインストール出来ない環境だからって前提は変更で良いのね
その上で実は色んな言語もIDEも試せるけどエクセルにはVBAが1番ピッタリだって事に変えとけば良い?

796 :デフォルトの名無しさん:2018/08/18(土) 22:40:06.27 ID:bgbHuJd/.net
その前提だとVBAが一番ってことにならないからダメ

797 :デフォルトの名無しさん:2018/08/18(土) 22:43:37.98 ID:ub6IzT+t.net
>>768
違う
オブジェクト変数は4バイト以上のアドレス領域をメモリ上で占有する
Dimとかで宣言すると、その変数に何も代入されておらず処理に全く関与していない状態でも4バイト以上消費することになる

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

この違いは案外大きいよ

798 :デフォルトの名無しさん:2018/08/18(土) 22:45:52.52 ID:FUzlnCg0.net
今のマシンで4バイトのメモリなんて気にする必要ないだろ
ファミコンか!

799 :デフォルトの名無しさん:2018/08/18(土) 22:48:22.15 ID:u8ja/Ot0.net
>>797
どんなしょぼいメモリなんだよwww

800 :デフォルトの名無しさん:2018/08/18(土) 22:50:44.29 ID:XAZ8inQ9.net
>>792
メリットとしては弱いかな

>>795
VBAがExcelにピッタリというのは実は根拠に乏しい
本当にピッタリならVSTOやExcel Python、Excel JS APIなどといった他の言語への需要は生まれなかったはず
ユーザーの素直な気持ちとしてVBAはExcelにふさわしくないのでは? という思いがあるから、他の言語への需要があるんじゃないかな

801 :デフォルトの名無しさん:2018/08/18(土) 22:57:23.43 ID:1Mn+50P1.net
>>797
大きいわけないと思いまーす

>>800
それらって成功してるの?(曖昧な質問)

802 :デフォルトの名無しさん:2018/08/18(土) 23:05:53.57 ID:GFBy1Kxc.net
ROMww ファミコンかよw

803 :デフォルトの名無しさん:2018/08/18(土) 23:10:13.31 ID:XAZ8inQ9.net
>>797
もうやめとけ
そんな微細な違いでは8:2法則に飲み込まれてパフォーマンスには影響しない
そもそもコンパイルされたらどっちの書き方でも関数やプロシージャの消費するスタックサイズは同じだろう
それともなにかVBAは分岐によって動的にスタックサイズを変えているとでもいうのか?
そんなのは4バイトのメモリをケチるよりももっと無駄なコストだ

804 :デフォルトの名無しさん:2018/08/18(土) 23:16:38.19 ID:ddghJ7gy.net
>>800
最強だよ!

805 :デフォルトの名無しさん:2018/08/18(土) 23:17:49.14 ID:ddghJ7gy.net
VBA最強伝説の幕開けである

806 :デフォルトの名無しさん:2018/08/18(土) 23:26:02.96 ID:u8ja/Ot0.net
vba、当時は言語が入り乱れていてbasicでもいいかなって感じだったけど
もう今やBasicベースの言語が壊滅的すぎてな

今ならJS、python、C#どれでもいい
個人的にはweb系火事tているのでJSで掛けるとありがたい。

807 :デフォルトの名無しさん:2018/08/18(土) 23:37:12.67 ID:ddghJ7gy.net
>>806
GoogleスプレッドはJSを採用してるね
たしかに良い

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

Excelのマクロと関数型言語は親和性高いから
F#とかこれから覚える人にとってはVBAよりもわかりやすいかも

808 :デフォルトの名無しさん:2018/08/18(土) 23:46:37.13 ID:FUzlnCg0.net
優秀な言語の条件
情報やサンプルの豊富さとIDE
F#なんてVBAより奇特
マイナーが好きなの?

809 :デフォルトの名無しさん:2018/08/18(土) 23:47:08.42 ID:u8ja/Ot0.net
>>807
JSは本当に使いやすくていいね
昔は定数「undifined」に代入出来たりとやんちゃな言語だったけど、大分更生した

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

ただ、F#はちょっと・・・
せめてGoとかで

810 :デフォルトの名無しさん:2018/08/19(日) 00:04:11.93 ID:VVi9Y61v.net
>>808
OCamlが好きなの
F#はOCamlの.NETバージョンだから

>>809
Goも良いよね、ミニマリズムって感じ
あれ設計した人は良い意味で変態だよ
もう言語ありすぎて追い切れないけど

811 :デフォルトの名無しさん:2018/08/19(日) 00:15:19.63 ID:HmjF4wKY.net
VBAの一番の問題は、馬鹿が作ったVBAをもっと馬鹿には理解できないことだろ

812 :デフォルトの名無しさん:2018/08/19(日) 00:26:53.36 ID:psltJnDY.net
>>811
もしVBAがなければその現象がほかの言語・環境になだれ込むんだぞ?

813 :デフォルトの名無しさん:2018/08/19(日) 01:01:59.23 ID:Pl2DH8TK.net
VCAとかになるのかな?

814 :デフォルトの名無しさん:2018/08/19(日) 03:33:05.33 ID:p4OHu/xz.net
というか90年代にVBが爆発的に売れた経緯を忘れてる
当時GUIに関してはVC++よりも開発し易かった

815 :デフォルトの名無しさん:2018/08/19(日) 06:40:10.99 ID:2hMRvgbC.net
おまいらここVBA質問スレだからな
雑談は雑談スレがあるだろ
質問したい人がしにくい雰囲気になってるじゃねーか

816 :デフォルトの名無しさん:2018/08/19(日) 08:03:31.75 ID:aAysneB2.net
ここ3人ぐらいで回してるんだろw

817 :デフォルトの名無しさん:2018/08/19(日) 09:07:00.29 ID:Qn4G0bqC.net
>>814
それはVBではなくGUIフレームワークの成果だろ
VBそのものは今も昔も使いにくかった

818 :デフォルトの名無しさん:2018/08/19(日) 09:41:26.30 ID:t1KS71KR.net
> >>814
> VBそのものは今も昔も使いにくかった
具体的事例よろ

819 :デフォルトの名無しさん:2018/08/19(日) 11:21:10.80 ID:v00HjWei.net
>>818
言いたい事がまとまっているサイトがあったわ
http://crapp.hatenablog.com/entry/2014/12/31/235842

個人的には今も昔も
>E等価演算子と代入演算子が同じ。
これがあまりにウンコすぎる。本当に最悪

820 :デフォルトの名無しさん:2018/08/19(日) 11:29:02.68 ID:EQkxTh7g.net
VBとVB.NETの区別もできないバカ → >>819

821 :デフォルトの名無しさん:2018/08/19(日) 11:31:13.70 ID:/OaADBse.net
>>800
用途が全く違う。
それに大抵の言語は用途が違っていてもある程度は被ってる。
矛盾するようだが他言語で出来ることは大抵VBAでも出来る。
一方、VBAで出来ることが他言語で出来ない場合は結構多い。

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

まず、機能が実現出来ることが一番大事。
次にスピード。
プログラミングしやすいかどうかはその後。
そしてユーザーインターフェースは一番大事な機能に含まれる。

822 :デフォルトの名無しさん:2018/08/19(日) 11:41:24.96 ID:XZP26CyB.net
>>821
この意見に全く同意出来ないんだけど
そしてIE専用言語って何?

823 :デフォルトの名無しさん:2018/08/19(日) 11:44:49.04 ID:ql2A++ig.net
>>821
IEの開発者ツールのデバッグコンソールから実行するjavascriptとかIE専用言語みたいなもんだけど
それがあるからといってPythonやRubyでIEを操作することをやめはしない

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

Web開発してるときにIEでの表示チェックぐらいか?
それならなおのことIE専用言語なんて出番がない

824 :デフォルトの名無しさん:2018/08/19(日) 11:56:24.77 ID:QrzzpoQc.net
マジでスクレイピングごときになんでIEだのCOMだの持ち出さないといかんのか
IEのサポート終了と同時に消える技術だってのに

825 :デフォルトの名無しさん:2018/08/19(日) 11:59:17.80 ID:XZP26CyB.net
IE専用言語ってもしかして
ActiveXの事とかの事?
そうでもない?

826 :デフォルトの名無しさん:2018/08/19(日) 12:25:59.66 ID:NIMznYGz.net
雑談やりたけりゃ雑談のスレでやれや、ヴォケナス野郎ども

827 :デフォルトの名無しさん:2018/08/19(日) 12:30:11.49 ID:/OaADBse.net
>>823
違うよ。
そういうものが有ったとしたらという話。
今の開発者用ツールはWebぺージを作るためのものでスクレイピングするためのものじゃ無い。

828 :デフォルトの名無しさん:2018/08/19(日) 12:33:51.41 ID:ql2A++ig.net
>>823
IE専用言語があったとしてもPython使うわボケって言ってんの

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


文盲の相手マジ疲れる

829 :デフォルトの名無しさん:2018/08/19(日) 12:34:55.69 ID:psltJnDY.net
>>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関数の返り値が大きな配列の場合は効率上の問題になる。

830 :デフォルトの名無しさん:2018/08/19(日) 12:35:25.33 ID:Qn4G0bqC.net
>それに大抵の言語は用途が違っていてもある程度は被ってる。
>矛盾するようだが他言語で出来ることは大抵VBAでも出来る。
>一方、VBAで出来ることが他言語で出来ない場合は結構多い。
VBAはλを始めとしてモダンな言語機能軒並み未実装なので、他の言語で当たり前のように出来ることがVBAでは出来ない

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

>まず、機能が実現出来ることが一番大事。
>次にスピード。
>プログラミングしやすいかどうかはその後。
>そしてユーザーインターフェースは一番大事な機能に含まれる。
VBAは機能の実現に手間がかかるし現実的なコストでは出来ないことも多い
VBAはスピードが遅い
VBAはプログラミングしにくい
VBAのユーザーインターフェース(スプレッド)は
・検証が貧弱
・誤操作でUIがすぐぶっ壊れる
・死ぬほど遅い
・描画領域の無駄が多くディスプレイが狭く感じる
などUXはかなり低い

831 :デフォルトの名無しさん:2018/08/19(日) 12:40:41.49 ID:/OaADBse.net
>>828
分かって無いな。
出来ない。

832 :デフォルトの名無しさん:2018/08/19(日) 12:46:14.41 ID:/OaADBse.net
>>830
ほら、λとかアホなこと言い出した。
機能のことを言ってるんだ。
ユーザ一にとってはそんなもんどうでも良いだろ。

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

最後の部分も殆ど分かって無いな。
VBAで出来ないことは勿論ある。
でも君は殆ど挙げられないようだ。

833 :デフォルトの名無しさん:2018/08/19(日) 12:47:27.56 ID:ql2A++ig.net
>>831
そりゃお前の中にしか存在しないIE専用言語と全く同じことができるわけ無いだろ
ニュアンスを読み取れよめんどくせえな

834 :デフォルトの名無しさん:2018/08/19(日) 12:51:55.66 ID:Qn4G0bqC.net
日本語が通じない相手がいちばん厄介なのはどこいっても同じだな

835 :デフォルトの名無しさん:2018/08/19(日) 14:14:15.64 ID:sJHMEm8K.net
>>833
確かに。
でも、そういう言語が有るとして、そういう言語への一般的要件というのは考えられるだろう。

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

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

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

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

これらは最低限だ。
IEが専用言語を用意したとしたら上記をクリアしてくるのは当然のように推測できる。

836 :デフォルトの名無しさん:2018/08/19(日) 14:50:00.48 ID:ql2A++ig.net
>>835
そんな妄想機能があった上でなおPython使うって言ってんだよ
お前がすべきなのは他人にとっては分かりきっていてなお批判されるお前の考えの足りないただの妄想を
言葉を尽くして語ることじゃなくて他人の意見を読み取ることだよ

837 :デフォルトの名無しさん:2018/08/19(日) 15:01:22.78 ID:6Ul8oodw.net
>>835
IEはC++や.NET
Edgeはhtml/javascript
がブラウザ拡張用の言語としてそれぞれ用意されてます

あなたの妄想の世界に存在するMSという企業のようにブラウザ拡張だけに特化した新しい言語をわざわざ創造するという果てしなく無駄なことはしません
なぜなら汎用性と利便性が高く長い時間をかけてテストされてユーザーの知識も豊富な既存の言語から利用できるAPIを提供すればそれで最大の効率が得られるからです

838 :デフォルトの名無しさん:2018/08/19(日) 15:19:18.18 ID:sJHMEm8K.net
>>836
Pythonにゃ実現不可能。
メリットも殆ど無い。

もっとも、そんな言語が有ったとしてPythonよりもコーディングがやりにくいとか、そういう可能性はある。
ただ、それは先にも書いた通り機能よりは優先順位が低い。

839 :デフォルトの名無しさん:2018/08/19(日) 15:22:59.59 ID:Qn4G0bqC.net
>>835
こいつは言語とライブラリと実行環境の区別がついてないしデバッグの仕組みもしらんのだろうな
VBAばかりやってきたからプログラミングの常識が身につかなかったのだろうね

840 :デフォルトの名無しさん:2018/08/19(日) 15:23:35.01 ID:eHr6NML6.net
例え話も理解できない人が多くて驚く
こんな人たちが社内や部内で使うシステムやツールを作ってるんだと思うと寒気がする

841 :デフォルトの名無しさん:2018/08/19(日) 15:24:34.78 ID:sJHMEm8K.net
>>837
うん。
だから有ったとしての話。
結局、専用言語にゃかなわない。

不思議なのが、ここに来てる人はプログラマ視点でしかものが見れない人が多いことだな。
それと、感情的になってるのか分からんが冷静な思考が出来ない人が多いということだな。

842 :デフォルトの名無しさん:2018/08/19(日) 15:29:12.61 ID:sJHMEm8K.net
>>840
多分、冷静な判断の出来ない人、もしくは冷静な判断の出来ない状態にあると思われる。

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

とはいえ出来るのとやるのは別の話で経営判断になる
ライトユーザーが多いからExcelにはVBAで十分だろう
だけど、いちおうアンケートとって需要があるならPythonも検討しよう
ブラウザにはJavaScriptという強力な言語の実行環境が既にあるので、あえて他の言語を動かす必要はないだろう
ましてやリスクを犯して需要の全く無い新言語を作る理由はどこにもない
といった経営判断は十分に考えられる

844 :デフォルトの名無しさん:2018/08/19(日) 15:47:20.48 ID:v00HjWei.net
架空のIE専用言語って何だよwww話がややこしすぎるわwwww

845 :デフォルトの名無しさん:2018/08/19(日) 16:02:40.17 ID:Qn4G0bqC.net
>>841
逆だね

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

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

今更になってExcelやブラウザでしか動かない新しい独自マイナー言語なんて作って、
ExcelやEdgeを鎖国化したら、今度こそユーザーに見放されてしまうよ

846 :デフォルトの名無しさん:2018/08/19(日) 16:16:11.18 ID:dQVlm8Bk.net
そのご高説をExcel VBAスレでするのが理解できないんだよな。
こんなところで誰を説得したいのか?

847 :デフォルトの名無しさん:2018/08/19(日) 16:37:22.05 ID:XZP26CyB.net
VBAが1番とか言ってるから違うんだよって言ってるだけ。
じゃないとこれからプログラミングを始める人に間違った情報与えることになるでしょ。
VBAなんて今から覚える必要なんて全くない言語なんだから。

848 :デフォルトの名無しさん:2018/08/19(日) 16:40:11.36 ID:HmjF4wKY.net
>>847
こういう極端な馬鹿がいるから荒れる
ExcelがVBAを使える限り覚える意味はあるのに

849 :デフォルトの名無しさん:2018/08/19(日) 16:44:26.20 ID:dXPlBnND.net
VBAを利用すべきではない内容の質問にVBAを利用すべきではないよって回答してあげてるだけでしょ
質問者はVBAを使いたいのか?違うだろ問題を解決したいんだろ

850 :デフォルトの名無しさん:2018/08/19(日) 16:48:22.16 ID:XZP26CyB.net
>>849
全ての答えがここにある
無駄な事を簡単にするのがプログラミングの本筋なんだからさ

851 :デフォルトの名無しさん:2018/08/19(日) 16:51:47.12 ID:XZP26CyB.net
全く必要ないは言い過ぎました
ゴメンね

852 :デフォルトの名無しさん:2018/08/19(日) 16:51:59.27 ID:SNX0Pn61.net
別にVBA覚えたからといって他の知識を覚える余地がなくなるほど
脳の容量が少ないわけじゃあるまいよ

853 :デフォルトの名無しさん:2018/08/19(日) 16:53:28.10 ID:sJHMEm8K.net
>>843
バカには分からんようだ。
決定的に出来ないのは下記。

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

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

PythonはWindowsに標準でインストールされてるんだっけ?

854 :デフォルトの名無しさん:2018/08/19(日) 16:57:00.94 ID:sJHMEm8K.net
>>845
アホだなあ。
専用言語で対応できなければPython使えば良いんだよ。

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

つまり、これこそが用途が違うということだ。

855 :デフォルトの名無しさん:2018/08/19(日) 17:01:20.26 ID:dXPlBnND.net
>>853
質問スレなのに質問者の環境を考慮せずにそんな前提をなんで置くの?

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


特に2つ目の単体配布にこだわる理由は本当に意味がわからない
別にファイルが2つになって具体的にどんな問題があるの?

856 :デフォルトの名無しさん:2018/08/19(日) 17:15:34.69 ID:Qn4G0bqC.net
>>853
わかってないバカはお前な

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

何度も言ってるがそもそもユーザー目線だと単体/複数の区別に大した意味はなく、
開発者からすれば単体ファイルでの開発は扱いにくいだけ
だがまあExcel PythonはVBAの置き換えになるだろうからブックに入れて配布って形になるだろうからファイル数は1になるだろう
そしてExcel JSはそもそもファイル配布ではなくURL指定だからユーザー目線だと受け取るファイル数は0だ

857 :デフォルトの名無しさん:2018/08/19(日) 17:23:03.55 ID:Qn4G0bqC.net
>>854
アホだなあ。
専用言語じゃ大事なユーザーのニーズを満たせないんだって
なので汎用言語とAPIを使って作るの
マイクロソフトは専用言語なんてバカバカしい選択肢を選んだか?
マイクロソフトは賢いからPythonやJavaScriptに投資してるぞ?
VBA信者ばかりのこのスレですらお前だけだ専用言語なんてトンチンカンなことを言ってる奴は

858 :デフォルトの名無しさん:2018/08/19(日) 17:33:36.59 ID:dQVlm8Bk.net
>>849
>質問者はVBAを使いたいのか?違うだろ問題を解決したいんだろ

スレタイ、読めないの?w
ここまでアホだったのかww

859 :デフォルトの名無しさん:2018/08/19(日) 17:53:25.17 ID:sJHMEm8K.net
>>856
バーカ。
今は採用されて無いんだよ。
そして採用されたらPython使うわ。
Python有利と思ったらな。

860 :デフォルトの名無しさん:2018/08/19(日) 17:55:10.17 ID:sJHMEm8K.net
>>857
ユーザーは機能が実現出来れば言語なんて何でも良いんだよ。
お前のはプログラマの独りよがり視点ここに極まれりだ。

861 :デフォルトの名無しさん:2018/08/19(日) 17:57:30.82 ID:sJHMEm8K.net
>>855
この前提はプログラマ視点ではなく、単にそのプログラムを利用するユーザー視点として当然のもの。

これを理解出来ない奴の方が独りよがりだよ。

862 :デフォルトの名無しさん:2018/08/19(日) 18:00:46.85 ID:sJHMEm8K.net
>>855
複数より単体の方が使いまわしが良いのは当然だ。
別ユ―ザーにも複数を強いるのは大きなデメリットだぞ。

863 :デフォルトの名無しさん:2018/08/19(日) 18:09:18.96 ID:fB2MuNJo.net
夏休みの壮大な空回りまだやってんのかよw

864 :デフォルトの名無しさん:2018/08/19(日) 18:10:36.42 ID:dXPlBnND.net
DLL同梱してるフリーウェアとか全滅だな



あ、フリーウェア自由に入れられる環境なんてないとかいう明後日のリプは要らないです

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

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

これ、VBAも同じ。
一般のexeファイルや、そのコードを配布する時にExcel入ってることが前提だなんてのはダメだな。

866 :デフォルトの名無しさん:2018/08/19(日) 18:21:20.20 ID:sJHMEm8K.net
>>864
そういう前提の一般のexeプログラムは良いだろ。
でも、俺は出来るだけWindows標準dllだけで何とかするという場合もある。
当然、何ともならないからインスト―ラでいろいろ入れるというのもある。
でも、exeファイル単体、インストーラ無しが有利なのは変わらん。

そして、専用言語が有った場合は、余計なものが必要無いのがデフォルトとなる。
したがって、より有利だ。

867 :デフォルトの名無しさん:2018/08/19(日) 18:23:51.21 ID:sJHMEm8K.net
>>864
ああ、仕事の方は正に自由に入れられないな。
有料の方が申請すれば入れられる場合もあるけどね。

868 :デフォルトの名無しさん:2018/08/19(日) 18:28:59.59 ID:NIMznYGz.net
>>847
>じゃないとこれからプログラミングを始める人に間違った情報与えることになるでしょ。

お前なんぞに言われなきゃならん理由なんぞねーわカス

869 :デフォルトの名無しさん:2018/08/19(日) 18:34:36.50 ID:Qn4G0bqC.net
ユーザーはファイル数など気にしない
OSデフォルト以外への依存性が最も少ない言語はPowerShellとC#
専用言語ではユーザーのニーズを満たせないし鎖国政策はデベロッパやユーザーの反感を買うだけ

870 :デフォルトの名無しさん:2018/08/19(日) 18:56:55.67 ID:sJHMEm8K.net
>>869
間違いなく気にする。
気にしないなんてのはExcel使ったこと無い奴だろ。

871 :デフォルトの名無しさん:2018/08/19(日) 18:59:54.19 ID:dQVlm8Bk.net
>>869
ユーザーは動けば良いからVBAじゃなくても良い
ユーザーは動けば良いからファイル数が増えても良い

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

1レスで矛盾するとはw

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

もっともVBAでどうにもならない場面で使うのはPowerShellじゃなくてC#だがね。

873 :デフォルトの名無しさん:2018/08/19(日) 19:05:34.72 ID:sJHMEm8K.net
>>871
動けば良いの動けばの部分にユーザーインターフェースも入ると言ってる。
つまり、機能面に入ってる。
もっともその中では最優先ではない。

しかし他言語のメリットは機能面にすら入っていないものが多い。
そして、機能面に入ってきた時はそっちを使う。
C#を使うのはそういう時だ。
めったに無いけど。

874 :デフォルトの名無しさん:2018/08/19(日) 19:07:47.65 ID:Qn4G0bqC.net
>>870
世の中には数多くのファイルで構成されたアプリがそれこそ数えきれないほどあって当たり前のようにユーザーに受け入れられてる
あなたは普段から単体ファイルエクセル縛りを自らに課して厳しい修行を続けてるからそれに慣れてしまったんだろうけど他の凡人はそうじゃないからね

875 :デフォルトの名無しさん:2018/08/19(日) 19:11:11.47 ID:Qn4G0bqC.net
>>871
動けばいいなんて誰が言ったんだよ? お前だろ
こっちは動けばいいんじゃなくてファイルが複数でも気にしないと言ってるんだ

専用言語じゃユーザーの求めるものが作れないんだからゆるさんにきまっとるだろ

876 :デフォルトの名無しさん:2018/08/19(日) 19:13:40.91 ID:Qn4G0bqC.net
>>872
プラットフォームを使ってアプリやライブラリを作るのはデベロッパーだ
デベロッパーが興味を持たないとユーザーへの恩恵も激減すんだよ
なぜこんな簡単なこともわからないかね

877 :デフォルトの名無しさん:2018/08/19(日) 19:41:50.91 ID:1fRN5ZDt.net
複数ファイル化なんてことをやったらプログラミングの素人ばかりの事務の現場は大混乱するぞ
意識的にディレクトリやファイルの管理が出来る奴の方が少なくて、勝手にファイルをリネームしたり移動させたりする奴が多いからな
配布時にもトラブル多発するだろうし

878 :デフォルトの名無しさん:2018/08/19(日) 19:46:56.36 ID:ij9zv305.net
複数ファイルからなるExcelマクロやbatファイルを部内に配布してるけど誰からも文句なんて出たことないぞ

879 :デフォルトの名無しさん:2018/08/19(日) 19:50:47.34 ID:ij9zv305.net
まあいまいち想像しにくいけど問題がある事務所があるらしいのはわかった

結局のところ人による話でやはり単一ファイルを自明の前提とするのは筋が悪いのでは?

880 :デフォルトの名無しさん:2018/08/19(日) 19:56:08.76 ID:ti+KfR55.net
ファイルがフォルダになるだけでしょ
xlsxだって要するにただのzip

881 :デフォルトの名無しさん:2018/08/19(日) 20:04:08.03 ID:dQVlm8Bk.net
>>875
そっか、そんなことは書いてないかw

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

作れるだろ、 VBAで。
一体、何を作ろうとしてるのよw

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

無理して1ファイルにする必要は無い。
しかし専用言語の場合は無理して無いからな。

883 :デフォルトの名無しさん:2018/08/19(日) 20:35:46.43 ID:sJHMEm8K.net
>>876
バーカ。
それは機能よりも優先順位はずっと低いんだよ。

884 :デフォルトの名無しさん:2018/08/19(日) 20:36:56.38 ID:sJHMEm8K.net
>>878
俺がそこにいて1ファイルで完結するファイルを配布したら使われるのは俺の方だ。

885 :デフォルトの名無しさん:2018/08/19(日) 20:39:47.18 ID:sJHMEm8K.net
バカばかりだ。
比べるべきは、ファイル数以外が全く同じなら1ファイルの方が使われるし、それが全てだということ。
VBAで組んだとかPythonで組んだとかは言語を知らないユーザーにとってはどうでも良いことだ。

886 :デフォルトの名無しさん:2018/08/19(日) 20:46:27.14 ID:dQVlm8Bk.net
>>876
デベロッパーが作ってるのはExcelそのもの。
それを活用するためのVBA。

それすらわからんの?w

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

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

こっちは満たせない場合は他言語使うと言ってるのに。
つまりVBA使った時点で満たせる場合なんだよ。

888 :デフォルトの名無しさん:2018/08/19(日) 21:32:59.05 ID:ij9zv305.net
この謎の1ファイル推しはほんとなんなんだろう…

889 :デフォルトの名無しさん:2018/08/19(日) 22:11:16.19 ID:Qn4G0bqC.net
マジキチ

890 :デフォルトの名無しさん:2018/08/19(日) 22:17:42.03 ID:awjRCaqI.net
相変わらず煽り耐性やスルースキルゼロの
余裕のないおっさんで溢れてるな

891 :デフォルトの名無しさん:2018/08/19(日) 22:30:59.47 ID:2hMRvgbC.net
他言語の話する奴は荒らしと認定し片っ端からNGでスッキリ

892 :デフォルトの名無しさん:2018/08/19(日) 23:10:18.62 ID:91EEzf2U.net
VBAスレなら俺でもマウントとれるだろう、という輩が集まって来てる

893 :デフォルトの名無しさん:2018/08/20(月) 07:48:10.47 ID:ZF3rODgA.net
>>849
VBAで問題解決したいからVBA質問スレで質問してるんだろ
バカなのか?

894 :デフォルトの名無しさん:2018/08/20(月) 08:04:10.47 ID:mbAXZ2v6.net
老害だらけの会社だとExcelくらいしか使えないっす

895 :デフォルトの名無しさん:2018/08/20(月) 09:21:32.11 ID:AknDDKaZ.net
>>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つのファイルにまとめているのかを考えれば当然のことなんだけどね。
世の中になんでアーカイブ機能が必要とされたのか分からんようじゃプログラマ失格だ。

896 :デフォルトの名無しさん:2018/08/20(月) 12:24:44.53 ID:cqJBAbO8.net
こんな事言うと叩かれそうだが、メールで渡した時に複数ファイルにリンクしてるとダブルクリックで開いだ時にマクロ動かないってクレームくるから単一ファイル主義になった。
zipにしてもWindowsが余計なことするせいで、展開せず開かれて無事死亡

897 :デフォルトの名無しさん:2018/08/20(月) 12:26:22.16 ID:0JZIJXAm.net
>>893
VBAというのがなんか凄いらしい程度の知識の質問者もこれまでにいっぱいいだだろう
まあお前にはその辺の言葉の裏まで読み取るのは難しそうだが

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

煽りじゃなくて聞きたいんどけど、単一ファイルで良かったっていうシュチュエーションを具体例出して教えてくれない?

898 :デフォルトの名無しさん:2018/08/20(月) 12:43:11.11 ID:9+BuUU+/.net
頼まれてもいないのにこんな匿名掲示板で言葉の裏を読もうとするエスパーいて草

899 :デフォルトの名無しさん:2018/08/20(月) 14:37:14.18 ID:/Aau3rEX.net
VBAよりC言語とかJavaとかのがまだ世間に知られてると思うけどな。

900 :デフォルトの名無しさん:2018/08/20(月) 15:33:26.46 ID:DKPPXyfT.net
じゃ、あんたはC言語とかJavaでExcelを操作すればいい

901 :デフォルトの名無しさん:2018/08/20(月) 17:13:42.50 ID:ZF3rODgA.net
>>897
当たり前のことを当たり前と認められないほどくやしいんだな

VBA質問スレでVBAで答えを出してやるのは当たり前のこと

902 :デフォルトの名無しさん:2018/08/20(月) 18:27:45.56 ID:AknDDKaZ.net
>>897
明らかに当たり前の話だと思ってたんだが、君は違うようだから聞きたい。
zip圧縮する必要が有る場合とzip圧縮する必要が無い場合で、それ以外全く一緒の時にどっちが手間がかかるんだい?

903 :デフォルトの名無しさん:2018/08/20(月) 18:37:13.23 ID:AknDDKaZ.net
>>897
Excelブックを移動する場面が思いつかない?
君、働いて無いだろ。

ニートはExcel使わなくても良いんだぞ。
表計算が必要ならOpenOfficeやGoogleスプレッドシートをお勧めするよ。

904 :デフォルトの名無しさん:2018/08/20(月) 18:51:00.44 ID:0JZIJXAm.net
ここまで具体例無し

905 :デフォルトの名無しさん:2018/08/20(月) 18:54:13.60 ID:0JZIJXAm.net
>>902
zip圧縮する場合はわざわざ単一ファイルにする必要がなくなるんだからそれ以外同じという条件が馬鹿げてる
あり得ない前提を元に妄想するの好きだなお前

906 :デフォルトの名無しさん:2018/08/20(月) 18:55:49.90 ID:AknDDKaZ.net
反論出来なくて別の話に持って行こうとするのはやめたまえ。

907 :デフォルトの名無しさん:2018/08/20(月) 19:01:10.79 ID:AknDDKaZ.net
>>905
???
複数ファイルの場合はzip圧縮すれば良いと言ったのは君だろう。
単一ファイルの場合はzip圧縮する必要が無い。
で、両者の機能が同じ場合に、それを扱うのに手間がよりかかるのはどっち?

908 :デフォルトの名無しさん:2018/08/20(月) 19:03:02.20 ID:AknDDKaZ.net
>>905
というか「わざわざ」と書いてるんだから、君自身明らかに分かってる筈なんだけどなあw

909 :デフォルトの名無しさん:2018/08/20(月) 19:14:40.17 ID:0JZIJXAm.net
こいつと話してると自分の日本語が不安になってくるんだがこいつが読めてないだけだよな???

910 :デフォルトの名無しさん:2018/08/20(月) 19:20:18.41 ID:DGf8d+v0.net
>>909
誤魔化さずに答えてやれば?
レスしてるやつ以外も見てるしさ。

911 :デフォルトの名無しさん:2018/08/20(月) 19:38:25.58 ID:0JZIJXAm.net
>>907
zip圧縮する場合とzip圧縮しない場合は、単一ファイルにするという制限が違うのだから、それ以外の手間が一緒になることはないよね
単一ファイルにしないほうが、作る手間は少なくなる(←ならないって言いそうだけど)

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


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


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

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

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





>>910
たすけて

912 :デフォルトの名無しさん:2018/08/20(月) 20:05:19.78 ID:AknDDKaZ.net
>>911
何を言ってる?
バカなの?

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

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

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

つまりどっちなんだ?

913 :デフォルトの名無しさん:2018/08/20(月) 20:08:59.93 ID:AknDDKaZ.net
バカ丸出しだ。
>>895に反論するためにzip圧縮の話をしたんじゃなかったのかよ。

くだらない反論(zip圧縮の話)なんかせずに最初から>>895に反論出来ないと言えば良いのに。

914 :デフォルトの名無しさん:2018/08/20(月) 20:17:11.55 ID:AknDDKaZ.net
根本的に日本語に弱いようだから、分かりやすく二者択一を用意してやるよ。

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

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

君の意見は1と2のどっち?

915 :デフォルトの名無しさん:2018/08/21(火) 07:55:36.68 ID:NMZyPfYZ.net
プログラムをあちこち移動させるとかセキュリティリスクじゃん
プログラムは所定の場所に配置して呼び出すものだ
それを理解してれば単体ファイルにするメリットがほとんど無いことがわかる

916 :デフォルトの名無しさん:2018/08/21(火) 08:08:01.79 ID:YkHsku6A.net
ブックをメールに添付したこと無い人?
仕事したこと無いのかな?

917 :デフォルトの名無しさん:2018/08/21(火) 08:09:21.27 ID:YkHsku6A.net
自分中心で今何の議論してるのかも忘れるような奴が増えたね。

918 :デフォルトの名無しさん:2018/08/21(火) 09:20:44.29 ID:pB9/bsHJ.net
ここは議論スレじゃない、てことは忘れていいんですかね

919 :デフォルトの名無しさん:2018/08/21(火) 09:20:56.55 ID:QmlNWrEM.net
>>915
excel.exeとかのアプリケーションファイルと個々のマクロ付きファイルの区別が出来てなくて草生える

920 :デフォルトの名無しさん:2018/08/21(火) 11:47:28.01 ID:CaH5SCiT.net
ここが分かりません ←質問
○○ってxxxなんですか? ←質問
お前そんなことも知らないの? ←質問
バカなの? ←質問

921 :デフォルトの名無しさん:2018/08/21(火) 12:04:17.16 ID:LMQ5YiiU.net
>>920
はあ? ←質問

922 :デフォルトの名無しさん:2018/08/21(火) 19:07:20.32 ID:7sEKkP0/.net
>>916
ないなぁ
ファイル交換は別のよりセキュアで楽な方法で行いメールは通知のみ
ビジネスの基本だと思うけど、まさかメールでエクセル送っちゃうようなガバガバな企業なの?大企業って嘘だったのか?

923 :デフォルトの名無しさん:2018/08/21(火) 19:13:32.71 ID:7sEKkP0/.net
まあ普通はマクロ付きブックなんて送られたら真っ先に不正アクセスを疑うわな

924 :デフォルトの名無しさん:2018/08/21(火) 19:43:37.94 ID:Ajbm2g4RL
めっちゃ初歩的な質問をしてもいいですか?
VBAで
エクセルから新規ワードを開いて前面に持ってきたいんですが
Set w = CreateObject("Word.Application")
  w.Visible = True
のあとに
.Activateとしても
.Activate
VBA.AppActivate Excel.Application.Captionとしても
はじめは前面くるのですが、閉じてまたするとダメになります。
色々調べましたが分かりませんでした。
なにかいい方法はございませんか?
Excel2010,windows7です。
よろしくお願い致します。

925 :デフォルトの名無しさん:2018/08/21(火) 19:41:46.35 ID:YkHsku6A.net
>>922
プッ。
そのセキュアな方法でも同じことに気付いて無かったのかな?

こういうこと言う奴が出てくると思ったw

926 :デフォルトの名無しさん:2018/08/21(火) 19:44:08.91 ID:YkHsku6A.net
目先のことに囚われて噛みつく方向性が分かって無いんだよなあ。

927 :デフォルトの名無しさん:2018/08/21(火) 19:50:15.22 ID:7sEKkP0/.net
>>925
メールしか使ったことないタイムトラベラーさんには現代のリソース共有はちょっとイメージできないのかもしれんなあ

928 :デフォルトの名無しさん:2018/08/21(火) 20:20:28.36 ID:MMaCm1hx.net
>>922
ここじゃなく世の中全体でアンケート取ったら絶望的な結果だと思うよ
(日本だけかもしれんけど)

929 :デフォルトの名無しさん:2018/08/21(火) 20:46:52.41 ID:K3bJIWvH.net
エクセルファイル1つで片がつく学生実験やママの家計簿みたいな仕事は楽そうで羨ましい
日頃から百や千をこえるエクセルファイルを扱ってるともう物理的な事情で複数のデータとマクロを1つになんて言ってられない

930 :デフォルトの名無しさん:2018/08/21(火) 20:56:14.57 ID:YkHsku6A.net
>>927
バカだからまだ分かってないw
ちなみにうちの会社でも専用のセキュアでファイルをやり取りできるようなシステムがある。
それでもメールに添付する奴もいるが。
しかし俺はメールにファイルを添付するようなことはしないな。
それでも、同じことだ。
だからそんなシステムのことまで書くようなムダなことはしないだけの話。

君はおバカさんだからわざわざムダなことをするようだが。

931 :デフォルトの名無しさん:2018/08/21(火) 21:01:39.45 ID:YkHsku6A.net
>>929
???
そんなもんまでエクセルでやってるアホ会社の話か?
それはもうエクセルでやるような話じゃ無いだろ。

あるいは文書としてファイルが多数有っても、それぞれが全然別の文書ということなら1つ1つの文書にVBAが乗っかってる方が良いけどな。

932 :デフォルトの名無しさん:2018/08/21(火) 21:07:35.67 ID:MMaCm1hx.net
でも自治体はもっと酷いよ

933 :デフォルトの名無しさん:2018/08/21(火) 21:08:16.81 ID:K3bJIWvH.net
>>931
メールで1つのエクセルファイル交換してよろこんでるような規模の会社だと想像つかんだろうな
住んでる世界が全く違うのに分かり合うことなんてさいしょから無理だったんだよ

934 :デフォルトの名無しさん:2018/08/21(火) 21:10:25.67 ID:66Ai7LVD.net
毎回荒らしいるからすげー聞きづらかったんだけどいつまでもいるから今聞く教えて
javaとかc、pythonでexcelファイルの、あるシートのあるデータ利用して云々かんぬんして結果をそのexcelに上書き
て処理するとき一番楽に実装出来るのはどの言語なの
詳細だけど特に言語の指定無し 俺が使えるのがjava.c.python.powershellくらい
大抵はexcel内のデータ利用してスクレイピングとかwebapi叩くとかして情報取得してexcelに転機
実行速度も多少は気にするけどそれよりも正確さとユーザがどれだけ楽かが重要
具体的に言えば処理に15分掛かろうがユーザがマクロ実行ボタン押すだけでほか作業やっても良いなら十分許容される

935 :デフォルトの名無しさん:2018/08/21(火) 21:24:00.50 ID:MMaCm1hx.net
>>934
もしかしたらSQLかもしれないよ
対象のExcelシートがどんなものかによるけどね

936 :デフォルトの名無しさん:2018/08/21(火) 21:34:06.79 ID:JvEAafEP.net
>>929
> 日頃から百や千をこえるエクセルファイルを扱ってる
どんな職場だよ w

937 :デフォルトの名無しさん:2018/08/21(火) 21:36:22.08 ID:JvEAafEP.net
>>934
その中ならPowerShellだな

938 :デフォルトの名無しさん:2018/08/21(火) 21:47:19.11 ID:K3bJIWvH.net
>>934
https://github.com/dfinke/ImportExcel

Import-Excel input.xlsx |
ForEach { スクレイピングとかwebapi叩くとか } |
Export-Excel output.xlsx

939 :デフォルトの名無しさん:2018/08/21(火) 22:27:35.38 ID:m8PJVxGR.net
>>934
似たようなことをpythonでやってるわ
openpyxlが便利
配布するつもりならpyinstallerでexe化

940 :デフォルトの名無しさん:2018/08/21(火) 23:42:05.24 ID:Qu48wIjsj
924ですがこんなところで聞いたのが間違いでした。笑
ありがとうございました!

941 :デフォルトの名無しさん:2018/08/22(水) 00:28:46.48 ID:h82tfzI1.net
PowerShell は複雑なものは、ダメ!

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

Selenium WebDriver なら、Ruby, Python

942 :デフォルトの名無しさん:2018/08/22(水) 00:47:08.06 ID:DdpZS95R.net
ファイルならpowershellだろう
しかもなんでwindowsでRuby・・・

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

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

まあ、よく分からんが君の会社よりはデカイと思うがね。

944 :デフォルトの名無しさん:2018/08/22(水) 02:00:58.64 ID:NmStLZEH.net
どの言語もExcel開いた状態で動かすのに向いてない。
あとは自分の環境だけで動かすだけならどれでも良い。
他の人も動かすならPowerShellとかJavaとかかな。

どれもデータとプログラムが分離されてるのが不便なんだが、どうしてもExcelブックということを忘れる人が多いね。
まあ、VBAでも分離できるからどちらにも対応出来るけどね。

945 :デフォルトの名無しさん:2018/08/22(水) 02:05:49.00 ID:fEBzZlfO.net
どんな職場だよw
◯◯とかかな

みたいな疑問文が含まれていれば質問スレのレスとしてセーフという風潮

946 :デフォルトの名無しさん:2018/08/22(水) 02:51:22.72 ID:KWD34WOT.net
>どれもデータとプログラムが分離されてるのが不便
いや一緒になってるほうが不便だろ…

947 :デフォルトの名無しさん:2018/08/22(水) 05:18:50.52 ID:GQLClv+X.net
>>942
いつものRuby廚でしょ、スルー推奨

948 :デフォルトの名無しさん:2018/08/22(水) 05:42:30.14 ID:/pvGPZu6.net
>>944
素人はデータとマクロを一緒にしたがる
ブックとは分離したほうが再利用しやすくて良い
分離するからvbaを使う意味はない
どの言語でも開いた状態で動かすことは簡単

949 :デフォルトの名無しさん:2018/08/22(水) 06:13:07.83 ID:e5VZnZer.net
ホットキーでPSコンソールを開いてActiveオブジェクトや選択オブジェクトを処理するための自作コマンドを打つ
Excelとはいえマウスはできるだけさわりたくないじゃん

950 :デフォルトの名無しさん:2018/08/22(水) 07:47:46.52 ID:KkxvCEpq.net
誰かこのスレの雑談・議論スレ作ってくれないか?

951 :デフォルトの名無しさん:2018/08/22(水) 08:01:39.69 ID:NmStLZEH.net
>>948
ブックの場合は一緒の方が便利なことも多い。
Excel使ったことない奴はそんなことも気付かない。
VBAではデータとプログラムを分離することも出来る。
両方できる方が良いのは当たり前。

開いた状態から別ファイルダブルクリックなんてかっこ悪いやり方をしなきゃならんのはいかがなものか。

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

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

分離されてた方が良い場合ってのはデータの値があるしきい値によって自動的に分類され、それによってセルに色が付けられるなどの場合だ。

953 :デフォルトの名無しさん:2018/08/22(水) 09:26:46.21 ID:K1XMYdYS.net
デバグのときF8でコード1行ずつ実行できるのはいいのですが
SubやFunction呼び出しのときはわざわざ見に行かなくてよくする設定はどうしたらいいですか?

954 :デフォルトの名無しさん:2018/08/22(水) 10:23:52.61 ID:fEBzZlfO.net
他のプロシージャを呼び出してる行の次の行とかにブレークポイントを設定してから普通に呼び出し元のプログラムをF5で実行して、ブレークポイントで止まったところからF8でステップ実行を再開すれば良いと思う
呼び出された側のプロシージャのステップ実行をすっ飛ばせるよ

955 :デフォルトの名無しさん:2018/08/22(水) 11:06:16.49 ID:y1N7+R1N.net
>>953
Shift + F8

956 :デフォルトの名無しさん:2018/08/22(水) 11:17:52.07 ID:uHHsRsQ2.net
どうでもいい雑談で1スレ消費してしまった…

957 :デフォルトの名無しさん:2018/08/22(水) 11:59:18.29 ID:g9Ou6iy2.net
>>951
ユーザーはアプリを使いたいんだ
それなのにデータのロードを強要する1ファイルスタイルは最悪と言っていい
エクセル自体遅いのに起動時にデータまでロードするとか遅すぎて話にならん

958 :デフォルトの名無しさん:2018/08/22(水) 12:01:42.56 ID:g9Ou6iy2.net
>>952
セルに色つけたりグラフ作るのにわざわざスプレッドインターフェースを開く必要はない
色をつけたりグラフを作るコマンドを書いてそのコマンドにデータを流し込むだけ
データと分離しているからこのコマンドは何度も再利用できる

959 :デフォルトの名無しさん:2018/08/22(水) 12:08:18.81 ID:khg6W7e6.net
もう質問スレ消して雑談スレだけでいいよ。匿名掲示板なんていくつもあるし。

960 :デフォルトの名無しさん:2018/08/22(水) 12:08:58.02 ID:NmStLZEH.net
>>957
>>958
バカだろw
君はExcelでブックを開いたことが無いと言いたいのかいw

961 :デフォルトの名無しさん:2018/08/22(水) 12:13:01.39 ID:NmStLZEH.net
データを見ながらどうするかというのがExcelなんだね。
コマンドで流し込むなら、それ以前に表の表示閲覧全てを業務システムでやれば良いわけで、Excelなんぞというアプリの需要も存在しない。

したがってExcelなどというアプリは見たことが無いと言いたいのか?

962 :デフォルトの名無しさん:2018/08/22(水) 12:26:13.82 ID:sTWd/c17.net
excelは帳票出力ツールでもDBでもメモ帳ですら無い
表計算ソフトだって言いたいの

963 :デフォルトの名無しさん:2018/08/22(水) 13:28:13.92 ID:S7ILKLj9.net
Excel開いてデータ見ながらアレコレ弄る場合、ささっと書けたほうが便利
なのでそういう場合irb(rubyの対話実行)使ってる
書き捨てプログラムはやっぱりrubyが強い

964 :デフォルトの名無しさん:2018/08/22(水) 14:43:36.16 ID:wdTatf/S.net
でましたRubyヴァカ wwwwwwww

965 :デフォルトの名無しさん:2018/08/22(水) 14:49:19.76 ID:S7ILKLj9.net
ヴァカって久しぶりに聞いた

966 :デフォルトの名無しさん:2018/08/22(水) 15:37:29.47 ID:KXBQcxdn.net
リアルタイムプレビューは簡単に実現できるのでエクセル固有の優位性とは言えないな
そしてリアルタイムじゃなくてもデータ編集、処理編集、コマンド実行のループならエクセルの狭いウィンドウでシートとIDEを行ったり来たりよりもずっと早く作業できる

967 :デフォルトの名無しさん:2018/08/22(水) 16:46:23.26 ID:bHLnqjZ4.net
RubyとかいうゴミクズはVBA以下

968 :デフォルトの名無しさん:2018/08/22(水) 19:03:37.04 ID:I61xiysx.net
スパークラインをVBAで挿入したいんだけど範囲指定のところがうまくいきません。
わかる方いたら教えてください。よろしくお願いします。

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

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

のようにして ワークシートごとの数値群をスパークラインにしていきたいのですが、、、
何か良い方法を教えてください。
よろしくお願いします。

969 :デフォルトの名無しさん:2018/08/22(水) 19:06:12.75 ID:NmStLZEH.net
A「送った2つのファイルの内、拡張子がrbのファイルをダブルクリックしてください。
B「なんかファイルが開けませんとエラーが出るよ」
A「ん?・・・!ああ、それはRubyがインストールされて無いということですね。」
B「で、どうしたらいい?」
A「〜というぺージでダウンロードしてからPCにインストールしてください。」
B「分かった。」

しばらく後、
B「インストールしてたらさ、変な警告メッセージが表示されてさ、暫くしたらウチの会社の情シスの人がやって来て、勝手にソフトをインストールしないで下さいって怒るんだよ。で、Rubyのインストールはダメだって。」
A「そうなんですか。」
B「これさあ、どうしたら良いんだろう。もう駄目ってこと?」
A「・・・・・・。わかりましたVBAで組んで送ります。」
B「VBAってのは何だい?」
A「〜が〜で、〜というわけなんですよ。」
B「ふ〜ん。何となく分かったけど、どうして最初からそのVBAってのを送ってくれなかったんだい?」
A「・・・・・・・・・・・・」

970 :デフォルトの名無しさん:2018/08/22(水) 19:10:31.37 ID:3pfLjmIv.net
excelは入ってる前提ですか

971 :デフォルトの名無しさん:2018/08/22(水) 19:13:15.55 ID:S7ILKLj9.net
>>969
ocra使えよハゲ

972 :デフォルトの名無しさん:2018/08/22(水) 19:43:28.97 ID:+UDLE+c7.net
>>969
んでVBAを送ったらバージョン違いやビット数違いで動かないとか
ちょっとシートをいじったら壊れて動かなくなったとか
よくわからないメッセージがでてマクロの実行ができない
とかまたトラブルが発生するんだろうな
セキュリティ設定強めで情弱顧客の組み合わせではありがちなパターンだな
最初からPowerShellにしときゃなんの依存もなく確実に動いたのにくだらないことで信用を失ってもったいないなあ

973 :デフォルトの名無しさん:2018/08/22(水) 19:46:22.95 ID:jIQXHl+4.net
パワーシェルがバージョン間の差異まで吸収してくれると思ってるパワー系バカを探してるんだけどこの辺に来てない?

974 :デフォルトの名無しさん:2018/08/22(水) 19:48:07.56 ID:+UDLE+c7.net
>>973
なんも知らんなら黙ってた方がいいぞ

975 :デフォルトの名無しさん:2018/08/22(水) 19:54:10.93 ID:NmStLZEH.net
>>972
スゲー。
PowerShellだと削除したシートも甦らせてくれるとはシラナカッタ。

976 :デフォルトの名無しさん:2018/08/22(水) 19:56:16.90 ID:jIQXHl+4.net
>>974
なんだ?俺はパワー系バカを探してるんだがおまえ知ってるのか?

977 :デフォルトの名無しさん:2018/08/22(水) 20:05:38.43 ID:HvlLP3Kg.net
>>972
PowerShellって使ったこと無いんだけど、ユーザー定義関数とか作れるの?
え?作れないの?ゴミじゃん

978 :デフォルトの名無しさん:2018/08/22(水) 20:06:09.29 ID:CGdGAG7L.net
ビット数の違いは条件付きコンパイルで吸収すれば良いだろ

979 :デフォルトの名無しさん:2018/08/22(水) 20:10:18.16 ID:+UDLE+c7.net
>>977
作れるぞ

>>978
うわめんどくさ

980 :デフォルトの名無しさん:2018/08/22(水) 20:15:11.20 ID:HvlLP3Kg.net
>>979
じゃあ作り方教えてよ。
参考ページでもいいから。

981 :デフォルトの名無しさん:2018/08/22(水) 20:21:01.59 ID:HvlLP3Kg.net
>>979
あとユーザーフォームの代わりになるものとか、ワークシートイベントとかが拾えるのかも気になる。
この3つがスムーズに作れない限りPowerShellなんて産廃

982 :デフォルトの名無しさん:2018/08/22(水) 20:34:54.69 ID:CGdGAG7L.net
ユーザーフォームなら.NETで作れるだろ

983 :デフォルトの名無しさん:2018/08/22(水) 20:39:10.83 ID:NmStLZEH.net
PowerShellね。
今日、さすがにExcelとは関係ないzipの解答とできたフォルダ名の変更だからかなり久々にVBAじゃなくてPowerShellで書こうとしたさ。

v5インストール?
実行ポリシー?
VBAで良いや。

984 :デフォルトの名無しさん:2018/08/22(水) 20:45:35.66 ID:6796EQ6v.net
>>964, >>967
>>947

985 :デフォルトの名無しさん:2018/08/22(水) 20:45:55.31 ID:DdpZS95R.net
>>977
お前がゴミじゃんw

986 :デフォルトの名無しさん:2018/08/22(水) 20:48:11.66 ID:JLjJESO/.net
csvファイルの中身を整理整頓して別シートに並べ直すマクロを書いてるんだけどもなんか下手くそだなあと思う
具体的に下手くそな場所が言えないから改善もできない
なんかこう微妙だなあというときどうしてるの?

987 :デフォルトの名無しさん:2018/08/22(水) 20:53:16.42 ID:zkT1nNYO.net
>>986
「正規化」という
そういうのは続けてれば慣れるよ

988 :デフォルトの名無しさん:2018/08/22(水) 20:53:45.96 ID:HvlLP3Kg.net
>>985ほどじゃないけどな?

989 :デフォルトの名無しさん:2018/08/22(水) 20:57:54.17 ID:FeRIeQCU.net
>>983
そこで躓くのは流石に意味分からん
というか最新は6だぞ

990 :デフォルトの名無しさん:2018/08/22(水) 21:13:56.67 ID:e5VZnZer.net
>>981
function
System.Windows.Forms
Register-ObjectEvent

991 :デフォルトの名無しさん:2018/08/22(水) 21:17:30.80 ID:e5VZnZer.net
>>983
shell.application

992 :デフォルトの名無しさん:2018/08/22(水) 21:24:30.86 ID:HvlLP3Kg.net
>>990
あ、ごめんユーサー定義関数って、ワークシート上で使えるユーザー定義関数のことね?
VBAなら普通に定義したらワークシート上で使えるから区別するの忘れてたわ。

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

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

Register-ObjectEventとか聞いたこと無いんだけど、これも暗記しないと無理だよね。
VBAならVBEで数クリックで作れるものに、どれだけ苦労すれば作れるの?

993 :デフォルトの名無しさん:2018/08/22(水) 21:31:27.69 ID:LgCz8h8z.net
>>989
配布前提だと実行ポリシーは面倒だわな
PowerShell -ExecutionPolicy RemoteSigned …
で逃げられるけど

994 :デフォルトの名無しさん:2018/08/22(水) 22:46:05.33 ID:e5VZnZer.net
>>992
フォーミュラのことなら知らない
ネイティブ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行で済むようになるのがプログラムの魅力
何度もマウスをクリックしたくないというのが人情

995 :デフォルトの名無しさん:2018/08/22(水) 23:10:51.30 ID:9AKJRHSD.net
>>994
これ、どんなして使うのか教えて!
PS1に記述? Excelからどんなして呼び出すの?

996 :デフォルトの名無しさん:2018/08/22(水) 23:52:09.50 ID:HvlLP3Kg.net
>>994
フォームを作る部分で調べなければならないようでは凄くハードル高いよね。
誰でも(一度でも作った経験がある人なら)1分かからずフォーム作れるからVBAが良いのであって・・ベテランしか1分で作れないようなものはダメ
自作ライブラリ化しても、ある程度増えてきたら、何ていう名称だったかとか探さなくちゃいけないし結局、時間かかるよね。

>>995
たしかに、そもそもどうやって呼び出すんだろう。
エクセル上のボタンにハイパーリンク付けて実行する感じ?でもカレントディレクトリの・・・って指定出来たっけ。

997 :デフォルトの名無しさん:2018/08/23(木) 00:22:02.48 ID:5czy+V1T.net
>>996
そうか?
VBEのどこをどう操作したらどうなるんだってのすごくわかりにくいと思うけどな
.NETのコードを覚えるほうがずっと簡単だったよあっちはドキュメントも充実してるし

例えば自分がさっき書いたFlow Layoutの上にTextBoxとButtonが乗ってるサンプルだけど
初心者になった気持ちでExcel FormsでFlow Layoutってどうやってつくるんだろう? って考えて
Excel VBA Forms Flow Layoutとか検索キーにいれてググッてみたのだがコレだというのがいっこうに出てこない
検索してもすぐにはわからないならデザイナ頼りの初心者じゃなおさらこの時点で詰みだよね

998 :デフォルトの名無しさん:2018/08/23(木) 01:13:45.31 ID:CnER65fr.net
>>997
フローレイアウトが便利なのは分かるが、そもそもVBAで作るようなフォームでフローレイアウトが必須な場面はまず無い。
少なとも長年ExcelVBAで開発してきて可変サイズのフォームを作った経験はほぼ皆無。
普通にボタン置くだけで目的は達せられるのに、わざわざ不要な機能実装する必要はないと思う。

999 :デフォルトの名無しさん:2018/08/23(木) 01:33:04.25 ID:ufkyuu0q.net
自分が使ってないから不要理論

1000 :デフォルトの名無しさん:2018/08/23(木) 02:10:42.43 ID:MddzC4G8.net
>>999
不要なのはフローレイアウトを使わなくても実現できるからで、自分が使ってないと言うのは実例

1001 :デフォルトの名無しさん:2018/08/23(木) 05:59:50.61 ID:kThmoP0z.net
>>998
それ言っちゃうとVBA自体使わなくても目的を達せられるからVBAは必要ないってことになる
自分がその実例

1002 :デフォルトの名無しさん:2018/08/23(木) 07:10:59.23 ID:Vto4tcSz.net
1000?

1003 :2ch.net投稿限界:Over 1000 Thread
2ch.netからのレス数が1000に到達しました。

総レス数 1003
305 KB
掲示板に戻る 全部 前100 次100 最新50
read.cgi ver 2014.07.20.01.SC 2014/07/20 D ★