[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 05/24 06:47 / Filesize : 292 KB / Number-of Response : 1024
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Excel VBA 質問スレ Part60



1 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 20:39:09.64 ID:6HWXzj9o.net]
ExcelのVBAに関する質問スレです
コード書き込みや作成依頼もOK
※前スレ
Excel VBA 質問スレ Part59
https://mevius.5ch.net/test/read.cgi/tech/1549692750/

2 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 20:39:59.29 ID:6HWXzj9o.net]
何で誰も立てないの

3 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 21:14:45.74 ID:BICk2jMh.net]
>>1乙だけどワッチョイ抜けてる…

4 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 21:48:42.20 ID:dHb5YcPj.net]
>>2
もう必要ないから

5 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 23:05:16.78 ID:52o7PX0a.net]
>>2
未回答の質問が特になかったから

6 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 01:48:38.37 ID:F3UCopkF.net]
前スレの最後の方で承認欲求モンスター共がAccessの話でマウント合戦初めて、もうみんなこのスレ要らないやって思ってたんだぞ

7 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 08:15:42.60 ID:L17xYYyd.net]
次からAccessスレも含めて↓でいいんじゃないかな
ここ無くなって↓あるの初めて知った
最近outlookVBA使い始めたんだけど、もっと早く使うんだったと後悔

VBAなんでも質問スレ Part2 [転載禁止]©2ch.net
https://mevius.5ch.net/test/read.cgi/tech/1432173164/

8 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 08:40:24.61 ID:n1sOdbaQ.net]
やっと出来たか

前のExcel VBAのスレで、次スレ検索したら、Accessの
https://mevius.5ch.net/test/read.cgi/tech/1544620479/
が出てきたぞ

VBAは全部まとめていいんじゃねえか?

9 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 09:42:14.71 ID:168XCQuT.net]
お願いします。

Sub teust()
n = Cells(Rows.Count, "b").End(xlUp).Row + 1
Range("b" & n).Select
ActiveCell.FormulaR1C1 = Sheets(2).Range("i4")

End Sub

a b c b …
ってやってるですがB列だけ9個下に表示されます。

考えられる原因はなんでしょうか(泣)

abcb…はコピペしてるので何故かB列だけ下に行きます

10 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 11:43:51.79 ID:zQ1XyGkC.net]
>>9
Cellsで参照してるアクティブシートのB列だけ、最終行であるべき行よりも9行下に余計な値の入ったセルがあるとかじゃない?
変な空白が入ってたり、表の欄外に他人が勝手にコメントつけてたりとかありそう



11 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 12:05:15.62 ID:ZlmVE6mc.net]
MsgBox Range("B" & n).Value

とか一度やってみて

同じような事が起きたことあるけど
会社のおっさん上司が白色の文字をそのセルに置いてたわ

12 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 14:35:17.64 ID:zQ1XyGkC.net]
コンソールの使い方知ってるならDebug.Print n とかDebug.Print Range("B" & n).Value でも良し

13 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 16:19:59.54 ID:5mJrF7aW.net]
>>9
正直、コードが微妙に感じる。
1行で済むだろ。

それと、ブックとかシートは余程のことが無い限り省略しない方が良い。

14 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 17:40:29.60 ID:aVImaY3T.net]
>>8
良いと思う

15 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 20:10:18.97 ID:zQ1XyGkC.net]
>>13
そういうコメントするなら一行コードを書いてあげるのが親切じゃね

16 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 20:52:23.19 ID:5mJrF7aW.net]
>>15
sht.Cells(sht.Rows.Count,2).End(xlUp).Offset(1,0).FormulaR1C1=Sheet(2).Range("I4").Value
とかかな。
FormulaR1C1とかValueは適宜実際に併せて変えてくれ。
Sheet2のI4に式が入ってるとは思えないから両方Valueで良いような気がする。

17 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 21:43:54.03 ID:aVImaY3T.net]
>>16
実際書いちゃう人大好き

18 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 23:17:32.63 ID:5mJrF7aW.net]
別に1行にすべきというわけじゃ無い。
.SelectとActiveCellが良くないということ。
あと、元の情報が無いのとスマホで書いたからブックは省略したけど、自分が組んでたら省略はしない。

19 名前:デフォルトの名無しさん mailto:sage [2019/03/19(火) 02:31:46.42 ID:vV4Rcm78.net]
入力のあったセルの場所が分かったとしても、また同じ事が起きそう
入力させるセルと出力するセルはハッキリ分けた方がいいと思うよ

20 名前:デフォルトの名無しさん mailto:sage [2019/03/19(火) 06:29:25.90 ID:4N2t7FIS.net]
みんなこっちにいるよ
https://mevius.5ch.net/test/read.cgi/tech/1432173164/



21 名前:675 mailto:sage [2019/03/19(火) 12:34:39.62 ID:ipysPyU9.net]
確実に全セル入力されてる列があるならそれを基準に使う手もアリ(例えば項番の列とか)

22 名前:デフォルトの名無しさん mailto:sage [2019/03/19(火) 12:37:36.01 ID:cTNTzw16.net]
新しくシートを作成するコードで、
シート名をInputboxで入力させるんだけど、
もし名前が被ったときに、エラーを回避して
Subを終わらせることってできる?

シートも結構いっぱいあるから
「名前が一致したとき」にExit Sub
ってのはやりたくないんだけど…

23 名前:デフォルトの名無しさん mailto:sage [2019/03/19(火) 13:02:44.27 ID:ajcvehyS.net]
>>22
For Eachで全シートの名前と比較して、同じのがあったら作らない

24 名前:デフォルトの名無しさん mailto:sage [2019/03/19(火) 13:09:43.79 ID:B40U/hNg.net]
>>23
最後の3行が無ければ俺も同じ事をレスしてた

25 名前:デフォルトの名無しさん mailto:sage [2019/03/19(火) 13:19:11.43 ID:SqXQzXb0.net]
>>22
最初に名前があるかどうかの処理をかませばいいだけ
シート作ってから一緒に何かしようとするとややこしいしミスするからオススメできない

Sub foo()
希望シート名 = InputBox("シート名を入力")
For Each 既存シート In ThisWorkbook.Worksheets
'小文字半角に変換、統一して比較
If StrConv(希望シート名, 6) = StrConv(既存シート.Name, 6) Then
MsgBox ("既にあるシート名でした。終

26 名前:了します")
Exit Sub
End If
Next

Set 新シート = Worksheets.Add
新シート.Name = 希望シート名
'新シートで処理

End Sub
[]
[ここ壊れてます]

27 名前:デフォルトの名無しさん mailto:sage [2019/03/19(火) 15:13:53.64 ID:rooN1XdM.net]
>>23
>>24
>>25

ありがとう!
試してみますわ

28 名前:デフォルトの名無しさん mailto:sage [2019/03/19(火) 15:26:37.07 ID:rooN1XdM.net]
できたー!ありがとうございました!
まさにこれっすー!

29 名前:デフォルトの名無しさん mailto:sage [2019/03/19(火) 19:23:19.44 ID:kI5HhWJr.net]
オレはループ回すの面倒(遅い?)から on errorでやるわ

30 名前:デフォルトの名無しさん mailto:sage [2019/03/19(火) 19:31:40.14 ID:gEDMHfls.net]
on errorってエラーの決め打ちじゃなくて「このエラーが出るはず」という使い方だから、他の手段があるならあまり積極的には使わない方がいいと思う



31 名前:デフォルトの名無しさん mailto:sage [2019/03/19(火) 19:59:00.27 ID:G9/JqRut.net]
tryか

32 名前:デフォルトの名無しさん mailto:sage [2019/03/19(火) 22:17:46.56 ID:fSzJr70Z.net]
on errorの場合はworksheets.add.nameで作ってエラー時はActiveSheet.Deleteみたいな処理にすんのかな
不測の事態が起きそうで怖いけど

33 名前:デフォルトの名無しさん mailto:sage [2019/03/19(火) 22:26:38.38 ID:4+n02oxf.net]
シートに配置したフォームコントロールのボタンのクリックとマクロを関連付けています
この時、ボタンのテキストを取得する方法はありますか?
Application.Caller
だと名前は取得できるのですが
ボタンの名前をテキストと同じものに変更する、でも良いです

34 名前:デフォルトの名無しさん [2019/03/19(火) 22:31:52.70 ID:aHt3ijA4.net]
>>16
ブック.シートをwithでくくりたい(´・ω・`)

35 名前:デフォルトの名無しさん mailto:sage [2019/03/19(火) 22:49:35.77 ID:gEDMHfls.net]
>>32
ボタンのテキストはどうやって設定した?captionプロパティじゃないのか?

36 名前:デフォルトの名無しさん mailto:sage [2019/03/19(火) 23:00:11.13 ID:4+n02oxf.net]
>>34
手作業です

37 名前:デフォルトの名無しさん mailto:sage [2019/03/19(火) 23:02:44.80 ID:gEDMHfls.net]
>>35
ボタンに表示している文字の事を言ってるなら、手作業でもなんでもcaptionプロパティに入れてるはずだが

38 名前:デフォルトの名無しさん mailto:sage [2019/03/19(火) 23:07:48.99 ID:8F1IYR8J.net]
リストボックスのリストを更新した時クリックイベントが発生するのは何故?

39 名前:デフォルトの名無しさん mailto:sage [2019/03/19(火) 23:14:34.15 ID:4+n02oxf.net]
>>36
そのcaptionプロパティを取る方法が分からないのです
https://i.imgur.com/Z5g9J0j.png

引数としてオブジェクトが渡されるわけでもないし、何か方法はあるのでしょうか

40 名前:デフォルトの名無しさん mailto:sage [2019/03/19(火) 23:21:08.44 ID:gEDMHfls.net]
>>38
ボタンのオブジェクト名.caption



41 名前:デフォルトの名無しさん mailto:sage [2019/03/19(火) 23:22:51.25 ID:gEDMHfls.net]
ボタンに限らずプロパティの指定の仕方はみんな同じ

42 名前:デフォルトの名無しさん mailto:sage [2019/03/19(火) 23:22:59.66 ID:Ocf5WOX6.net]
いろんなボタンにおんなじハンドラ割り当ててるんでしょ?

43 名前:デフォルトの名無しさん mailto:sage [2019/03/19(火) 23:29:58.14 ID:4+n02oxf.net]
>>39
えぇ、それは

44 名前:分かるんですが

>>41
そうです
複数のボタンのclickイベントに同じマクロを登録し、
clickしたボタンのcaptionを取りたい
https://i.imgur.com/IWsgjEQ.png
[]
[ここ壊れてます]

45 名前:デフォルトの名無しさん mailto:sage [2019/03/19(火) 23:33:09.14 ID:n4w5LXnr.net]
>>42
マクロと言ってる時点で死ねよ

46 名前:デフォルトの名無しさん mailto:sage [2019/03/19(火) 23:34:33.07 ID:vV4Rcm78.net]
>>38
OLEオブジェクトのコレクションからnameプロパティの一致する物を探すとか

47 名前:デフォルトの名無しさん mailto:sage [2019/03/19(火) 23:34:51.64 ID:gEDMHfls.net]
じゃあSheet1.buttons(application.caler).captionは?

48 名前:デフォルトの名無しさん mailto:sage [2019/03/19(火) 23:38:15.01 ID:vV4Rcm78.net]
少々強引だが、apiのGetCursorPos関数でマウスポインタの場所のコントロールを取得って方法もある

49 名前:デフォルトの名無しさん mailto:sage [2019/03/19(火) 23:52:25.41 ID:oXoLOC/c.net]
随分むごまっこっるた方法だな。

50 名前:デフォルトの名無しさん mailto:sage [2019/03/20(水) 00:28:31.79 ID:6ln9W50J.net]
>>43
一見イベントハンドラですが、thisが使えない、オブジェクト渡さないイベントハンドラはハンドラと言えるのでしょうか
個人的には、ハンドラという方が逆に混乱すると思いますのであえて言っていません

>>45
うおおおおおおできましたああああああああすごい!!!!!
https://i.imgur.com/8q0Z3yb.png

>>44>>46
ありがとうございます!



51 名前:デフォルトの名無しさん mailto:sage [2019/03/20(水) 00:31:55.82 ID:6ln9W50J.net]
あと、>>45さんの
Sheet1
というオブジェクトも気になります
sheet(1)
のエイリアスが自動的に生成されてると思いますが、MSDNでどのように調べると良いでしょうか?

52 名前:デフォルトの名無しさん mailto:sage [2019/03/20(水) 00:32:23.83 ID:vmDq6MjZ.net]
ActiveSheet.Buttons(Application.Caller).Characters.Text でいけないかな
試してないから駄目だったらごめん

53 名前:デフォルトの名無しさん mailto:sage [2019/03/20(水) 00:47:38.18 ID:vmDq6MjZ.net]
>>49

インデックス番号は、同じ種類のシート間に付けられる番号で、左からのシート見出しの順に基づきます。

https://docs.microsoft.com/ja-jp/office/vba/excel/concepts/workbooks-and-worksheets/refer-to-sheets-by-index-number


シートオブジェクトの移動や削除を行ったときにダイナミックにインデックスが変更されるのか、ファイル保存等の更新イベントがあるのかという細かい部分は調べてないから分からない
デフォルトのシート名がSheet & シート追加時のインデックス値になるのは経験上知ってる

54 名前:デフォルトの名無しさん mailto:sage [2019/03/20(水) 00:58:10.12 ID:+iQ33M/7.net]
>>49
画像のボタンがSheet1に貼ってあったからそれに合わせて書いただけ
"Sheet1"っていう名前のシートのオブジェクト名がSheet1になってるっしょ

55 名前:デフォルトの名無しさん mailto:sage [2019/03/20(水) 01:11:06.91 ID:+iQ33M/7.net]
>>51
シートのインデックスは常に左からの連番
シートの追加削除等あればもちろん都度変わる

56 名前:デフォルトの名無しさん mailto:sage [2019/03/20(水) 01:39:18.38 ID:6ln9W50J.net]
>>50
行けそうでダメでした
何で〜?
https://i.imgur.com/kZaCjUg.png
https://dotup.org/uploda/dotup.org1801319.zip

>>51
>デフォルトのシート名がSheet & シート追加時のインデックス値
削除すると変わるので、これは違います

>>52
その仕様ってどこかに書いてないのでしょうか

57 名前:デフォルトの名無しさん mailto:sage [2019/03/20(水) 02:22:30.37 ID:+iQ33M/7.net]
>>54
どこに書いてるかは知らないけど、ボタンもシートもブックもオブジェクトの指定の仕方は同じ
 オブジェクト名
 オブジェクトのコレクション(インデックス)
 オブジェクトのコレクション("名前")
好きなのを使うがよい

58 名前:デフォルトの名無しさん mailto:sage [2019/03/20(水) 02:25:30.67 ID:+iQ33M/7.net]
MS公式でWorksheetオブジェクトに関する説明調べればどっかにあるかもねえ、知らんけど

59 名前:デフォルトの名無しさん [2019/03/20(水) 11:46:18.93 ID:KyvcPrHu.net]
マクロを10時間ぶっ通しで走らせるのはよくないですか?途中で再起したほうがいいですか?

60 名前:デフォルトの名無しさん mailto:sage [2019/03/20(水) 11:59:24.66 ID:xEZ65DiY.net]
>>57
また馬鹿が来た
死ねよ



61 名前:デフォルトの名無しさん mailto:sage [2019/03/20(水) 12:06:20.76 ID:6ln9W50J.net]
>>55>>56
ありがとうございました
もう少し調べたかったけど、疲れたので断念します

>>57
とりあえず動かして、エラーが起きなければ何も問題はない
ただ、セルを触る物を10時間も動かすとメモリエラーが起こるかも知れない

>>58
笑った

62 名前:デフォルトの名無しさん [2019/03/20(水) 12:33:29.40 ID:KyvcPrHu.net]
>>59
ありがとうございます。
メモリの心配はありますが、ぶっ通しでやってみます。

63 名前:デフォルトの名無しさん mailto:sage [2019/03/20(水) 13:54:52.74 ID:2xsXzlGP.net]
>>57
応答なしにならないか?

64 名前:デフォルトの名無しさん mailto:sage [2019/03/20(水) 15:56:43.40 ID:1jasQYq3.net]
だから、どういう状況で10時間ぶっとおしが必要なんだよwwwwww
マジでExcelを何に使ってるのか気になるわ。

65 名前:デフォルトの名無しさん mailto:sage [2019/03/20(水) 16:27:03.42 ID:xEZ65DiY.net]
馬鹿の考えることをまともに相手をしてはいけない

66 名前:デフォルトの名無しさん mailto:sage [2019/03/20(水) 20:36:03.66 ID:nDF65YVh.net]
結果セットは小さいけど重いDBクエリを繰り返すとかだったらわかる

67 名前:デフォルトの名無しさん mailto:sage [2019/03/20(水) 20:53:54.94 ID:EpI850Tv.net]
10時間動かし続けるとなると思いつくのは
出勤時間中にwebサイトやフォルダ監視し続けて何かをキッカケに何かするみたいなのかな

68 名前:デフォルトの名無しさん mailto:sage [2019/03/20(水) 22:28:30.85 ID:ad3N4bFR.net]
エクセルでやることなんですかねそれ...

69 名前:デフォルトの名無しさん mailto:sage [2019/03/20(水) 22:53:02.96 ID:1jasQYq3.net]
ExcelVBAでパワーポイント動かしたいんですけど、
とか言われても、もう驚かんわ。

70 名前:デフォルトの名無しさん mailto:sage [2019/03/20(水) 23:11:09.25 ID:7O8FfDv3.net]
馬鹿はそこでマクロと言い出す
更には、「教えて」「助けて」で始まり
「急いでます」「作って」と要求する



71 名前:デフォルトの名無しさん mailto:sage [2019/03/20(水) 23:20:32.29 ID:dyVQ1wUM.net]
>>67
やろうと思えば出来んでもないのか

72 名前:デフォルトの名無しさん mailto:sage [2019/03/20(水) 23:21:49.19 ID:dyVQ1wUM.net]
なんだお前ら、勿体無いな
10時間動かすなんて奇抜な事をしてくれるんだから、全力で応援するべきだろう
かなり貴重なサンプルが手に入る可能性があるのに、バカだの言って切り捨てるのはあまりに勿体無い

73 名前:デフォルトの名無しさん mailto:sage [2019/03/20(水) 23:38:22.03 ID:9h7AJaIR.net]
>>70
まともな報告がある可能性は殆どない。
報告が役に立つ可能性はもっとない

74 名前:デフォルトの名無しさん mailto:sage [2019/03/20(水) 23:45:57.48 ID:dyVQ1wUM.net]
>>71
この辺は感性の違いかな
面白い物が見れそうな時はどんどん投資してしまう

75 名前:デフォルトの名無しさん [2019/03/21(木) 02:02:16.06 ID:+l8n8fiW.net]
肛門に穴があいたんですけど、
とか言われても、もう驚かんわ。

76 名前:デフォルトの名無しさん mailto:sage [2019/03/21(木) 06:33:27.17 ID:LeqqYBVH.net]
>>73
痔瘻でつか?

77 名前:デフォルトの名無しさん mailto:sage [2019/03/21(木) 07:23:06.55 ID:u3u8nbsq.net]
>>69
むしろ楽勝の方だろ
ちょっと前にシートの内容をスライドに埋め込むとかはやったことがある
やったのはPowerShellだったけどCOM経由なら似たようなもんだし

78 名前:デフォルトの名無しさん mailto:sage [2019/03/21(木) 10:02:44.62 ID:TiVPJMex.net]
パワーポイントでVBAって何すんの?
パワーポイントって発表用のアプリだろ。 それでVBAって需要なんてあまりあるとは思えんが

79 名前:デフォルトの名無しさん mailto:sage [2019/03/21(木) 10:04:16.17 ID:XMapNPTs.net]
シートの内容をスライドに埋め込むとか

80 名前:デフォルトの名無しさん mailto:sage [2019/03/21(木) 10:26:55.37 ID:VaVZDR1N.net]
プレゼンが定例業務としてある会社もあるんじゃね



81 名前:デフォルトの名無しさん mailto:sage [2019/03/21(木) 10:29:58.00 ID:epreAi+X.net]
例えば、気象庁のホームページからクエーリーでデータを取得し
パワポにデーター貼り付けながら、加工してそれをアニメーションで
かっこよく表示していくとか、考えれば応用はいくらでもあるだろう

82 名前:デフォルトの名無しさん mailto:sage [2019/03/21(木) 10:37:01.43 ID:epreAi+X.net]
言葉が足りなかった、プレゼン用ではなく、情報表示モニター用にな
いくらでも機能はつけられる

83 名前:デフォルトの名無しさん mailto:sage [2019/03/21(木) 11:18:23.86 ID:TiVPJMex.net]
なんかどれも一般個人には無縁のものばかりだな

84 名前:デフォルトの名無しさん mailto:sage [2019/03/21(木) 11:20:14.60 ID:TiVPJMex.net]
まあパワーポイント自身、個人で使うことなんてないのか
でも企業でも極一部の部署しか使わないものばかりじゃん

85 名前:デフォルトの名無しさん mailto:sage [2019/03/21(木) 11:39:33.97 ID:cL16VMj6.net]
パワポVBAで何か作ってみたいという逆需要で、発表後喋ってる間にスターウォーズのエンドロールみたいなのを流すのを昔作ったことあるなw
それ以降、私の開発現場では(個人的にも)パワポVBAは全く需要なし
WordVBAも、補助ツールとして数年に一回作るくらいかな

86 名前:デフォルトの名無しさん mailto:sage [2019/03/21(木) 11:42:12.40 ID:XMapNPTs.net]
スライドシェアとか見てもかったるいだけだからな
大昔の改行しまくりのテキストサイト思い出す

87 名前:デフォルトの名無しさん mailto:sage [2019/03/21(木) 11:45:36.88 ID:epreAi+X.net]
なんか、ExcelのVBAでパワポを操作するのと、パワポのVBAを同一で語ってるやついるか?
ちなみにWordのVBAはいくつか作って今も使ってるけど、まあ対比で言えばExcelの
100分の1程度だな

88 名前:デフォルトの名無しさん mailto:sage [2019/03/21(木) 12:40:04.02 ID:epreAi+X.net]
>>84
>スライドシェア
何だよ、かったるいのしか見たことないんだろ
>テキストサイト
何もわからんバカなのね(笑)

89 名前:デフォルトの名無しさん mailto:sage [2019/03/21(木) 12:46:45.76 ID:epreAi+X.net]
>>84
まあ、言葉もわからんカスが書き込みするスレだよな

90 名前:デフォルトの名無しさん mailto:sage [2019/03/21(木) 12:51:57.24 ID:VaVZDR1N.net]
>>86
カッコイイパワポを見てみたいんだが、どこかにある?
俺は見たことない



91 名前:デフォルトの名無しさん mailto:sage [2019/03/21(木) 12:55:25.94 ID:epreAi+X.net]
>>88
そうか、じゃあそのままでいいよ
検索もできないカスのお前に見せる必要ないからな

92 名前:デフォルトの名無しさん mailto:sage [2019/03/21(木) 13:01:18.94 ID:epreAi+X.net]
自分では何もできないくせに、人の作ったものは全力で否定するカスいるな
生きてる必要あるんか?・・ってかどうなの?(笑)

93 名前:デフォルトの名無しさん mailto:sage [2019/03/21(木) 16:10:00.98 ID:rariafKZ.net]
>>83
単に、バカじゃん(大笑)

94 名前:デフォルトの名無しさん mailto:sage [2019/03/21(木) 18:21:43.40 ID:AEHjc1Fb.net]
>>82
accessよりは使ってる

95 名前:デフォルトの名無しさん mailto:sage [2019/03/21(木) 18:38:57.53 ID:jb0c41ul.net]
>>75
そういう問題か?
PowerPointなのにPowerPointVBAを使わずにExcelVBAという所が驚きの対象なんじゃないの?

96 名前:デフォルトの名無しさん mailto:sage [2019/03/21(木) 18:40:52.37 ID:UMX0gRc1.net]
起点がExcelってのがポイントだよな

97 名前:デフォルトの名無しさん mailto:sage [2019/03/21(木) 18:59:32.81 ID:susRoq6I.net]
>>67の冗談が起点なのになんで真剣に語っているんだ

98 名前:デフォルトの名無しさん mailto:sage [2019/03/21(木) 19:40:57.90 ID:u3u8nbsq.net]
>>93
Excel VBAで扱うのとPowerPoint VBAで扱うのはたいして変わらんよ
どっちから制御するかだけの問題

99 名前:デフォルトの名無しさん mailto:sage [2019/03/21(木) 21:02:50.21 ID:UMX0gRc1.net]
他アプリから制御するのはいちいちアプリケーションインスタンスを起動しなきゃならんのが糞面倒
パワポだけで済むならパワポにする

100 名前:デフォルトの名無しさん [2019/03/21(木) 21:15:08.25 ID:HmxAO54P.net]
VBAを使ってる人って御老人のイメージだけど合ってる?



101 名前:デフォルトの名無しさん mailto:sage [2019/03/21(木) 21:48:16.24 ID:7ESjhGWi.net]
ナウでヤングな人は何使うん

102 名前:デフォルトの名無しさん mailto:sage [2019/03/21(木) 22:10:39.42 ID:susRoq6I.net]
そろばん

103 名前:デフォルトの名無しさん mailto:sage [2019/03/22(金) 08:13:43.08 ID:s6oj+Xdm.net]
>>96
PowerShellなんて言い出す奴だからわからないんだろうな。
大して変わらんのなんて当たり前だろ。

PowerPointVBAからExcel.Application使って、そのExcelオブジェクトからPowerPoint.Application使ってを10回繰り返した所で変わらんけどアホ丸出しなのが分からんのかね。

104 名前:デフォルトの名無しさん mailto:sage [2019/03/22(金) 08:17:26.70 ID:wT5mo1++.net]
>>101
で?
例がアホすぎて何を主張したいのかさっぱりわからんw

105 名前:デフォルトの名無しさん mailto:sage [2019/03/22(金) 09:00:55.13 ID:7FUJ+LGH.net]
パワーポイントVBAって色々と勝手が違って面倒臭かった記憶があるけどな
そもそもエクセルやワードと違って空のアプリケーションインスタンス作れないんじゃなかったっけか
ファイル実行時に読み取りパスワードを指定するときもファイル名と連結する必要があるし

106 名前:デフォルトの名無しさん mailto:sage [2019/03/22(金) 09:13:17.49 ID:s6oj+Xdm.net]
>>102
バカにはわからない。
というか例がアホ過ぎる所がミソなんだがw

そんなアホなことをするのかというのが驚きの対象であって、大して変わらんかどうかなんて頓珍漢な話はどうでもいい。

107 名前:デフォルトの名無しさん mailto:sage [2019/03/22(金) 09:35:36.14 ID:wT5mo1++.net]
いや、当たり前なんてみんな知ってる(>>93を除くw)のに今更何を言いたいんだってこと
バカの上塗り?

108 名前:デフォルトの名無しさん mailto:sage [2019/03/22(金) 10:34:34.64 ID:1snpMqV+.net]
結局、ワッチョイ抜きにするから荒れるんだろ
誰がどう主張したいのかわからなくなる
ワッチョイが嫌な奴がこのスレ建てたんだろうな、立て直すか?

109 名前:デフォルトの名無しさん mailto:sage [2019/03/22(金) 10:58:31.28 ID:f/f2Qmpp.net]
>>101
それ面白いw

110 名前:デフォルトの名無しさん mailto:sage [2019/03/22(金) 12:26:36.58 ID:s6oj+Xdm.net]
>>105
プッ
当たり前なのは>>93を含めてみんな知っている。

今更何を言いたいのかは>>102を除いてみんな知っているw



111 名前:デフォルトの名無しさん mailto:sage [2019/03/22(金) 12:41:30.27 ID:VWKP5DOZ.net]
で、結局>>101は当たり前の事をほざいてただけ?
やっぱりバカの上塗りじゃねーか w

112 名前:デフォルトの名無しさん mailto:sage [2019/03/22(金) 13:05:17.10 ID:xmRgZnoh.net]
OLEアプリケーション連携の話になると途端に荒れるのやべーな
前も下らんAccessの話でクッソ揉めてたし
他アプリ連携のスキルをプライドの拠り所にしてる人が結構いるのかな
凄いことやってる風に見てもらえるときあるし分からんでもないけどさ

113 名前:デフォルトの名無しさん mailto:sage [2019/03/22(金) 13:46:53.89 ID:CAtaruvO.net]
こっちに移動しる
https://mevius.5ch.net/test/read.cgi/tech/1432173164/

114 名前:デフォルトの名無しさん [2019/03/22(金) 14:07:54.62 ID:DJ7JSKt5.net]
こっちに移動しろ
https://mevius.5ch.net/test/read.cgi/tech/1432173164/

日本語は正確に

115 名前:デフォルトの名無しさん mailto:sage [2019/03/22(金) 14:18:45.03 ID:CAtaruvO.net]
こいつ、知ってて言ってるのか知らないのか

116 名前:デフォルトの名無しさん [2019/03/22(金) 17:56:53.75 ID:DJ7JSKt5.net]
会社でブラウザの検索結果のページで
いっぱいURLのリンク先が表示されるのですが
そのたくさんのURLのそれぞれを開いたページ(毎回違うけど50ページくらいある)のデータを取得するVBAのコードを考えています。
IEの定番のCreateObject("InternetExplorer.Application")とDOMツリーの方法で実現できてはいるのですが
1つ1つページを開いて取得して閉じる、という作業がネットワークの遅さで異常に時間がかかります。
この複数のページを同時で取得する方法ってないでしょうか?よく知らないけどJavaでいうスレッドみたいな?

117 名前:デフォルトの名無しさん mailto:sage [2019/03/22(金) 18:05:28.43 ID:wNvbYX88.net]
いまどきマルチポストに眉をしかめるような時代遅れの人間なんていないよ、ね?

118 名前:デフォルトの名無しさん mailto:sage [2019/03/22(金) 18:13:30.85 ID:f/f2Qmpp.net]
>>114
IEオブジェクト作らずに通信すると早くなる気がするけど早くならないかもしれない
試してみて

Sub foo()
Set httpReq = CreateObject("MSXML2.XMLHTTP")
httpReq.Open "GET", "https://www.nicovideo.jp/watch/sm31763534"
httpReq.Send
Do While httpReq.readyState < 4
DoEvents
Loop
str2 = httpReq.responseText
End Sub

119 名前:デフォルトの名無しさん mailto:sage [2019/03/22(金) 18:19:28.87 ID:wCnCSK0y.net]
>>114
どっかのサーバーでPHPなどで書けば

120 名前:
一度に取得を投げて戻ったイベントで処理を書く
ネットワークに依存しないし負荷はサーバー
詳しくはPHPなどの質問スレッドでしろ
[]
[ここ壊れてます]



121 名前:デフォルトの名無しさん mailto:sage [2019/03/22(金) 18:37:45.64 ID:wCnCSK0y.net]
>>116
VBAでは書いたことないけど
リクエストを配列にして一度に投げ
戻った奴から処理する
普通はイベントで受ける

122 名前:デフォルトの名無しさん [2019/03/22(金) 19:06:06.24 ID:DJ7JSKt5.net]
>>116
そのCreateObject("MSXML2.XMLHTTP")はなんでしょうか?
str2にはたしかに入ってますが"https://www.yahoo.co.jp/"にしたら空欄になってしまいます。
HTMLページは膨大なソースなのでDOMツリーで必要なものだけを取り出したいのですが、それはできますか?

>>117
PHPって知らないのですが簡単に学習できるのですか?

>>118
VBAでイベントってどうやって受けるのですか

123 名前:デフォルトの名無しさん mailto:sage [2019/03/22(金) 19:30:29.78 ID:s6oj+Xdm.net]
>>109
まだ分かんねーのかよw

124 名前:デフォルトの名無しさん mailto:sage [2019/03/22(金) 19:31:45.60 ID:f/f2Qmpp.net]
>>120
すまん無能、ちょっと静かにしてくれ

125 名前:デフォルトの名無しさん mailto:sage [2019/03/22(金) 19:35:09.00 ID:wCnCSK0y.net]
>>119
PHPをおけるサーバーの契約まあ無料のところも有るだろ
学習は無料でツールをダウンロード出来る
比較的簡単な言語でいろいろソースもあるが
VBAは超簡単な方だからな

VBAは特定のイベントしか受けられんのかな
普通VBやc++やPHP などでコーディングするときは
イベントで受ける

126 名前:デフォルトの名無しさん mailto:sage [2019/03/22(金) 19:35:18.99 ID:wT5mo1++.net]
アホの考えなんてわからんしわかりたくもないわw

127 名前:デフォルトの名無しさん mailto:sage [2019/03/22(金) 19:37:24.46 ID:s6oj+Xdm.net]
>>119
出来る。
ResponseTextをDOMに入れる。

128 名前:デフォルトの名無しさん mailto:sage [2019/03/22(金) 19:37:49.10 ID:f/f2Qmpp.net]
>>118
jsで言うPromise?
非同期がvbaにあるんか、と思って調べたら一応あったけどかなりしんどいな
https://system-engineerlife.com/vba/multithread/

>>119
>CreateObject("MSXML2.XMLHTTP")
http通信するだけのもの。DOM構築しないから軽いはず

129 名前:デフォルトの名無しさん mailto:sage [2019/03/22(金) 19:46:10.91 ID:s6oj+Xdm.net]
>>125
これ、マルチプロセスだけどな。
別にしんどくない。
ExcelVBAでマルチプロセスやるときはExcel.Applicationを複数作ってやるのが普通だと思うけどね。

最終的に速度どうにもならないときはマルチプロセスにする。

130 名前:デフォルトの名無しさん mailto:sage [2019/03/22(金) 19:51:03.17 ID:s6oj+Xdm.net]
>>123
10時間ぶっ通しのVBAのようにアホ丸出しの例としてExcelVBAからPowerPoint動かすって話だろ。

>>75のような当たり前の話じゃないんじゃないの?
という問い掛けが>>93だろ。



131 名前:デフォルトの名無しさん mailto:sage [2019/03/22(金) 19:58:09.82 ID:s6oj+Xdm.net]
>>125
ちなみにマルチスレッドはこっちにあるやり方
https://needtec.exblog.jp/18893727/

場合によっては使える(自分で表示したメッセージボックスのボタンをクリックとか)と言いたいところだが止めとくべきだね。

132 名前:デフォルトの名無しさん mailto:sage [2019/03/22(金) 20:11:29.06 ID:f/f2Qmpp.net]
>>119
Sub foo()
Set httpReq = CreateObject("MSXML2.XMLHTTP")
httpReq.Open "GET", "https://www.yahoo.co.jp/", False
httpReq.Send
Do While httpReq.readyState < 4
DoEvents
Loop

Set HTML = CreateObject("htmlfile")
HTML.write httpReq.responsetext
End Sub

これでHTMLがdomになる
ちなみにphpなら二行で終わる
サーバー借りなくてもxamppっての使えばPCだけで行けるけど、
どっちにしても学習コスト高い気がする
ついでにHP作ってみると良いかも知れない

>>126>>128
excelかVBSインスタンスをスレッドの分作って文字列作ってevalみたいにして実行か
もうここまで来るとVBAでやるのはなぁ
VBAしかないなら頑張れるけど、他言語だと瞬殺と思うとやる気が削がれる

133 名前:デフォルトの名無しさん mailto:sage [2019/03/22(金) 20:17:17.71 ID:PU7qmvYu.net]
>>127
> 10時間ぶっ通しのVBAのようにアホ丸出しの例としてExcelVBAからPowerPoint動かすって話だろ。
その例がアホって話だろw

134 名前:デフォルトの名無しさん mailto:sage [2019/03/22(金) 20:59:52.84 ID:EWPhTEeI.net]
>>116
httpReqを配列にしてreadyStateが4より小さいものから処理すれば良いだけだろ

135 名前:デフォルトの名無しさん mailto:sage [2019/03/22(金) 22:37:39.98 ID:kGxcTvNs.net]
もうExcelの変な使い方スレでいいよ、ここ。

136 名前:デフォルトの名無しさん [2019/03/22(金) 22:41:13.31 ID:DJ7JSKt5.net]
レスありがとうございます。

>>122
なるほどそうですかありがとうございます。
いまの直近の問題が解決したらあとで勉強してみます。

>>124-125, >>129
DOMができたとして
50個くらいある複数のURLの1つ1つに
Do While httpReq.readyState < 4
DoEvents
Loop
で時間待ちするのが問題なんです。
1つあたり1分近くかかるから。
一気に全部同時にやれないかなと。

137 名前:デフォルトの名無しさん mailto:sage [2019/03/22(金) 22:51:56.07 ID:tgov+uRX.net]
PowerShellでやった方が絶対に速い

138 名前:デフォルトの名無しさん mailto:sage [2019/03/22(金) 22:54:22.06 ID:CAtaruvO.net]
>>134
PowerShellのプログラミングってめっちゃめんどくさい
タイプ量が半端なく多くなる。 大嫌い

139 名前:デフォルトの名無しさん [2019/03/22(金) 23:08:19.23 ID:E2ofkEmJ.net]
まとめてダウンロードしてファイルに保存
その後一つずつ解析するべき
domなんて使わなくても正規表現で何とかするべき

140 名前:デフォルトの名無しさん mailto:sage [2019/03/22(金) 23:19:11.20 ID:tgov+uRX.net]
でもpowershellなら.NETのWorkflowが手軽に使えるよね



141 名前:デフォルトの名無しさん mailto:sage [2019/03/22(金) 23:23:39.28 ID:tgov+uRX.net]
Runspaceも使えるし

142 名前:デフォルトの名無しさん mailto:sage [2019/03/22(金) 23:36:27.88 ID:f/f2Qmpp.net]
>>133
すまん、無理だった
他の人頼む
arrayでurl設定して、class使ってforeachだろうけど
vbaのclassを覚える気力がもう内
とりあえず2つだとこんな感じ

Sub foo()
Set httpReq = CreateObject("MSXML2.XMLHTTP")
httpReq.Open "GET", "https://www.yahoo.co.jp/", False
httpReq.Send
Set httpReq2 = CreateObject("MSXML2.XMLHTTP")
httpReq2.Open "GET", "https://urasunday.com/", False
httpReq2.Send

Do
flg = False
If httpReq.readyState < 4 Then flg = True
If httpReq2.readyState < 4 Then flg = True
DoEvents
Loop While flg

Set HTML = CreateObject("htmlfile")
HTML.write httpReq.responsetext
Set HTML2 = CreateObject("htmlfile")
HTML2.write httpReq.responsetext
End Sub

143 名前:デフォルトの名無しさん mailto:sage [2019/03/23(土) 00:08:10.78 ID:GJYnZjvR.net]
If httpReq.readyState < 4 Then flg = True
If httpReq2.readyState < 4 Then flg = True
片方で抜ける
配列ぐらい使えよ

144 名前:デフォルトの名無しさん mailto:sage [2019/03/23(土) 00:23:31.53 ID:GJYnZjvR.net]
読み込めた物から処理するんだよ

145 名前:デフォルトの名無しさん mailto:sage [2019/03/23(土) 00:41:36.68 ID:sBAP9hOD.net]
>>140
・普通に逆だった、スマン
・pushくれ。redimしなくていい素直なpush
・なんかテキトーにやってもうまいことやってくれる非同期欲しい
・eachで自動生成されるindexくれ
・インクリメントくれ
ってことでうんこコードになったわ、すまん

>>141
それは分かるし書きたいんだけど
documrnt.ready(function(){}〜
的な奴が分からなかった

146 名前:デフォルトの名無しさん mailto:sage [2019/03/23(土) 00:42:04.83 ID:sBAP9hOD.net]
>>133

Sub foo()
Const max_count = 1000 '1000で決め打ち
url_arr = Array( _
"https://www.yahoo.co.jp/", _
"https://urasunday.com/" _
)

Dim httpReq(max_count)
index_httpReq = 0
For Each url_foo In url_arr
Set httpReq(index_httpReq) = CreateObject("MSXML2.XMLHTTP")
httpReq(index_httpReq).Open "GET", url_foo, False
httpReq(index_httpReq).Send
index_httpReq = index_httpReq + 1
Next

147 名前:デフォルトの名無しさん mailto:sage [2019/03/23(土) 00:42:09.03 ID:sBAP9hOD.net]
Do
flg = False
For Each url_foo In url_arr ' どれかがまだ
If httpReq(index_foo).readyState < 4 Then flg = True
Next
DoEvents
Loop While flg

Dim html(max_count)
index_html = 0
For Each url_foo In url_arr
Set html(index_html) = CreateObject("htmlfile")
html(index_html).write httpReq(index_html).responsetext
Cells(index_html + 1, 1).Value = httpReq(index_html).responsetext 'テスト。A列に出力する
index_html = index_html + 1
Next

End Sub

148 名前:デフォルトの名無しさん mailto:sage [2019/03/23(土) 00:45:06.99 ID:sBAP9hOD.net]
>>143までは問題ないと思う
>>144でグダグダになった。
パフォーマンス的にはそんなに変わらんだろう。大量にあるとメモリにも影響してきそうだけど

149 名前:デフォルトの名無しさん mailto:sage [2019/03/23(土) 01:11:21.36 ID:GJYnZjvR.net]
If httpReq(index_foo).readyState < 4 Then flg = True
コレじゃ1つでも読み込めたらループから抜ける
set したのはリリースする

処理がおもいのは
html(index_html).write httpReq(index_html).responsetext
これだろ

150 名前:デフォルトの名無しさん mailto:sage [2019/03/23(土) 01:15:54.12 ID:GJYnZjvR.net]
同じ個数配列で使うものはTypeを使って構造体にしろよ
構造体を配列で取る
redimぐらい使えよ



151 名前:デフォルトの名無しさん mailto:sage [2019/03/23(土) 01:39:28.59 ID:sBAP9hOD.net]
>>144
Do
flg = False
For Each url_foo In url_arr ' どれかがまだ
If httpReq(index_foo).readyState < 4 Then flg = True
Next
DoEvents
Loop While flg

For Each url_foo In url_arr ' どれかがまだ
Do
flg = False
If httpReq(index_foo).readyState < 4 Then flg = True
DoEvents
Loop While flg
Next

>>146
>コレじゃ1つでも読み込めたらループから抜ける
入れ子逆だった、スマン

>set したのはリリースする
httpReq is nothingがエラーになる
vbaって配列 is nothing出来ないのか

>処理がおもいのは
相対的に重いけど体感上重くは無いと思う

>>147
vbaのclassは正直もう無理や

152 名前:デフォルトの名無しさん mailto:sage [2019/03/23(土) 02:18:04.14 ID:GJYnZjvR.net]
構造体を使うのは処理を分かりやすくするため
リリースは
Set オブジェクト変数 = Nothing
感覚的に難しいかな

153 名前:デフォルトの名無しさん mailto:sage [2019/03/23(土) 04:53:32.37 ID:4V4ijAbJ.net]
>>142
普通は以下のように、自分で状態を調べたりしない。
If httpReq.readyState < 4 Then flg = True

これは、Node.js などの低レベルな書き方で、普通はこれらの状態をラップして、
簡潔に書ける方法が、ライブラリ・フレームワークに用意されている

例えば以下は、JavaScript, jQuery の非同期処理の書き方。
ready になったら、引数で定義した、callback 関数を呼んでもらう。
document.ready(function(){}〜

非同期処理には、promise, deffered, async/await の書き方もある

Ruby で、Selenium WebDriver なら、非同期処理を考えなくても、普通に同期的に書ける。
非同期処理の書き方のすべてが、ラップされているから。

Timeout 設定時間までに、状態が満たさなければ、Timeout Error になるだけ

154 名前:150 mailto:sage [2019/03/23(土) 05:31:12.29 ID:4V4ijAbJ.net]
漏れなら、Ruby で、Selenium WebDriver で、

url.txt には、行区切りでURL を書いておく。
script.rb には、Selenium WebDriver での処理を書いておく

main.rb には、以下を書いておいて、このファイルを、ruby main.rb で実行する

File.foreach( "url.txt" ) do |line|
`ruby script.rb #{ line }`
end

url.txtを、1行ずつ処理して、各URLを取得して、それを引数にして、
ruby script.rb URL の別プロセスを呼び出す。
ただし、Selenium WebDriverでの処理が、URLだけが異なって、他は同じ事が条件

つまり、マルチプロセス

これをマルチスレッドにすると、排他処理などが面倒。
それに同一プロセス内の処理になるので、1つのエラーで、すべての処理が止まるし、やってられない!

155 名前:デフォルトの名無しさん mailto:sage [2019/03/23(土) 05:42:27.10 ID:GJYnZjvR.net]
VBA以外の構造化言語で書けば綺麗に書ける
まあ出来るだけ近いように書くのがよいが
まあ所詮俺もこんな処理ではJavaかPHPでしか書かない
まあ

156 名前:デフォルトの名無しさん mailto:sage [2019/03/23(土) 07:22:22.14 ID:4ZM/hDcb.net]
>>148
> vbaのclassは正直もう無理や
TypeとClassは関係ないぞ
Typeは単に複数の値を纏めるだけ

157 名前:デフォルトの名無しさん mailto:sage [2019/03/23(土) 08:17:41.71 ID:Rd0MSm4a.net]
たぶん、構造体 = Type = 型 = クラス っていうアナロジーで考えてたんだろうね

158 名前:デフォルトの名無しさん mailto:sage [2019/03/23(土) 09:27:10.21 ID:GJYnZjvR.net]
まあ、コードも間違ってるし書き方も良くない
配列すら得意でないようなので・・・
あと、せっかくExcelを使ってるんだから
Url等の情報はセルから読み込むよな

159 名前:デフォルトの名無しさん mailto:sage [2019/03/23(土) 11:00:19.04 ID:tmlWK/3A.net]
>>151
seleniumってまだ使えんの?もう機能しなくなったと思ってた

160 名前:デフォルトの名無しさん mailto:sage [2019/03/23(土) 11:18:14.30 ID:sBAP9hOD.net]
あぁvbaってclassと構造体両方あったのか

>>155
コールバックの部分だけはマジで分からんかった
どうやって書くんだ

>>150
クソ言語乙



161 名前:fusianasan mailto:sage [2019/03/23(土) 11:19:15.45 ID:j1qksDnK.net]
Debug.Print("test")

162 名前:デフォルトの名無しさん mailto:sage [2019/03/23(土) 11:39:13.69 ID:uLwnX5A6.net]
>>130
だから、お前が真面目に出来るとか言ってるのは、真面目な話じゃ無くてアホな話だろと言ってるんだが。

アホな例を出さなかったらそれこそアホだろw

163 名前:デフォルトの名無しさん mailto:sage [2019/03/23(土) 11:47:22.03 ID:4ZM/hDcb.net]
>>159
はあ?
>>67
> やろうと思えば出来んでもないのか
って書いてるからやること自体は難しくないって書いてるだけだぞ
そもそもExcel VBAでPowerPointを操作するのがアホとか言ってるわけじゃないことも理解できてないのかよw

164 名前:デフォルトの名無しさん mailto:sage [2019/03/23(土) 11:52:28.25 ID:/daUWZWt.net]
>>157
Excelでコールバックで受けたいって言っても、やったことないな
所詮そんなにクリティカルなルーチンを書く環境じゃないだろ
そんなことしなくても、ステータスが読み込めた物から処理して
全ての配列が処理出来たら終わればいいぐらいのコーディングだな
自分で書かなきゃ意味ないぞ

165 名前:デフォルトの名無しさん mailto:sage [2019/03/23(土) 12:03:01.48 ID:jhd39dfA.net]
>>160
無能の相手はほどほどで

>>161
やっぱり難しいよな
>全ての配列が処理出来たら終わればいいぐらいのコーディングだな
これで書いたよ
DOM部分はどうせ瞬殺だからまとめて良い

166 名前:デフォルトの名無しさん mailto:sage [2019/03/23(土) 12:12:55.71 ID:/daUWZWt.net]
>>162
他の言語で簡単にかけるって言っても
所詮その言語で提供されたルーチンを使うだけだから
適した言語で書けば比較的簡単にかけることは確か
コーディングに関しては直感で書いたからもう少し読んでみよう

167 名前:デフォルトの名無しさん mailto:sage [2019/03/23(土) 12:16:35.94 ID:/daUWZWt.net]
まあ、所詮夜勤から帰って書き込みしてるから
午後は、お酒が進むんでまあ気にするな

168 名前:デフォルトの名無しさん mailto:sage [2019/03/23(土) 12:44:05.74 ID:4ZM/hDcb.net]
>>157
> コールバックの部分だけはマジで分からんかった
> どうやって書くんだ
コールバックなんていらんだろ
素直にreadyStateが4になったら処理すればいいだけ
スマホから打ってるからデバッグしてないけどこんな感じ
Type Request
 Session As Object
 Done As Boolean
End Type
url_arr = Array("https://www.yahoo.co.jp/", "https://urasunday.com/")
Dim Requests()
ReDim Requests(LBound(url_arr) To UBound(url_arr))
Dim Index As Integer
For Index = LBound(url_arr) To UBound(url_arr)
 With Requests(Index)
  Set .Session = CreateObject("MSXML2.XMLHTTP")
  .Session.Open "GET", url_arr(Index), False
  .Session.Send
  .Done = False
 End With
Next
' 続く…

169 名前:デフォルトの名無しさん mailto:sage [2019/03/23(土) 12:44:29.37 ID:4ZM/hDcb.net]
' 続き
Dim AllDone As Boolean
Do
 AllDone = True
 For Index = LBound(url_arr) To UBound(url_arr)
  With Requests(Index)
   If Not .Done Then
    If .Session.readyState < 4 Then
     AllDone = False
    Else
     Cells(Index + 1, 1).Value = .responseText
     .Done = True
    End If
   End If
  End With
 Next
 DoEvents
Until AllDone

170 名前:デフォルトの名無しさん mailto:sage [2019/03/23(土) 14:51:45.33 ID:uLwnX5A6.net]
>>160
いや、だから...
それに>>67じゃなくて>>69だろ。

やろうと思えば出来るけど、驚いてるのはそこじゃ無いだろという指摘が理解できなかったから>>96みたいな頓珍漢なことを言ったんだろ。

じゃなかったら>>96みたいに噛み合わない発言にならない。



171 名前:デフォルトの名無しさん mailto:sage [2019/03/23(土) 14:57:22.48 ID:jhd39dfA.net]
>>165
俺も使わなくてもいいと思うが
上でコールバックコールバック言ってたからな

>>167
お前に何の能力もないのは分かったから落ち着け

172 名前:デフォルトの名無しさん mailto:sage [2019/03/23(土) 15:09:34.24 ID:4ZM/hDcb.net]
>>167
お前はアンカーもまともに見れないのかよw

173 名前:デフォルトの名無しさん mailto:sage [2019/03/23(土) 19:02:03.41 ID:4V4ijAbJ.net]
157デフォルトの名無しさん2019/03/23(土) 11:18:14.30ID:sBAP9hOD

>>150
クソ言語乙

142デフォルトの名無しさん2019/03/23(土) 00:41:36.68ID:sBAP9hOD

こいつは荒らしじゃね?
相手しない方がよい

174 名前:デフォルトの名無しさん mailto:sage [2019/03/23(土) 19:19:07.38 ID:tumCHHdc.net]
>>170
ここはVBAのスレだよ。 そこにRubyとか持ってきたからじゃねえのw

175 名前:デフォルトの名無しさん mailto:sage [2019/03/23(土) 20:10:53.10 ID:VsaUG60l.net]
>>170
そのruby信者が荒らしだぞ
あらゆるスレで「rubyなら〜」と言ってrubyを貶めしている
pythonスレではスレタイにruby禁止とまで入る始末

176 名前:デフォルトの名無しさん mailto:sage [2019/03/23(土) 22:49:02.19 ID:XxYiFSG+.net]
コールバックって何?
ググると、関数の引数に渡す関数って出てくるけど、
それって、複数の処理を、
↓こうやって横着して1行に書くのと何が違うのかわからん。

a = Replace(Replace("あいうえお", "あい", ""), "えお", "")

177 名前:デフォルトの名無しさん mailto:sage [2019/03/23(土) 22:57:17.29 ID:VsaUG60l.net]
>>173
a関数の処理が終わった場合、a関数の引数を受け取ってb関数を自動的に開始する・・・という処理
非同期、特にスクレイピングが多重で続くような場合は非常に強力
https://www.sejuku.net/blog/67743

使う場面が分からないのは、使う必要が無いと思って良い
jsだと死ぬほど使うが、EXCELで使う事はまずない

178 名前:デフォルトの名無しさん mailto:sage [2019/03/23(土) 23:43:32.78 ID:vBZJiXyX.net]
VBAでコールバックを実装しようとしたら、 Application.Runを使うかクラスモジュールでメソッド書いてCallByName関数で呼び出すようにするかって感じになるんかね

179 名前:デフォルトの名無しさん mailto:sage [2019/03/23(土) 23:54:56.46 ID:49H4PHbP.net]
>>175
AddressOf

180 名前:デフォルトの名無しさん mailto:sage [2019/03/23(土) 23:57:25.89 ID:49H4PHbP.net]
>>175
ごめんVBAでコールバックを「実装」か。
VBAの関数をコールバックするにはどうするかという問題と勘違いした



181 名前:デフォルトの名無しさん mailto:sage [2019/03/24(日) 00:19:26.62 ID:lQI3nZvh.net]
>>177
そう、外部プログラムにVBA側の関数ポインタを渡す話じゃなくて、受けとる側の処理の書き方

182 名前:デフォルトの名無しさん mailto:sage [2019/03/24(日) 00:40:55.67 ID:MjUvfGmD.net]
クラスのメソッドとしてコールバック関数を実装してinterfaceか遅延バインディング使えばいい

183 名前:デフォルトの名無しさん mailto:sage [2019/03/24(日) 07:46:43.58 ID:myNgr9GS.net]
>>173
> a = Replace(Replace("あいうえお", "あい", ""), "えお", "")
これは外側のReplace()に内側のReplace()の「結果」を渡してる
コールバック関数は内部で呼ぶ関数を変えたい時に使う
例えば図形を描くルーチンがあったとして出力先を色々切り替えたいとかだと出力する関数を自体を渡す
やり方はこの辺りを参考にして
https://qiita.com/rai_suta/items/c07b22130b302682b729

184 名前:デフォルトの名無しさん mailto:sage [2019/03/24(日) 11:58:57.43 ID:DVu1xjKe.net]
>>179
やっぱりAddressOfの値を受け取ってそれをAPI経由で実行するのがいいんじゃないか
ただしシグネチャは一定とする

185 名前:デフォルトの名無しさん mailto:sage [2019/03/24(日) 12:25:58.30 ID:3NyLxN/m.net]
https://i.imgur.com/nvGsYOy.jpg
エクセルあればワードもパワポもアクセスもいらない

186 名前:デフォルトの名無しさん [2019/03/24(日) 12:32:32.58 ID:4ve/ST91.net]
そんな事をエクセルVBAでやる意味って何?
何が何でもVBAって馬鹿のひとつ覚えって言うんだよ

187 名前:デフォルトの名無しさん mailto:sage [2019/03/24(日) 12:35:25.20 ID:aL5blMH8.net]
>>183
他言語を覚えなくて良いのは大きなメリット
環境構築、記述方法、言語仕様
この辺全部覚えなくて良いのはデカイ
特にvbaはプログラマーじゃなく事務員が使ってる場合も多いので、環境構築が苦手な事が多々ある

188 名前:デフォルトの名無しさん mailto:sage [2019/03/24(日) 13:44:54.25 ID:PQbtijKV.net]
ノコギリで刺身切ろうとして包丁使えよって言われて包丁の使い方覚えなくていいのはメリットって言ってる構図

189 名前:デフォルトの名無しさん mailto:sage [2019/03/24(日) 13:53:08.65 ID:aL5blMH8.net]
>>185
例え下手でわらった

190 名前:デフォルトの名無しさん mailto:sage [2019/03/24(日) 13:54:25.82 ID:PQbtijKV.net]
>>186
お前は仕事下手だよな



191 名前:デフォルトの名無しさん [2019/03/24(日) 14:07:22.16 ID:OZ1kvGmt.net]
他言語を覚えなくて良いって発想がどうかと思う
適材適所で効率良くするのも仕事だし
死にゆく言語の代表がVBA

192 名前:デフォルトの名無しさん mailto:sage [2019/03/24(日) 14:08:05.28 ID:myNgr9GS.net]
>>185
流石に頓珍漢すぎ
出刃包丁で刺し身切ろうとしたら刺身包丁買ってこいって

193 名前:ゴネてる奴がいるだけ []
[ここ壊れてます]

194 名前:デフォルトの名無しさん mailto:sage [2019/03/24(日) 14:30:37.07 ID:aL5blMH8.net]
>>187
根拠もなく、何を見てそう思ったの?

>>188
>他言語を覚えなくて良いって発想がどうかと思う
>適材適所で効率良くするのも仕事だし
これは同意
俺も効率化のためにphpとjsはある程度覚えてるわ

ただ、人に勧めるのは現実的に厳しい面がある
たまーに出てくるスクレイピングのためにphp覚えろって言うのはなかなか酷
時間がかかって良いならウンコみたいなコードでも処理できるしな
ここの人でもサーバー=レンタルサーバーって発想した人いるけど、
スクレイピングのためにphp動かすならxamppで良い

>死にゆく言語の代表がVBA
ずっと言われてるけど全然死なないので俺も困っている。せめてバージョンアップして

195 名前:デフォルトの名無しさん mailto:sage [2019/03/24(日) 14:34:03.77 ID:dT6Xb8jy.net]
既に公式にはJavaScriptに置き換わってるのに今更バージョンアップもクソも

196 名前:デフォルトの名無しさん mailto:sage [2019/03/24(日) 14:35:01.83 ID:aL5blMH8.net]
>>191
JavaScriptに置き換わってるって言ってもアドインだけでしょ

197 名前:デフォルトの名無しさん mailto:sage [2019/03/24(日) 14:43:19.68 ID:dT6Xb8jy.net]
>>192
だけもクソも、現在推奨されているExcelのプログラミングインターフェイスはアドインのみだよ
VBAは廃止予定のレガシーな機能であり、使用は推奨されない

198 名前:デフォルトの名無しさん mailto:sage [2019/03/24(日) 14:53:50.44 ID:aL5blMH8.net]
>>193
それは知りませんでした、申し訳無い
そのソースってどこかにありますか?

vbaがやっと進化するのか

199 名前:デフォルトの名無しさん [2019/03/24(日) 15:03:11.84 ID:A9z4XFqj.net]
自分の現在分かる範囲で創意工夫してやろうとするのは良いことで出来ちゃってるんだろうけどこの先ずっと出来るかは不明
新しいのを取り入れないとダメ
特にエクセルVBAでやる必要のないのがあるなら勉強のチャンスなのに古いのでやろうとするから進歩しない

200 名前:デフォルトの名無しさん mailto:sage [2019/03/24(日) 15:10:13.55 ID:gZMjxNOF.net]
xampp入れてPHP一から覚えるぐらいなら、VB.NET覚える方がはるかにマシだわ



201 名前:デフォルトの名無しさん mailto:sage [2019/03/24(日) 15:19:49.80 ID:Mw3X0nZC.net]
>>191
エクセルのマクロもVBAじゃなくてjavascriptになるのか?
てか、もうなってるの?
ボタンと押したときの動作とかもすでにjavascriptで書くようになってる?

202 名前:デフォルトの名無しさん mailto:sage [2019/03/24(日) 15:23:45.60 ID:aL5blMH8.net]
>>197
アドインがjsで書けるように鳴ったんだよ

203 名前:デフォルトの名無しさん mailto:sage [2019/03/24(日) 15:39:49.96 ID:y9CSgW5G.net]
ここは言語スレじゃなくてExcel VBAスレなんだが
バイクやチャリの板で日本縦断の準備とか注意点についての質問レスに対して飛行機使えよ馬鹿とレスしてるやつ居たらアホだろ

204 名前:デフォルトの名無しさん mailto:sage [2019/03/24(日) 15:47:43.47 ID:aL5blMH8.net]
>>199
何回やっても例え下手やなw
もっとやっていいぞ

205 名前:デフォルトの名無しさん mailto:sage [2019/03/24(日) 15:54:11.30 ID:Mw3X0nZC.net]
>>198
マクロは関係ないのね。 VBAが無くなるとは考えられん

206 名前:デフォルトの名無しさん mailto:sage [2019/03/24(日) 16:01:00.66 ID:dT6Xb8jy.net]
>>201
マクロは単純に廃止だろうね
知らないかもしれないが、昔はVSなどMS製品には大抵VBAマクロが入ってたんだよ
どんどん廃止されて、今や残ってるのはOfficeだけ

207 名前:デフォルトの名無しさん mailto:sage [2019/03/24(日) 16:08:12.38 ID:Mw3X0nZC.net]
>>202
ん? マクロ自身が廃止になるのか?
マクロは残るがVBAじゃなくてjavascriptになるのか、って聞いたんだが

208 名前:デフォルトの名無しさん mailto:sage [2019/03/24(日) 16:19:40.92 ID:aL5blMH8.net]
>マクロ自身が廃止
上でそう言ってたけどソースが見つからない
ただの噂かも

>VBAじゃなくてjavascriptになるのか
現状はjsでもアドインを作れるようになっただけ

俺もvbaは廃止しないと思う

209 名前:デフォルトの名無しさん [2019/03/24(日) 16:19:49.86 ID:rXU7uH3v.net]
だってVBAってセキュリティ的にヤバいし
エクセルファイルに偽装してマルウェア的なかなりの事までやれちゃうから廃止で良いよ

210 名前:デフォルトの名無しさん mailto:sage [2019/03/24(日) 16:23:34.70 ID:Mw3X0nZC.net]
>>204
>俺もvbaは廃止しない

絶対あり得んよね。 今までの過去の資産がどれだけあるか
それを作ってるのは理系のプログラマじゃなくて文系の経理の女の子も相当いるからな



211 名前:デフォルトの名無しさん mailto:sage [2019/03/24(日) 16:46:14.04 ID:cASdygc2.net]
全くバカばっかりだ。
その場で最適なのを選択すりゃ良いんだよ。

レガシーとか言ってるバカは救いようがない。
VBAで簡潔出来るならその方が良いんだよ。
VBScriptでファイル選択ダイアログを使う時にExcel.Application使うなんてのは本当はやりたくないけど他にうまい方法が無いから仕方ない。
このやりたくないというか筋が悪いと感じることが出来ない奴は結局駄目だね。

レガシーなのはその通りだが、それで別言語使って筋悪プログラミングしてたら意味が無い。

212 名前:デフォルトの名無しさん mailto:sage [2019/03/24(日) 17:13:35.45 ID:cASdygc2.net]
“Office アドインはVBAやVSTOを置き換えるものではないので(現時点では)、「何でこんな簡単なこともできないの!?」とイライラしてはいけない”だとさ。

213 名前:デフォルトの名無しさん mailto:sage [2019/03/24(日) 17:17:26.83 ID:iA9UpJgV.net]
Officeアドインとかいうの忌み子になりそうだよな

214 名前:デフォルトの名無しさん mailto:sage [2019/03/24(日) 17:43:12.27 ID:bibhGphx.net]
とりまIEが消えればVBAでスクレイピングは消える
OS依存の負債を作りかねない機能はどんどん省いて欲しいね

215 名前:デフォルトの名無しさん mailto:sage [2019/03/24(日) 17:58:19.82 ID:XiACCcaf.net]
セルの中に、そのセルが存在するシート名を抜き出す関数の定義ってどんなのがある?
シンプルで分かり易い、エクセルの版に依存しないのが良いな。

216 名前:デフォルトの名無しさん mailto:sage [2019/03/24(日) 18:00:03.79 ID:XiACCcaf.net]
ここはVBAのスレだから、セル内で使う計算式の質問はスレ違か。

217 名前:デフォルトの名無しさん [2019/03/24(日) 18:03:25.87 ID:APHXkx0k.net]
言ってみ

218 名前:デフォルトの名無しさん mailto:sage [2019/03/24(日) 18:10:28.59 ID:aL5blMH8.net]
>>210
IEが無くてもhttp通信できるぞ

>>211
cell関数
https://kokodane.com/kan54.htm

シンプルじゃないけどこれぐらいしか

219 名前:デフォルトの名無しさん mailto:sage [2019/03/24(日) 18:26:04.21 ID:bibhGphx.net]
>>214
http通信でスクレイピングか
是非頑張ってくれ

220 名前:デフォルトの名無しさん mailto:sage [2019/03/24(日) 19:01:26.26 ID:eoRp1F4j.net]
>>214
ありです。
残念なことに、CELL関数は Excel Online の excel では動かないんですね。



221 名前:デフォルトの名無しさん mailto:sage [2019/03/24(日) 20:51:56.44 ID:IVIO7oct.net]
というか、IE消えても出来るぞ。Winsockとか知らんか?

222 名前:デフォルトの名無しさん mailto:sage [2019/03/24(日) 21:58:17.14 ID:aL5blMH8.net]
>>216
onlineか、無いっぽい
https://answers.microsoft.com/ja-jp/msoffice/forum/msoffice_excel-mso_other/excelonline%E3%81%A7%E3%83%95%E3%82%A1%E3%82%A4/5d3f3344-87e7-4977-80c5-600013790290?auth=1

SHEET()ってのもあるみたいでどうにかすれば行けそうな気もしたけどやっぱり無理だった

223 名前:デフォルトの名無しさん [2019/03/24(日) 23:27:39.47 ID:APHXkx0k.net]
スクレイピングならJSで良いと思うけど何が何でもVBAなの?
何か幼少期に家庭的な問題でお父さんから虐待されてたとか?

224 名前:デフォルトの名無しさん mailto:sage [2019/03/24(日) 23:39:48.89 ID:3fqiTHWE.net]
pythonスレのスレタイに、ruby禁止と入れて、スレ立てしている奴は荒らしだよ

lodash 禁止とか、jQuery 禁止とか、ライブラリの話は禁止とか書いて、
テンプレを勝手に改変して、スレ立てしている奴は荒らし

色々なスレを荒らしてる

相手をすると居つくから、相手をするな!

225 名前:デフォルトの名無しさん mailto:sage [2019/03/24(日) 23:41:24.84 ID:dT6Xb8jy.net]
次スレはここもRuby禁止をスレタイに入れよう

226 名前:デフォルトの名無しさん mailto:sage [2019/03/24(日) 23:46:49.32 ID:3fqiTHWE.net]
スクレイピングのために、xampp, PHP を学ぶのはキツイ。
Ruby, Nokogiri, Selenium WebDriver で良い。
JavaScript, jQuery も呼び出せるし

VBScript のスレ主のピッコロ大魔王のように、
VBScript, PowerShell で、.NET のライブラリを使って、5ch をスクレイピングする猛者もいるけど、これもキツイ

書きやすいのは、やっぱりRuby!

227 名前:デフォルトの名無しさん mailto:sage [2019/03/24(日) 23:52:43.94 ID:aL5blMH8.net]
という荒らしがいるのでruby禁止をスレタイに入れるのは賛成だ

228 名前:デフォルトの名無しさん [2019/03/25(月) 00:01:34.20 ID:PcSty2cw.net]
スクレイピングってその分野なら必須なのでVBAなんて低速非効率でするなんて馬鹿げてる

229 名前:デフォルトの名無しさん mailto:sage [2019/03/25(月) 00:18:14.82 ID:QHkTeEIZ.net]
エクセル方眼紙で出来ることの限界に挑む

230 名前:デフォルトの名無しさん [2019/03/25(月) 00:44:08.18 ID:hbWmkRbh.net]
極めると魔法使いになれる



231 名前:デフォルトの名無しさん mailto:sage [2019/03/25(月) 12:33:19.91 ID:O3TyiYmg.net]
バカだよなあ。
どんな言語でも出来るがVBAでやるのが最適な場合の質問だろ。
VBAのスレなんだから。

スクレイピングのためにxampp,PHPを学ぶんだよ。
それが最適なら。
Rubyが最適ならRubyでやれ。

でもここではVBAが最適という前提。
オマエの能力が低くてVBAで答えられんことなんか知らん。

232 名前:222 [2019/03/25(月) 23:50:42.64 ID:mW0SiMKO.net]
スクレイピングのために、Apache, MySQL, PHP を学ぶのは、難しすぎる

Ruby なら、PowerShell から、1-liner で、
Rubyで作られた遅いウェブサーバー、WEBrick が起動する

ruby -run -e httpd . -p 8080

そのフォルダに、index.html があれば、
何も考えなくても、これでブラウザからアクセスできる

localhost:8080

DB は、sqlite3 で良い。
sqlite3.exe なら、外部プロセスとして起動できるし、
sqlite3.dll なら、Rubyプロセス内に、DLLを読み込めばよい

それに多くのブラウザは、内部で、sqlite3 を使っている。
MySQL は大げさ

そもそも単に、CSV・テキストファイルに、保存しちゃダメなのか?

233 名前:デフォルトの名無しさん mailto:sage [2019/03/26(火) 00:19:09.71 ID:oh514UWC.net]
ruby禁止

234 名前:デフォルトの名無しさん mailto:sage [2019/03/26(火) 01:15:56.88 ID:H+8MTdhM.net]
いつからスクレイピングとはWEBサーバを立てる事になったんだ

235 名前:デフォルトの名無しさん mailto:sage [2019/03/26(火) 01:19:51.23 ID:LqY+kMaC.net]
スクレイピングの速度を上げすぎるとDoSと勘違いされない?
pythonとかならちゃんと犯罪にならないレベルで収まるよう対策されてるの?

236 名前:222 mailto:sage [2019/03/26(火) 02:40:19.99 ID:gZH84WWp.net]
wget が、再帰的クローラーのコマンドだけど、オプションでwait 時間も設定できる。
wgetの方が、curl よりも高機能

xampp には、Apache が含まれているから、web サーバーも立てたいのかなと思って

237 名前:デフォルトの名無しさん mailto:sage [2019/03/26(火) 08:11:44.77 ID:uoYW3oSf.net]
次からruby禁止をスレタイに入れよう

238 名前:デフォルトの名無しさん mailto:sage [2019/03/26(火) 09:52:19.15 ID:6lKUP98X.net]
バカは自分の無能を言い訳に相手の望まない案を提案する。

誰もRubyでやってくれなんて言ってないんだが。

239 名前:デフォルトの名無しさん [2019/03/26(火) 09:56:34.73 ID:YksIzQQu.net]
VBAを覚えても馬鹿にされるだけだしVBA程度でプログラミング出来ますって言えないし
本当に辛いよな

240 名前:デフォルトの名無しさん mailto:sage [2019/03/26(火) 10:13:52.38 ID:uoYW3oSf.net]
>>235
>VBAを覚えても馬鹿にされるだけ
どこで?
これぐらいは基本スキルと思う

>VBA程度でプログラミング出来ますって言えない
誰に大して言うの?
vbaは一般事務や営業が楽するためのツールだよ
vbaプログラマーなんて滅多にいない



241 名前:デフォルトの名無しさん mailto:sage [2019/03/26(火) 11:33:39.48 ID:HkFlKNPk.net]
昔は同時接続5つくらいまでみたいなマナーのようなのがあったが、今はどうなの?

242 名前:デフォルトの名無しさん mailto:sage [2019/03/26(火) 11:43:27.57 ID:v6BkG2hM.net]
>>236
そりゃそうだ

ところで他言語連携って、A言語で作ったライブラリをB言語から呼び出すパターンと、
時間的同期を意識しなくていいバッチ的なももの組み合わせみたいなものしかイメージないんだけど、
イベント連携しながら運用するようなパターンもよくあるの?

243 名前:デフォルトの名無しさん mailto:sage [2019/03/26(火) 12:18:27.89 ID:uoYW3oSf.net]
>>237
図書館のサーバーに大してかなり気を使ってスクレイピングしたにも関わらず、電子計算機損壊になった例もある
どこまでokとかは言えない

244 名前:デフォルトの名無しさん mailto:sage [2019/03/26(火) 12:32:19.25 ID:6lKUP98X.net]
>>235
いや、普通に言うけどね。
C、C++、Java、VBAとかって。
それに、VBAを使うべきじゃないと言う時もある。

でも、ここで他言語のことを言う奴ってVBAの方が完全に良い場合に他のが良いとか言う無能が多いからなあ。

245 名前:デフォルトの名無しさん mailto:sage [2019/03/26(火) 12:32:53.04 ID:6lKUP98X.net]
>>239
普通は相手に許可を取るもんだけどな。

246 名前:デフォルトの名無しさん mailto:sage [2019/03/26(火) 12:34:55.56 ID:ke9zWH00.net]
>>240
シートにデータ張るくらいの簡単なものなら インタフェースできてるからVBAが一番楽。

247 名前:デフォルトの名無しさん mailto:sage [2019/03/26(火) 12:35:47.09 ID:uoYW3oSf.net]
>>241
取らないよwww

248 名前:デフォルトの名無しさん mailto:sage [2019/03/26(火) 12:43:36.07 ID:6lKUP98X.net]
>>243
遊びでやってるならどうぞw
事務でも仕事なら取るべきだ。

249 名前:デフォルトの名無しさん mailto:sage [2019/03/26(火) 12:46:04.30 ID:uoYW3oSf.net]
許可は取らないけおd、API作ってくれとは連絡するかな

250 名前:デフォルトの名無しさん mailto:sage [2019/03/26(火) 12:55:18.22 ID:DPMd1MEr.net]
VBAのエディターにはVSみたく行番号を表示する機能は標準では備わっていないのでしょうか?



251 名前:デフォルトの名無しさん mailto:sage [2019/03/26(火) 13:06:52.15 ID:LqY+kMaC.net]
>>246
ない
フリーウェアの助けが必要

252 名前:デフォルトの名無しさん mailto:sage [2019/03/26(火) 13:14:58.60 ID:uoYW3oSf.net]
昔使ってたな
https://qiita.com/ynakayama/items/ef35966f1e456392ec93

たまに欲しいけど、別に無くてもいいかなって

253 名前:デフォルトの名無しさん mailto:sage [2019/03/26(火) 13:16:03.76 ID:DPMd1MEr.net]
>>247
サンクス

VSと比べていろいろと中途半端ですね。

C#でこれまではずっと開発してましたが
Excel台帳ベースのシステムを組む事になったので
今回は、VBAで開発してます。

大体のことはVBAでできるけど、本格的な開発はやはりVS使わないとダメですね。

254 名前:デフォルトの名無しさん mailto:sage [2019/03/26(火) 16:55:11.90 ID:LqY+kMaC.net]
>>249
ワークシートなどを含むExcelオブジェクトはVSからでも普通に読み書き操作できるぞ
使っていいんならVSで開発すればいい

255 名前:デフォルトの名無しさん mailto:sage [2019/03/26(火) 17:24:40.03 ID:DPMd1MEr.net]
>>250
ちょっとした文字列操作とかスクレイピングだから
VBAの方が楽かな〜と思って今回数年ぶりにVBAいじってます。

256 名前:デフォルトの名無しさん mailto:sage [2019/03/26(火) 18:32:26.11 ID:1ujvGqyy.net]
ちょっとした文字列操作とスクレイピングってVBAが一番苦手なやつでは

257 名前:デフォルトの名無しさん mailto:sage [2019/03/26(火) 18:42:15.15 ID:uoYW3oSf.net]
・スクレイピングは深夜にcron+phpで行ってサーバー上に保存
・vbaはその結果を取得
の二段構えが楽と思うけどな

文字列操作はどんな言語でもなんとかなるやろ
EXCELに入れるとunicode周りが死ぬけど

258 名前:デフォルトの名無しさん mailto:sage [2019/03/26(火) 18:53:14.39 ID:1ujvGqyy.net]
cron使える環境ならphpなんて大層なもん入れなくてもcurlとかwgetでよくね

259 名前:デフォルトの名無しさん mailto:sage [2019/03/26(火) 18:57:02.87 ID:uoYW3oSf.net]
どうなんだろうな
俺はもうスクレイピングなんかに多言語勉強したくないから、cronからphp叩いてどうのこうのしている
vbaはもう完全に後始末で、骨拾うだけ

260 名前:デフォルトの名無しさん mailto:sage [2019/03/26(火) 20:15:40.62 ID:OL2Ik/OA.net]
スクレイピングの主役は通信じゃない
winsockでもwgetでもbitsadminでも良いから取ってきたファイルをどうするか教えてくれよ



261 名前:デフォルトの名無しさん mailto:sage [2019/03/26(火) 21:08:44.89 ID:DPMd1MEr.net]
>>253
ログインしないと見えないデータなんだよ
なのでクライアントでの取得必須

262 名前:デフォルトの名無しさん mailto:sage [2019/03/26(火) 21:16:14.33 ID:IZpVJLyd.net]
んなもん2段階認証とかじゃなければセッションなりクッキー投げるだけやん
取ってきたファイルはパーサーに食わせるなり正規表現でゴリゴリするなりだけど
そのどちらもVBAはとても苦手な分野やで

263 名前:デフォルトの名無しさん mailto:sage [2019/03/26(火) 21:25:26.00 ID:/NHGfRej.net]
認証とかhtmlパーサとかJSエンジンとか
大抵はその辺をIE操作で賄うモノだと思ってたけど自分の認識が違ったらしい

264 名前:デフォルトの名無しさん mailto:sage [2019/03/26(火) 21:25:56.25 ID:DPMd1MEr.net]
>>258
あんちゃん詳しいな〜
そーいうのやったことが無い。
試しにやってみようかな。

265 名前:デフォルトの名無しさん mailto:sage [2019/03/26(火) 22:18:57.15 ID:uoYW3oSf.net]
basic認証なんかは瞬殺だけど、
セッションとかクッキーになると、諸々含めてphpにした方が良い。というかchrome拡張が一番楽
httpsやらUA絡みだすと小生無理!ってなる。

266 名前:デフォルトの名無しさん mailto:sage [2019/03/26(火) 22:19:38.30 ID:uoYW3oSf.net]
vbaはwebに向いてないってことだけは覚えておいて欲しい
それだけなんだ

267 名前:222 mailto:sage [2019/03/26(火) 22:45:37.41 ID:gZH84WWp.net]
ログインするなら、Ruby, Selenium WebDriver で、ブラウザを自動操作すべき。
iMacros でも良いけどさ

>>222
に書いてある通り

268 名前:デフォルトの名無しさん mailto:sage [2019/03/26(火) 23:07:10.89 ID:DPMd1MEr.net]
>>261
年齢を重ねると新しい技術を学ぶのが億劫になるんじゃよ

269 名前:デフォルトの名無しさん mailto:sage [2019/03/26(火) 23:28:35.45 ID:Q3YSvizA.net]
Excelマクロについて全くの無知でみなさんにお伺いしたいのですが、マクロで画像のような操作は可能でしょうか?会社の書類作成事務の効率を上げたく…
スレ違いでしたらすみません。https://i.imgur.com/xF5hatf.jpg

270 名前:デフォルトの名無しさん mailto:sage [2019/03/26(火) 23:38:24.00 ID:WFGn9NdD.net]
>>265
VLOOKUPで余裕でしょ
マクロなんか要らん



271 名前:デフォルトの名無しさん mailto:sage [2019/03/26(火) 23:41:30.56 ID:oc5f3itp.net]
>263
rubyがゴミ言語って事はよくわかった

272 名前:デフォルトの名無しさん mailto:sage [2019/03/26(火) 23:53:51.99 ID:DPMd1MEr.net]
今更ではあるけれど、C#やVB.netで開発しなくても
だいたいVBAでできるな〜

結局データの保存先がDBなどではなく
Excelとかだから最初からVBAで開発しておけばよかったと若干公開

273 名前:デフォルトの名無しさん mailto:sage [2019/03/26(火) 23:55:07.78 ID:KxwbGcFA.net]
みんながExcelを起動しているとき、
俺の画面だけJexcelだったら格好いいのに・・・。

274 名前:デフォルトの名無しさん mailto:sage [2019/03/27(水) 00:00:46.69 ID:b6YT5YdE.net]
>>265
大体こういうこととは思うが
https://dotup.org/uploda/dotup.org1806820.zip.html
もう少し詳しく伝えてもらわんとなんここっちゃわからん
とりあえずvbaは不要で、
vlookup、indek+matchの合わせ技になる

275 名前:デフォルトの名無しさん mailto:sage [2019/03/27(水) 06:10:59.97 ID:6zpqUxeP.net]
>>267
>>270
ご親切にありがとうございます!やってみます!

276 名前:デフォルトの名無しさん mailto:sage [2019/03/27(水) 07:18:37.18 ID:g4NvvqYE.net]
>>244
YahooやGoogleなどの検索エンジンはいちいち許可とってるのか?

277 名前:デフォルトの名無しさん mailto:sage [2019/03/27(水) 08:05:19.82 ID:qB5RyyD6.net]
>>239
もし岡崎図書館のことを言ってるんなら、一度は逮捕されたけど結果は不起訴で、逆にシステム管理者側が謝罪までしてるんだけど

278 名前:デフォルトの名無しさん mailto:sage [2019/03/27(水) 08:22:43.90 ID:VuG/f/aB.net]
馬鹿が設計した糞検索システム

279 名前:デフォルトの名無しさん mailto:sage [2019/03/27(水) 08:30:41.26 ID:/DQA1U1P.net]
>>245
>>272
コミュニケーションが取れない人なのか、知ったかなのか、それとも趣味でやってるだけなのか知らないが、そもそも図書館事件と言えば岡崎市の事件のことだろ。

本当に事件のこと知ってるのか?
図書館側のシステムに問題があったとしても、了解を求めることなくこういうことをするのが問題なのはマナー上当然のことだろうに。

そもそも、ここで言われてるのが岡崎市の事件と全く同じようにアクセスするわけでないのは当然だから、大量アクセスを否定した話にすらなっていない。
こちらの行為について迷惑だと判定するのが向こう側なのに、こっちの勝手な判断に従って了解を求めることすらしないじゃ趣味といわれても仕方ない。

>>239に対して許可を取るのが普通という発言を受けて「API作ってくれ」と連絡するってのが、全く意味が分からん。
コミュニケーションって分かる?
相手にこちらが何をしたいかも伝えずにAPIの話をするんかねw

280 名前:デフォルトの名無しさん mailto:sage [2019/03/27(水) 08:32:19.22 ID:/DQA1U1P.net]
>>273
有名な事件だから顛末はすべて分かってるけど、これ以降、連絡するのはマナー上当然という流れになってると思うが。



281 名前:デフォルトの名無しさん mailto:sage [2019/03/27(水) 08:33:13.53 ID:g4NvvqYE.net]
>>275
お前、何いってんの? 図書館の問題なんか関係ないわ。そんな話はしていない
びっくりしたわ
コミュニケーションが取れない人ってお前自身じゃね

282 名前:デフォルトの名無しさん mailto:sage [2019/03/27(水) 08:50:55.41 ID:qyHdViw9.net]
コミニュケーションつかマウント取りたいだけ。
マウント取るため勝手に論点ずらし、話題変更。

283 名前:デフォルトの名無しさん mailto:sage [2019/03/27(水) 08:51:51.44 ID:g4NvvqYE.net]
NGIDでもしとくか

284 名前:デフォルトの名無しさん mailto:sage [2019/03/27(水) 09:05:24.83 ID:/DQA1U1P.net]
>>277
それまでのやり取り見てから言えよ。
お前は>244に対して発言してるんだろ。
>>244の話の起点は>>239なんだよ。

そんなことも分からないからコミュニケーションが取れないと言われるわけだw

285 名前:デフォルトの名無しさん mailto:sage [2019/03/27(水) 09:09:47.26 ID:/DQA1U1P.net]
>>277
それと、誤解を与えたと思うが、そもそもの知ったかとかコミュニケーションとかは>>245に対して言ってたつもり。
たまたま、タイミング良く>>272の発言があったから、一緒にアンカーつけたけどな。

286 名前:デフォルトの名無しさん mailto:sage [2019/03/27(水) 09:18:24.88 ID:/DQA1U1P.net]
>>275
>>237>>239>>241ときて>>245の意味が全く分からなくての発言だ。

岡崎事件を挙げて、どこまでokとかは言えないと言っておきながら無断でスクレイピングすると言ってる。

全く意味が分からねえ。

287 名前:デフォルトの名無しさん mailto:sage [2019/03/27(水) 09:29:20.58 ID:7IO5xMdH.net]
スクレイピングで許可がいるってどういう時だ?
そもそもスクレイピングってブラウザの手動操作を経由しないGetリクエストが全部該当しちゃうの?

288 名前:デフォルトの名無しさん mailto:sage [2019/03/27(水) 09:46:33.15 ID:tQ4XPcUj.net]
頻度の問題なんだよ
秒間一回のリクエストで逝くゴミサイトだろうが、それで迷惑がかかるなら業務妨害になる可能性がある
検索エンジンは特定のサイトに頻繁にポーリングかけたりはしない

289 名前:デフォルトの名無しさん mailto:sage [2019/03/27(水) 10:07:46.17 ID:1/Djbd0f.net]
マナーとかいう自分ルールでマウント取ってるだけだから無視でいいよ

290 名前:デフォルトの名無しさん mailto:sage [2019/03/27(水) 10:38:41.64 ID:SENvFn41.net]
>>283
ループコードでブラクラといってくる
無能警察(兵庫県警)がいるからそこだけ問題



291 名前:デフォルトの名無しさん mailto:sage [2019/03/27(水) 10:46:27.13 ID:7IO5xMdH.net]
>>284
スクレイピングで検索しても頻度のことは言っておらずループで回すこととも結びつかない解説が多いんだよね。
だから「ボタン押す都度なんかやる」ってだけのプログラムも対象になりうるんじゃないかと心配になる。

292 名前:デフォルトの名無しさん mailto:sage [2019/03/27(水) 11:09:17.76 ID:g4NvvqYE.net]
なんか左の番号に抜けがたくさんあるんだが、発狂でもしてんの?w

293 名前:デフォルトの名無しさん mailto:sage [2019/03/27(水) 11:15:22.00 ID:1/Djbd0f.net]
そういうあぼん報告が一番ダサいし荒らしと同程度に邪魔

294 名前:デフォルトの名無しさん mailto:sage [2019/03/27(水) 11:20:36.67 ID:g4NvvqYE.net]
そうかい、悪かったなw

295 名前:デフォルトの名無しさん mailto:sage [2019/03/27(水) 12:16:26.49 ID:qB5RyyD6.net]
無能な警察が存在するのは事実なんだから、その対策もエンジニアは考えておくべきだな
対策せずに逮捕されても自業自得

296 名前:デフォルトの名無しさん mailto:sage [2019/03/27(水) 14:45:35.60 ID:SENvFn41.net]
兵庫県警の無能さを舐めたら逮捕されるで

https://trendy15.info/29563/

297 名前:デフォルトの名無しさん mailto:sage [2019/03/27(水) 18:22:44.74 ID:/DQA1U1P.net]
>>285
>>237で始まったマナーの話なのに自分ルールにされる

298 名前:フは如何なものか。 []
[ここ壊れてます]

299 名前:デフォルトの名無しさん mailto:sage [2019/03/27(水) 18:25:48.12 ID:1/Djbd0f.net]
だから無視しろって言ってんだろ

300 名前:デフォルトの名無しさん mailto:sage [2019/03/27(水) 18:40:43.91 ID:/DQA1U1P.net]
>>294
ん、俺を無視しろと言ったんじゃ無いのか?



301 名前:デフォルトの名無しさん mailto:sage [2019/03/27(水) 18:51:37.49 ID:5WFP8xQ3.net]
図書館の奴は
ddosでも無いのに拘留期間が長かったのが問題だと自分は思ったな当時

302 名前:デフォルトの名無しさん mailto:sage [2019/03/27(水) 19:45:35.45 ID:BAe8z9/n.net]
IT分野に関しては日本はシナにも劣る土人国。
winny潰しも酷かったな。

303 名前:デフォルトの名無しさん mailto:sage [2019/03/27(水) 23:33:40.70 ID:SENvFn41.net]
コインヘイブの件しかり日本警察のIT力は
世界最下位

304 名前:デフォルトの名無しさん mailto:sage [2019/03/28(木) 04:24:21.91 ID:Wtvk2F5L.net]
スクレイピングは、1日1回までなら大丈夫。
検索エンジンは、そうしてる

相手のrobot.txt に書いてある

何回もリロードすれば、手動でも、営業妨害で逮捕される。
だからテストでも、他人のサイトには、絶対にアクセスしない

とにかく、相手の業務を妨害したら、逮捕されるだけ

305 名前:デフォルトの名無しさん mailto:sage [2019/03/28(木) 08:57:55.98 ID:5jfiWKtJ.net]
>>299
適当すぎる
図書館の件は何も分かって無い警察の見せしめ逮捕だよ
罪状も計算既損化い

306 名前:トレード神 mailto:sage [2019/03/28(木) 09:14:56.43 ID:iot7Ha6W.net]
>>300
兵庫県警がそもそもバカだから
それが問題

1日1回とか遠慮しすぎ

307 名前:デフォルトの名無しさん mailto:sage [2019/03/28(木) 09:53:33.46 ID:KGU9QSs8.net]
兵庫の件は馬鹿が権力を持つとどうなるかの良い見本

308 名前:デフォルトの名無しさん mailto:sage [2019/03/28(木) 10:53:27.70 ID:l7H13VPO.net]
スクレイピングは違法?3つの法律問題と対応策を弁護士が5分で解説
https://topcourt-law.com/internet_security/scraping-illegal
以下、抜粋

3.スクレイピングと著作権
コンピュータによって情報を解析することが目的である場合には、例外的に著作権者の同意を得ることなく、
スクレイピングによって取得した他社情報などを記録媒体に記録したり翻案することができます

4.スクレイピングと利用規約
ユーザーが利用規約(スクレイピングを禁止する内容が含まれているもの)に同意していることが必要になります。
ユーザーが利用規約に同意することにより、ユーザーは「スクレイピングをしない」義務を負うことになる

5.スクレイピングとサーバ負荷
偽計業務妨害罪が成立するかどうかは、スクレイピング行為によって相手方の「業務を妨害したか否か」が
判断基準になるところ、スクレイピングによって何回アクセスしたら違法で、反対に何回までなら合法です、
といった基準はありません

ただ、Librahack事件は一つの目安になると思われます。この事件では、
逮捕された者が1秒に1回の頻度で1日2000回のスクレイピングを試みた点について、
サーバに負荷をかけたとまではいえないとの見方もあります。

この判断は、まだ合法とのお墨付きを与えるものではありませんが、仮にスクレイピングをするとしても
「自然検索の範囲内」で対応するのがベターかもしれません

309 名前:デフォルトの名無しさん mailto:sage [2019/03/28(木) 11:10:36.15 ID:BrBnWuaI.net]
させたくない側が、されない・させないための対応・対策に参考になります

310 名前:デフォルトの名無しさん mailto:sage [2019/03/28(木) 11:35:08.61 ID:TXhBN1cl.net]
岡崎図書館の時に、IT



311 名前:ニ界の識者が集まって講演会をやったんだけど、
専門用語を使わずに素人にも理解できるように説明する能力がプログラマーにも求められる、みたいな意見も出てた
そうしないと自衛もできない
[]
[ここ壊れてます]

312 名前:デフォルトの名無しさん mailto:sage [2019/03/28(木) 11:54:05.51 ID:HLZueckG.net]
>>303
そのページ見たけど「スクレイピング」も「クローラ」も曖昧にしか定義されてないね。
ループでぐるぐる回してるかどうかなんて観点は全くなさそうだ。
HTTPリクエストはプログラムだけどブラウザはプログラムじゃないと思ってるんだろう。

313 名前:デフォルトの名無しさん mailto:sage [2019/03/28(木) 12:31:01.04 ID:wSbwELs4.net]
単に合法かどうかばかり論じてるけど、相手に連絡とって、こういうことをしたいって言ってれば捕まることも無かったろうさ。
無断にやったのが問題なんだ。

314 名前:デフォルトの名無しさん mailto:sage [2019/03/28(木) 12:39:14.95 ID:yd30y0n6.net]
>>306
> ループでぐるぐる回してるかどうかなんて観点は全くなさそうだ。
サーバーにはそんな観点は関係ないから当たり前
人海戦術でも業務に妨害を与えることは可能

315 名前:デフォルトの名無しさん mailto:sage [2019/03/28(木) 12:40:48.59 ID:yd30y0n6.net]
>>307
だからそれを突き詰めたらWebページにアクセスする前に許可取れってことになる

316 名前:デフォルトの名無しさん mailto:sage [2019/03/28(木) 12:50:17.63 ID:wSbwELs4.net]
>>309
取れば良いじゃん。

317 名前:デフォルトの名無しさん mailto:sage [2019/03/28(木) 13:06:23.97 ID:YnObyfLa.net]
おまえ5chに許可取ってないだろ

318 名前:デフォルトの名無しさん mailto:sage [2019/03/28(木) 13:58:01.74 ID:HLZueckG.net]
>>308
ならブラウザだって同じ事じゃないか?
スクレイピングだけ取り立てて許可だ規制だってなんの恨みでもあるのか

319 名前:デフォルトの名無しさん mailto:sage [2019/03/28(木) 14:26:42.73 ID:iot7Ha6W.net]
まとめサイトは取り締まらない無能な兵庫県警

そここそ5chコピーサイトなんて、スクレイピングしまくりだろ

320 名前:デフォルトの名無しさん mailto:sage [2019/03/28(木) 15:13:29.76 ID:yd30y0n6.net]
>>310
まあ、頑張れw

>>312
だからスクレイピングだけ云々はおかしいって話をしてるんだが…



321 名前:デフォルトの名無しさん mailto:sage [2019/03/28(木) 16:56:38.72 ID:HLZueckG.net]
>>314
どうも君のスタンスがよくわからんな

スクレイピングもブラウザもサーバ側から見ると機能に違いはない。
だからスクレイピングだけ云々はおかしい。
ただしスクレイピングは一人でも超高頻度のクエリー投げることができて、そういう運用については制約が必要だ。
よってスクレイピングについての記事は頻度についての言及をすべきだろう。
 ↑
俺のスタンスはざっとこんなもんだが違うのか?

322 名前:デフォルトの名無しさん mailto:sage [2019/03/28(木) 18:19:07.66 ID:vLmtjJZv.net]
>>315
> ただしスクレイピングは一人でも超高頻度のクエリー投げることができて、そういう運用については制約が必要だ。
一人かどうかとかも関係ない
1,000,000人集めて人手なら業務妨害に当たらないとか無いだろ

323 名前:デフォルトの名無しさん mailto:sage [2019/03/28(木) 18:29:37.80 ID:HLZueckG.net]
>>316
同じなのは業務妨害になるという結果だけだ。
人手でも業務妨害になるという主張をするなら「多人数集めて一斉にやったら」という但し書きが必要だろ?
スクレイピングについても「高頻度にやったら」という但し書きが必要なのは当然だ。
そういう条件を付けないと、リテラシーの低いやつがルールを機械的に適用するぞ。

324 名前:デフォルトの名無しさん mailto:sage [2019/03/28(木) 18:38:56.13 ID:4sDP5yAV.net]
中学生がF5連打して逮捕されるやつ

325 名前:デフォルトの名無しさん mailto:sage [2019/03/28(木) 18:39:42.93 ID:su6DvUn3.net]
図書館の話は迷惑行為であるが刑事犯罪になんかならないよ
業務妨害とか言ってる奴はそれを笠に着て自分が然も凄いが如く言いたいだけの奴

326 名前:デフォルトの名無しさん mailto:sage [2019/03/28(木) 19:12:07.44 ID:vLmtjJZv.net]
>>317
> 人手でも業務妨害になるという主張をするなら「多人数集めて一斉にやったら」という但し書きが必要だろ?
> スクレイピングについても「高頻度にやったら」という但し書きが必要なのは当然だ。
プログラマーに向いてないね
そんな但書は要らん
サーバーに対するリクエスト数を制限するだけでいい

327 名前:デフォルトの名無しさん mailto:sage [2019/03/28(木) 19:28:34.20 ID:5jfiWKtJ.net]
>>313
誰も被害届出してないから

328 名前:デフォルトの名無しさん mailto:sage [2019/03/28(木) 19:37:20.19 ID:zggdcEf4.net]
>>320
>>303にあるような記事は一般人向けのものであり、一般人はそれを読んでスクレイピングの
定義を知った気になってしまうのだ。

329 名前:デフォルトの名無しさん mailto:sage [2019/03/28(木) 19:46:13.69 ID:iot7Ha6W.net]
無能兵庫県警をなめたら逮捕されるぜ

330 名前:デフォルトの名無しさん mailto:sage [2019/03/28(木) 19:51:14.41 ID:xFQ00KNs.net]
リクエストだけの問題じゃない
WEB鯖の場合、セッションを確保したままにするとアクセスしなくてもリソースをどんどん食い潰してくという厄介な仕様があってだな



331 名前:デフォルトの名無しさん mailto:sage [2019/03/28(木) 19:56:49.67 ID:fRHhg+J8.net]
>>324
そんなものはサーバー側の設定でなんとでもなるだろ

332 名前:デフォルトの名無しさん mailto:sage [2019/03/28(木) 20:04:40.58 ID:O79akzCM.net]
レンサバやと無理やで

333 名前:デフォルトの名無しさん mailto:sage [2019/03/28(木) 20:36:18.92 ID:A3r+RL12.net]
この前はDBだかSQLだかの話を何日も延々と
今度はスクレイピングの話を延々と

別スレでもたててそこでやれよ

334 名前:デフォルトの名無しさん mailto:sage [2019/03/28(木) 20:52:55.75 ID:GAoTTZZk.net]
スタンスにゴン

335 名前:デフォルトの名無しさん mailto:sage [2019/03/28(木) 21:04:10.10 ID:O79akzCM.net]
技術的な知識も現実的な場数も足りてないから頓珍漢な議論しか出来ず
しかも煽り会っているから永遠に終わらないのだ

336 名前:デフォルトの名無しさん mailto:sage [2019/03/28(木) 21:04:30.98 ID:GfRjulTl.net]
>>326
むしろレンサバだと提供者がそういう設定してるだろ

337 名前:デフォルトの名無しさん mailto:sage [2019/03/28(木) 21:05:00.71 ID:GfRjulTl.net]
>>329
自己紹介かよw

338 名前:デフォルトの名無しさん mailto:sage [2019/03/28(木) 21:35:58.12 ID:O79akzCM.net]
>>331
ところで何のために煽ってるの?何か得するかいい気分になるの?
そこまで生産性の無い事をする気持ちが良く分からない

339 名前:デフォルトの名無しさん mailto:sage [2019/03/28(木) 22:00:45.02 ID:fRHhg+J8.net]
> ところで何のために煽ってるの?何か得するかいい気分になるの?
> そこまで生産性の無い事をする気持ちが良く分からない
>>329みたいなこと書く奴が何を言ってるんだよ…

340 名前:デフォルトの名無しさん mailto:sage [2019/03/28(木) 22:06:21.95 ID:RWzvd4oq.net]
もはやVBAとは何の関係も無い



341 名前:デフォルトの名無しさん mailto:sage [2019/03/29(金) 08:21:18.11 ID:FHKNInbw.net]
捕まるとかそういう話に終始してるのがアホらしい。
トラブルになった時点で負けだろう。

スクレイピングでのトラブルは探せば色々見つかるだろう。

時間割アプリの問題とかLinkedInとか。
殆どがコンタクトを取っていれば防げた問題。
もっとも中には許可されないことが分かってて確信犯的に無断でする場合もあるが。

342 名前:デフォルトの名無しさん mailto:sage [2019/03/29(金) 13:03:28.66 ID:HmBCV24x.net]
【速報】金券500円分タダでもらえる   
https://pbs.twimg.com/media/D2y3uRaUkAAt6d9.jpg     
 
@タイムバンクをインストール   
iOS: https://itunes.apple.com/jp/app/%E3%82%BF%E3%82%A4%E3%83%A0%E3%83%90%E3%83%B3%E3%82%AF/id1253351424?mt=8 
Android: https://play.google.com/store/apps/details?id=jp.timebank  
A会員登録  
Bマイページへ移動する。
C招待コード→招待コードを入力する [RirzTu] 

コードを入力した方に600円もらえます     
今なら更に500円ギフト券を貰った残高からただで買えます。 
貰ったギフティプレモはAmazonギフト券(チャージタイプ)に交換できます(電子マネー払いにて)    
      
数分で出来るので是非ご利用下さい  

343 名前:デフォルトの名無しさん mailto:sage [2019/03/29(金) 17:02:06.83 ID:Ozum7hk2.net]
>>334
関係ないのに永遠に続けるバカっているよな

344 名前:デフォルトの名無しさん [2019/03/29(金) 18:38:03.39 ID:NYOzkE7a.net]
>>336
残高マジで増えたwww   

345 名前:デフォルトの名無しさん mailto:sage [2019/03/29(金) 18:58:02.78 ID:Ozum7hk2.net]
>>336
これを自分の招待コードに差し替えて拡散すれば勝手にポイントガッポガッポやで

346 名前:デフォルトの名無しさん mailto:sage [2019/03/30(土) 00:05:18.82 ID:K763EDhF.net]
Cells(1, 1).Value = "〒111-222" & vbCrLf & "東京都新宿区XXXマンション" & vbCrLf & "西村ひろぽん"

のコードでセルに改行コード crlf 入りの文字列を入力し
Excelのセルの値をメモ帳に張り付けるとこんな感じになってました。

〒111-222

東京都新宿区XXXマンション

西村ひろぽん


crが余計に1つ多くvbcrlfの前に入ってしまいます。
コードでは入れていないのですが、なぜでしょうか?何か対策はありますか?

347 名前:デフォルトの名無しさん mailto:sage [2019/03/30(土) 00:46:09.75 ID:Bc/A+ZhT.net]
>>340
コードの時点ではvbLfにすればいい

348 名前:デフォルトの名無しさん mailto:sage [2019/03/30(土) 01:05:53.94 ID:BYxrD6lc.net]
>>340
再現しなかった
vbcrが2つ入ってたらそうなるけど、ハテ

349 名前:デフォルトの名無しさん [2019/03/30(土) 02:01:07.03 ID:GNmeMRzR.net]
VBAなんて全くできないんだけど
エンジニアってこれよりずっと難しいことやってるんでしょ?

350 名前:デフォルトの名無しさん mailto:sage [2019/03/30(土) 02:21:31.67 ID:BYxrD6lc.net]
>>343
このスレは基本的に一般事務・経理・営業が、現在のルーチンを補助するためのツール作成がメイン
エンジニアはEXCEL自体を作るようなイメージ
でもvbaエンジニアもいたりするし、こういうツールを作る事を生業にしている業者もある



351 名前:デフォルトの名無しさん [2019/03/30(土) 03:03:59.52 ID:Lscb2BBn.net]
>>340
Cells(1, 1).Value = "〒111-222" & vbLf & "東京都新宿区XXXマンション" & vbLf & "西村ひろぽん"

セル内改行はLFのみだよ

352 名前:デフォルトの名無しさん mailto:sage [2019/03/30(土) 03:59:45.09 ID:x88rhneO.net]
>>339
スパム拡散させようとすんなカス

353 名前:デフォルトの名無しさん mailto:sage [2019/03/30(土) 07:57:38.98 ID:K763EDhF.net]
>>341
はい、確かにVBAで挿入する時には
それでうまくいきました。
セルの値をコピーすると

文字列lf →文字列crlf に置き換わってました。

なぜだろう。

>>342
いや、再現しますよ。

>>345
サンクス。
とりあえずVBAではおまじないと覚えておきます。

354 名前:デフォルトの名無しさん mailto:sage [2019/03/30(土) 08:04:35.59 ID:MmqNwO70.net]
素直に

Cells(1, 1).Value = "〒111-222"
Cells(2, 1).Value = "東京都新宿区XXXマンション"
Cells(3, 1).Value = "西村ひろぽん"

じゃダメだったのかい!

355 名前:デフォルトの名無しさん mailto:sage [2019/03/30(土) 08:43:12.88 ID:Bc/A+ZhT.net]
>>347
試してみたら
CR → CRLF
LF → CRLF
となった。
つまりCRもLFも別個にCRLFに変換されてしまうようだ。

356 名前:デフォルトの名無しさん mailto:sage [2019/03/30(土) 09:05:05.65 ID:sUXpnQB5.net]
>>349
それOS依存だろ
OSに合わせて変換だと思った

357 名前:デフォルトの名無しさん mailto:sage [2019/03/30(土) 09:13:46.28 ID:FTZFsy98.net]
vbNewLineが颯爽と登場

358 名前:デフォルトの名無しさん mailto:sage [2019/03/30(土) 09:55:31.40 ID:rKCbbHqC.net]
お母さんからvbNewLineを使いなさいって言われてるから初心者の俺も使ってるわ

359 名前:デフォルトの名無しさん mailto:sage [2019/03/30(土) 10:59:51.98 ID:rKRPcC1u.net]
crとlfを意識して使い分けたいから、newlineはあえて使わないな

360 名前:デフォルトの名無しさん mailto:sage [2019/03/30(土) 11:00:14.19 ID:Fw0ogXHz.net]
android版はVBA使えないしMacなんか使わないからvbCrLfで困らない



361 名前:デフォルトの名無しさん mailto:sage [2019/03/30(土) 11:38:26.16 ID:BYxrD6lc.net]
本日の戦い

vbNewLineでよくね派
     vs
vbNewLine使うと余計に混乱してしまう派

362 名前:デフォルトの名無しさん mailto:sage [2019/03/30(土) 12:05:31.96 ID:Bc/A+ZhT.net]
>>352
vbNewLineてテキストの改行だろう
セル内改行とは違うじゃんか

363 名前:デフォルトの名無しさん mailto:sage [2019/03/30(土) 12:07:01.20 ID:sUXpnQB5.net]
>>355
初心者を扱うの大変なんだよな
だから混乱が起きた

364 名前:デフォルトの名無しさん mailto:sage [2019/03/30(土) 12:08:46.76 ID:sUXpnQB5.net]
>>356
どうでもいいよ どうせ

365 名前:デフォルトの名無しさん mailto:sage [2019/03/30(土) 12:42:55.38 ID:MmqNwO70.net]
そもそも何でCRとLF、2つも作ったんだろ。
見えないのもうざいから、ワードみたいに

  |
  |
←┘

こういうの入れとけよな。

366 名前:デフォルトの名無しさん mailto:sage [2019/03/30(土) 12:51:14.77 ID:K763EDhF.net]
>>348
ダメ

>>349 >>350
変な仕様だよね

367 名前:デフォルトの名無しさん mailto:sage [2019/03/30(土) 13:21:22.36 ID:BYxrD6lc.net]
>>35

368 名前:9
歴史ってとこ
https://ja.wikipedia.org/wiki/%E6%94%B9%E8%A1%8C%E3%82%B3%E3%83%BC%E3%83%89

統一規格の概念が希薄だった時代にみんな好き勝手作って、それがずっと続いてる
最悪
[]
[ここ壊れてます]

369 名前:デフォルトの名無しさん mailto:sage [2019/03/30(土) 13:34:00.20 ID:HZnZWzso.net]
タイプライターとかMulticsとかの時代にさかのぼる負の遺産だからね

370 名前:デフォルトの名無しさん mailto:sage [2019/03/30(土) 13:43:10.56 ID:lnhNxPid.net]
>>359
> そもそも何でCRとLF、2つも作ったんだろ。
その話をするとタイプライターの時代まで遡るからとりあえずそう言うもんだと覚えておけばいいよ



371 名前:デフォルトの名無しさん mailto:sage [2019/03/30(土) 13:47:06.57 ID:glDBW/eM.net]
>>340
Excelは何も置き換えてない
Excelがセル内改行として扱うのはLFだけ
CRLFを突っ込んでもCR部分はただの見えない文字として存在してるだけで改行しない

セルの文字列をコピペした時CRLFのうちLFがCRLFに置き換わってCR CRLF状態になる(Windowsの場合。他は知らん)
それをCRを改行として扱うテキストエディタとかに貼ると両方改行して6行になる
俺の使ってるメモ帳はCRとLFは改行として扱われず見えない文字になるが、バージョンによるのか

372 名前:デフォルトの名無しさん mailto:sage [2019/03/30(土) 22:50:12.86 ID:uS2atdcl.net]
こんなの見つけた
tooljp.com/windows/chigai/html/Windows/vbCrLf-vbLf-vbCr-vbnewline-chigai.html

373 名前:デフォルトの名無しさん mailto:sage [2019/03/30(土) 22:52:52.36 ID:uS2atdcl.net]
続き
ここに、こんなの書いてある

秀丸エディタでは、改行が chr[10]でもchar[13]+char[10]でも自動で判定して表示するようです。
一方でWindows標準のメモ帳では改行はchar[13]+char[10]固定であるため、linux などchr[13]を改行とした
テキストファイルを表示すると改行せずに表示されます。

374 名前:デフォルトの名無しさん mailto:sage [2019/03/30(土) 22:55:39.71 ID:uS2atdcl.net]
つまり、メモ帳は、CrLfセットでないとダメだって

375 名前:デフォルトの名無しさん mailto:sage [2019/03/30(土) 23:04:27.71 ID:glDBW/eM.net]
>>367
というかWindows標準がCRLF
秀丸やサクラエディタが融通を効かせてくれてるだけ

376 名前:デフォルトの名無しさん mailto:sage [2019/03/31(日) 01:25:13.65 ID:QUGB5Esi.net]
プログラミングやると文字コード鬱陶しいよな

377 名前:デフォルトの名無しさん mailto:sage [2019/03/31(日) 02:24:23.24 ID:DMnS82C2.net]
webの文字コードは更にキツイ
最近大分マシになったけど

378 名前:デフォルトの名無しさん [2019/03/31(日) 04:23:05.94 ID:8cbdf+T7.net]
秀丸エディタとか今でも使ってる人なんているの?
久しぶりに名前を聞いた

379 名前:デフォルトの名無しさん mailto:sage [2019/03/31(日) 07:02:58.77 ID:m7bBr8R/.net]
>>371
お前はなにを使ってるの?

380 名前:デフォルトの名無しさん [2019/03/31(日) 09:25:24.80 ID:rZDtkSri.net]
新バージョンの
禿丸ツルピカなら使ってる



381 名前:デフォルトの名無しさん mailto:sage [2019/03/31(日) 09:32:08.99 ID:mUt6la4P.net]
TeraPad でも、改行コードを指定できる

ただし、TeraPadは、新しめの文字が?? になってしまう

中国の地名の「深圳」とか

382 名前:デフォルトの名無しさん [2019/03/31(日) 09:43:08.67 ID:S96NH+nt.net]
>>372
VS

383 名前:デフォルトの名無しさん mailto:sage [2019/03/31(日) 11:13:47.65 ID:7pZaUVM7.net]
MacはCr、Unix/LinuxはLf、WinはCrLf

384 名前:デフォルトの名無しさん mailto:sage [2019/03/31(日) 14:47:15.91 ID:p4bbm5us.net]
>>359
元はテレタイプのコードだからね

テレタイプではCRでカーソルを行頭に復帰
LFでカーソルを行送りとなり合わせて改行になる

CRだけではカーソルが行頭に復帰するだけで行は変わらない
LFだけではカーソルが次の行に送られるだけで桁位置は変わらない
こういう仕様だった

385 名前:デフォルトの名無しさん mailto:sage [2019/03/31(日) 16:38:53.91 ID:7pZaUVM7.net]
文字コードといえばワード・パワポもエクセル連携の観点では曲者
段落区切りの改行がCR、段落内改行がVTになるからな
単純な文字列貼付でいけると思ってると見事にハマる

386 名前:デフォルトの名無しさん mailto:sage [2019/03/31(日) 16:59:27.49 ID:m7bBr8R/.net]
Windowsは、CrLfセットで改行なのに、>>340みたいになるっておかしいだろ

387 名前:デフォルトの名無しさん mailto:sage [2019/03/31(日) 17:05:24.30 ID:x94da/wE.net]
>>379
CrLfだからそうなる
Excelの改行とWindows標準改行の扱いの違い

388 名前:デフォルトの名無しさん mailto:sage [2019/03/31(日) 18:57:30.32 ID:2QHIj7Qu.net]
>>359
キャリッジリターン、ラインフィードの2つの単語を覚えておこう。
どういう意味かは自分で調べてね。

389 名前:デフォルトの名無しさん [2019/03/31(日) 19:02:18.98 .net]
>>336
今日までか
貰ってアプリは消した   

390 名前:デフォルトの名無しさん mailto:sage [2019/03/31(日) 22:08:25.87 ID:cn1K3c+R.net]
ラインフィード
→ラインがご飯を与える



391 名前:デフォルトの名無しさん mailto:sage [2019/04/01(月) 01:45:18.74 ID:nOieNnAu.net]
キャリッジ・リターン 復帰
ライン・フィード 改行
CR+LF 復改

392 名前:デフォルトの名無しさん mailto:sage [2019/04/01(月) 01:50:34.29 ID:9/xHbeRR.net]
知識自慢

393 名前:デフォルトの名無しさん mailto:sage [2019/04/01(月) 09:33:56.36 ID:MjMweJle.net]
>>385
昔はプリンタで普通に使ってたぞ

394 名前:デフォルトの名無しさん mailto:sage [2019/04/01(月) 09:34:13.23 ID:MjMweJle.net]
>>385
昔はプリンタで普通に使ってたぞ

395 名前:デフォルトの名無しさん mailto:sage [2019/04/01(月) 09:34:33.41 ID:MjMweJle.net]
>>385
昔はプリンタで普通に使ってたぞ

396 名前:デフォルトの名無しさん mailto:sage [2019/04/01(月) 10:54:00.54 ID:egjDjXMe.net]
爺さんの常識は今の非常識

397 名前:デフォルトの名無しさん mailto:sage [2019/04/01(月) 11:14:26.77 ID:kXJ+CJ6I.net]
よくこんな話題で何日も盛り上がれるな
マウント取るにしても内容の程度が低すぎるでしょ

398 名前:デフォルトの名無しさん mailto:sage [2019/04/01(月) 11:17:49.51 ID:9/xHbeRR.net]
別の話題

VBAのエディタしょぼくね?
VSの方がよっぽど開発効率がいい

399 名前:デフォルトの名無しさん mailto:sage [2019/04/01(月) 11:40:46.78 ID:kgDolq/Y.net]
>>391
そりゃ作られたの20年前でレガシーもいいとこだからな
だいぶ昔からdeprecatedフェーズだからどれだけ要望があろうと改善されることもない

400 名前:デフォルトの名無しさん mailto:sage [2019/04/01(月) 14:11:47.96 ID:9/xHbeRR.net]
>>392
Exce2010の時と比べても
VBAエディタな〜〜んも機能改善されてねー



401 名前:デフォルトの名無しさん mailto:sage [2019/04/01(月) 15:12:27.18 ID:no59bRT+.net]
>>393
そもそもレガシーでありMS的には使ってほしくない機能なんだから、
不便すぎてユーザーが減っていくことがまさに「改善」なんだよ
気に入らないのはわかるが古いものを新しくしていくっていうのはそういうもの

402 名前:デフォルトの名無しさん mailto:sage [2019/04/01(月) 16:18:15.03 ID:FTeB9oqU.net]
企業が年寄の使用を嫌うのと同じかw

403 名前:デフォルトの名無しさん mailto:sage [2019/04/01(月) 21:40:54.00 ID:gJhvzDut.net]
それでも利益的には無視できないだろう
もし切るならとっくに切ってる
別に移行するにも何にどう移行するのか?
lotusも無くなったからそんなに恐れる必要も無いけど
free系officeも敵ではないだろうし
狙いはcloud系か何かなんだろうけど
開発の人はどうにでもなるだろうけど
excelvbaは素人系だからなぁ

404 名前:デフォルトの名無しさん mailto:sage [2019/04/01(月) 21:53:42.68 ID:IAvZX1Rk.net]
古いExcelを令和対応させるVBA作ってください!!

405 名前:デフォルトの名無しさん mailto:sage [2019/04/01(月) 22:28:03.19 ID:StNYHPUb.net]
If Cells(1 ,1) > 43585 Then wstrGengo = "令和"

406 名前:デフォルトの名無しさん mailto:sage [2019/04/02(火) 00:18:55.85 ID:rWuIv4od.net]
>>397
マイクロソフトがパッチだすのまて

407 名前:デフォルトの名無しさん mailto:sage [2019/04/02(火) 00:31:35.68 ID:g8jutNiy.net]
まぁ日付形式で書いてりゃいずれ対応するべ

408 名前:デフォルトの名無しさん mailto:sage [2019/04/02(火) 02:17:49.89 ID:GCjhH3yn.net]
VBAで簡単な入金管理作った
経験あるんだけど
VBAでちょこちょこ
するだけでいい仕事って就けるもん?

409 名前:デフォルトの名無しさん mailto:sage [2019/04/02(火) 02:32:45.56 ID:CMqenrji.net]
>>401
面接でそういえばいい

410 名前:デフォルトの名無しさん mailto:sage [2019/04/02(火) 08:35:03.23 ID:5I+lN+ly.net]
VBA 求人 東京
で調べたら月給50万とか80万とか
出てくるけどほんまなん?



411 名前:デフォルトの名無しさん mailto:sage [2019/04/02(火) 09:24:24.65 ID:g8jutNiy.net]
>>403
本当だけど
それガッツリとしたVBAエンジニアだよ
多分gitかTortoiseSVN辺り使うはず

【フリーランス】Excel/Access-VBA | 開発知見がある方!システムサポート業務
仕事内容
基幹システム/部門個別システム支援(運用、問合せ、J-SOX対応等)
部門内インフラ管理支援、エンドユーザIT支援、業務用ツール開発
給与

412 名前:デフォルトの名無しさん mailto:sage [2019/04/02(火) 21:44:59.43 ID:ZGIlr/GY.net]
>>403
別にVBAでも普通ある。
けど、面接して採用される奴は他にもスキルがあるか、それなりに出来る奴だろうな。

gitや、SVNについては必ずしもってところだろう。
もっとも、VBAのコードを管理するためにgitやSVN用のツールをVBAで組む程度はやれる或いはやってるだろう。

413 名前:デフォルトの名無しさん mailto:sage [2019/04/02(火) 23:38:38.44 ID:z8xG+23/.net]
1989/1/7 → 昭和64年1月7日
1989/1/8 → 平成1年1月8日
2099/1/1 → 平成111年1月1日
3000/1/1 → 平成1012年1月1日

試してみたらこうなった。
令和がまだ入ってないのは分かるが、
1000年後も普通に平成だとは思わなかったわ。

414 名前:デフォルトの名無しさん mailto:sage [2019/04/02(火) 23:44:03.27 ID:dGnjjG+S.net]
>>406
どうせならOSとEXCELのバージョンかけや

415 名前:デフォルトの名無しさん [2019/04/02(火) 23:45:56.37 ID:PBWFMMP7.net]
>>406
https://dotup.org/uploda/dotup.org1812346.jpg

416 名前:デフォルトの名無しさん mailto:sage [2019/04/02(火) 23:47:51.13 ID:z8xG+23/.net]
>>407
どちらか片方ならわかるが、何で両方?
組み合わせで変わるもんじゃないだろう。

417 名前:デフォルトの名無しさん mailto:sage [2019/04/03(水) 01:37:48.37 ID:HquWe5hb.net]
>>409
MSはそんな思い込みが通用するほど甘い相手じゃない

418 名前:デフォルトの名無しさん mailto:sage [2019/04/03(水) 02:13:34.41 ID:T6JhjkrS.net]
>>406
江戸もでないし

419 名前:デフォルトの名無しさん mailto:sage [2019/04/03(水) 03:03:58.76 ID:SETc7Ceb.net]
こういう思い込みをする奴が新年号対応に莫大な人工が掛かる糞システムを作るのである

420 名前:デフォルトの名無しさん mailto:sage [2019/04/03(水) 03:14:27.06 ID:HquWe5hb.net]
>>411
シリアル値は1900年から
明治までしか対応できない



421 名前:デフォルトの名無しさん mailto:sage [2019/04/03(水) 07:43:03.53 ID:4XO/CSdW.net]
Windows 10・WSL・Ubuntu 16.04 の設定ファイルでは、

+:2:1990/01/01:+*:平成:%EC%Ey年
+:1:1989/01/08:1989/12/31:平成:%EC元年

+:2:1927/01/01:1989/01/07:昭和:%EC%Ey年
+:1:1926/12/25:1926/12/31:昭和:%EC元年

+:2:1913/01/01:1926/12/24:大正:%EC%Ey年
+:2:1912/07/30:1912/12/31:大正:%EC元年

+:6:1873/01/01:1912/07/29:明治:%EC%Ey年

+:1:0001/01/01:1872/12/31:西暦:%EC%Ey年
+:1:-0001/12/31:-*:紀元前:%EC%Ey年

422 名前:414 mailto:sage [2019/04/03(水) 07:55:00.58 ID:4XO/CSdW.net]
明治6年(1873)から正しい

それ以前は太陰太陽暦(旧暦)だから、西暦とは異なるから、日本の暦は使えない

423 名前:デフォルトの名無しさん mailto:sage [2019/04/03(水) 12:14:49.07 ID:RhgPGi2C.net]
Excel2013以降ならこれで行けると思う

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\Calendars\Japanese\Eras]
"2019 05 01"="令和_令_Reiwa_R"

424 名前:デフォルトの名無しさん mailto:sage [2019/04/03(水) 20:18:32.12 ID:XzL94EYi.net]
2013ってOSどこからサポートしてたっけ

425 名前:デフォルトの名無しさん mailto:sage [2019/04/03(水) 20:25:25.63 ID:LAo899n+.net]
そんなのググったらすぐ出るだろう…

426 名前:デフォルトの名無しさん [2019/04/04(木) 00:26:33.22 ID:2+ZabFqB.net]
新元号は「安平」であります。
https://dotup.org/uploda/dotup.org18123

427 名前:20.jpg []
[ここ壊れてます]

428 名前:デフォルトの名無しさん [2019/04/04(木) 02:37:49.53 ID:2+ZabFqB.net]



429 名前:デフォルトの名無しさん mailto:sage [2019/04/04(木) 09:42:49.96 ID:8+vU6A6d.net]
>>416
これは、Office各バージョンで共通で使えるしExcel・Word等でも使えるね
他のアプリでも使えるんじゃない

430 名前:デフォルトの名無しさん mailto:sage [2019/04/04(木) 10:15:48.02 ID:8+vU6A6d.net]
>>416
これは、Windowsのカレンダーに対して日本用の設定を追加してるだけだから
Windowsの標準コントロールのカレンダーを使用して正しくコーディングしていれば
この設定をするだけで対応できるだろ
これを「令和登録.reg」のファイルにして管理者モードで実行するだけだね
--下記--
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\Calendars\Japanese\Eras]
"2019 05 01"="令和_令_Reiwa_R"



431 名前:デフォルトの名無しさん [2019/04/04(木) 10:47:09.88 ID:2+ZabFqB.net]
VBAでfor nextで回しているときにworksheetfunction.vlookupを使っているのですが
値が存在しないときにエラーが出て止まってしまいます。
こんなとき存在しない時は処理を回避するにはどうしたらいいですか?
On error resume nextにすると、エラーのときにも処理をしてしまいます。

432 名前:デフォルトの名無しさん mailto:sage [2019/04/04(木) 10:56:05.80 ID:uGh4IPkF.net]
application.vlookup

433 名前:デフォルトの名無しさん mailto:sage [2019/04/04(木) 11:06:48.53 ID:8+vU6A6d.net]
>>423
On error resume next はエラーを無視して続ける
On error go to XXXX でえあらーが出たらそっち行け

434 名前:デフォルトの名無しさん [2019/04/04(木) 11:17:40.01 ID:2+ZabFqB.net]
>>425
vlookupで見つかったらA処理、見つからなかったらB処理、をそれぞれさせる場合
どうするの?

435 名前:デフォルトの名無しさん [2019/04/04(木) 11:18:13.34 ID:2+ZabFqB.net]
そっち行けのあと、ちゃんとfor nextループに復帰しないといけない。

436 名前:デフォルトの名無しさん mailto:sage [2019/04/04(木) 11:27:09.76 ID:uGh4IPkF.net]
値が存在するか確認してからvlookupでもOK

437 名前:デフォルトの名無しさん mailto:sage [2019/04/04(木) 12:16:12.36 ID:8+vU6A6d.net]
>>427
基本的にgo toの 行先はループ内だな
で、正常の場合はそのルーチン内で飛ばす、また共通で使用できる部分はそのまま使う
それぞれ複雑になる場合は、外部呼出しで処理

438 名前:デフォルトの名無しさん mailto:sage [2019/04/04(木) 12:40:19.97 ID:aPtbQ2yh.net]
簡易だけどこんな風でよろしいか。

On Error Resume Next
For i=0 To lngRW
varValue=WorksheetFunction.Vlookup(〜)
If Err.Number=(見つからない) Then
'B処理
Err.Clear
ElseIf Err.Number=0 Then
'A処理
Else
Debug.Print "想定外:" & vbCrLf & Err.Description
EndIf
Next i
On Error Goto 0

439 名前:デフォルトの名無しさん mailto:sage [2019/04/04(木) 13:14:42.92 ID:iClvVPMc.net]
こうじゃないの

On Error Goto err
For i=0 To lngRW
varValue=WorksheetFunction.Vlookup(〜)
'処理
err:
Next i

440 名前:デフォルトの名無しさん mailto:sage [2019/04/04(木) 13:23:37.46 ID:8+vU6A6d.net]
>>431
一般的に書くと以下だけど、処理は複雑なら外部ファンクションで

On Error Goto err
For i=0 To lngRW
varValue=WorksheetFunction.Vlookup(〜)
[正常処理]
Goto 共通
err:
[err処理]
共通:
[共通の処理]
Next i



441 名前:デフォルトの名無しさん mailto:sage [2019/04/04(木) 13:50:38.20 ID:iClvVPMc.net]
>>432
あぁそうか、その形だスマン

エラー番号を見たり外したりで分岐させる方法が合ったと思うけど、
あれってどうなのかな

442 名前:デフォルトの名無しさん mailto:sage [2019/04/04(木) 14:26:57.06 ID:omgcYFOR.net]
Dim Rc As Variant

For I = 1 To 10
Rc = Application.VLookup(〜)
If IsError(Rc) Then
  'B処理
  Debug.Print "Err"
Else
  'A処理
  Debug.Print Rc
End If
Next

443 名前:デフォルトの名無しさん mailto:sage [2019/04/04(木) 16:38:45.71 ID:wsHiflUt.net]
If Err = *** Then

444 名前:デフォルトの名無しさん mailto:sage [2019/04/04(木) 16:56:03.91 ID:iClvVPMc.net]
このエラーって何が返ってきてるの?
Rc = Application.VLookup(1, Range("a1:b2"), 2, 0)
Rcには「エラー2042」
variant/error
となっている
エラーオブジェクト?

445 名前:デフォルトの名無しさん mailto:sage [2019/04/04(木) 17:24:54.95 ID:w4m8dn6a.net]
Debug.Print WorksheetFunction.IsNA(Rc)

446 名前:デフォルトの名無しさん mailto:sage [2019/04/04(木) 17:32:46.09 ID:omgcYFOR.net]
>>436
VBA CVErr 関数
https://www.tipsfound.com/vba/05cverr

2042 #N/A

447 名前:デフォルトの名無しさん mailto:sage [2019/04/04(木) 18:04:33.36 ID:iClvVPMc.net]
>>437


>>438
errorってオブジェクト?
なんでsetせずに代入できるんだ?

448 名前:デフォルトの名無しさん mailto:sage [2019/04/04(木) 19:42:12.58 ID:l+wxMf4P.net]
on error使うのあまり良くない
vlookupの前にcountやfindで存在チェックするのをおすすめするよ
裏技的な方法だとAppllication.Vlooiup

449 名前:デフォルトの名無しさん mailto:sage [2019/04/04(木) 19:42:34.71 ID:l+wxMf4P.net]
Application.Vlookup

450 名前:デフォルトの名無しさん mailto:sage [2019/04/04(木) 19:50:28.21 ID:iClvVPMc.net]
それが彼の最後の言葉だった



451 名前:デフォルトの名無しさん mailto:sage [2019/04/05(金) 03:50:15.90 ID:+zVmy7gp.net]
>>439
宣言済みのグローバルオブジェクトだから

452 名前:デフォルトの名無しさん mailto:sage [2019/04/05(金) 08:49:34.62 ID:zlWiWORW.net]
>>443
ありがとう!そんなんあったのか

453 名前:デフォルトの名無しさん mailto:sage [2019/04/05(金) 09:38:24.06 ID:8QX00BOt.net]
なんでマクロを表から実行する機能がボタンしかないんですか!
ボタンだけ画像で気持ち悪い

454 名前:デフォルトの名無しさん mailto:sage [2019/04/05(金) 09:43:10.12 ID:zlWiWORW.net]
>>445
alt+f8

455 名前:デフォルトの名無しさん mailto:sage [2019/04/05(金) 10:33:41.98 ID:wkkyQZMO.net]
>>445
セルのクリックで選択が変わったイベントを取るとか
他にもできるけど、単に知らないだけだろ

456 名前:デフォルトの名無しさん mailto:sage [2019/04/05(金) 10:44:09.79 ID:wkkyQZMO.net]
>>442
悪い奴じゃなさそうだが、残念だったな
所詮、何でも道具なんだから目的に合わせて
臨機応変に対応しないとな

457 名前:デフォルトの名無しさん mailto:sage [2019/04/05(金) 10:53:42.85 ID:wkkyQZMO.net]
>>445
そういえば、聞き漏らしたけど
>ボタンだけ画像で気持ち悪い
これ意味が分からない
例えば表に更新ボタンがあるのが気持ち悪いか?

458 名前:デフォルトの名無しさん mailto:sage [2019/04/05(金) 11:15:00.27 ID:sYZm3T+e.net]
>>445
セル内に任意の Sub を走らせるコマンドを書きたいということかな?

459 名前:デフォルトの名無しさん mailto:sage [2019/04/05(金) 11:16:44.20 ID:zNcs0aE9.net]
ボタンを透明にして、セルをクリックしたように見せかければいい

460 名前:デフォルトの名無しさん mailto:sage [2019/04/05(金) 11:28:07.60 ID:sYZm3T+e.net]
>>451
それは見方によっては罠なのでは?



461 名前:デフォルトの名無しさん mailto:sage [2019/04/05(金) 11:31:39.64 ID:wkkyQZMO.net]
>>451
例えば以下でいい、透明なボタンなんてメンテナンスしにくい
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = "$A$1" Then
「セルA1を選択された時の処理」
End If
End Sub

462 名前:デフォルトの名無しさん mailto:sage [2019/04/05(金) 12:16:59.99 ID:VsjxKRtT.net]
>>445
何を言ってるんだ?
標準モジュールに以下を書いて、
セル内に=FuncNibai(2)と入れてみろ。

Public Function FuncNibai(lngNum As Long) As Long
FuncNibai=2*lngNum
End Function

463 名前:デフォルトの名無しさん mailto:sage [2019/04/05(金) 12:20:44.27 ID:sYZm3T+e.net]
>>454
それでは基本的にシートに対する副作用のない動作しかできないよ

464 名前:デフォルトの名無しさん mailto:sage [2019/04/05(金) 12:31:55.05 ID:VsjxKRtT.net]
>>455
ボタンから実行していないだろ。
表を変えたいというなら、入力したセルと無関係のセルの値を変更する処理も書ける。
そんなことする奴はおらんだろうが。

そもそも>>455がどうしたいのかが無いから、どうにもならん。
個人的には、リボンから実行するように作ることが多いけど。

465 名前:デフォルトの名無しさん mailto:sage [2019/04/05(金) 12:42:46.47 ID:wkkyQZMO.net]
>>456
落ち着けよ、445の釣りかもしれんし

466 名前:デフォルトの名無しさん mailto:sage [2019/04/05(金) 12:51:21.11 ID:wkkyQZMO.net]
>>456
基本的に、新規関数の定義だから
それ以外のことをするのは、混乱の元だよね

467 名前:デフォルトの名無しさん mailto:sage [2019/04/05(金) 13:41:00.30 ID:8QX00BOt.net]
イベントでマクロ起動できるようになりました。ありがとうございます!
ハイパーリンクのイベント使いました。

でも
イベントはシート単位でマクロ側で呼び出し元特定する仕組みで
間違えるの怖いしシート全体でマクロ走るし
ハイパーリンクは自分のセル位置変わっちゃうし
余計気持ち悪くなりました

ハイパーリンクに直接マクロ指定したりとか
もっとスパッと間違えない仕組みがないものでしょうか

468 名前:デフォルトの名無しさん mailto:sage [2019/04/05(金) 13:44:20.23 ID:zlWiWORW.net]
>>459
何がしたいのかもう少し具体的に言ってくれれば誰かがマクロ書くと思う
>シート全体でマクロ走るし
これも以下のような形で、特定のセルだけマクロが走るように制御することも可能

Private Sub Worksheet_Change(ByVal Target As Range)
行 = Target.Row
列 = Target.Column
If 行 < 4 And 行 > 2 And 列 = 2 Then
'処理
End If
End Sub

469 名前:デフォルトの名無しさん mailto:sage [2019/04/05(金) 13:58:27.50 ID:Rd0uwYXo.net]
>>459
スレタイ読めない馬鹿は死ね

470 名前:デフォルトの名無しさん mailto:sage [2019/04/05(金) 14:03:08.75 ID:wkkyQZMO.net]
>>459
そんなの選択したセルがハイパーリンクか判断すればいいだけ
要求を書かないから特定のセルで動くマクロを提示しただけ
その前に
>ボタンだけ画像で気持ち悪い
これ意味が分からない



471 名前:デフォルトの名無しさん mailto:sage [2019/04/05(金) 14:40:23.82 ID:8QX00BOt.net]
ボタンはクリックしただけで手が滑って意図せずずれちゃったり
配置した後ろにカーソルが隠れちゃったりするから
なんか異物感があります

472 名前:デフォルトの名無しさん mailto:sage [2019/04/05(金) 15:16:00.65 ID:wkkyQZMO.net]
>>463
そうか、理由はよくわからんがハイパーリンク化は
selection.hyperlinks.count
または
Range.hyperlinks.count
で取れるんでないの試してない

473 名前:デフォルトの名無しさん mailto:sage [2019/04/05(金) 16:03:40.10 ID:3Irv2J+y.net]
>>459
>ハイパーリンクに直接マクロ指定したりとか

ハイパーリンクのクリックでマクロを実行する
www.excel-wing.com/study/jitumu/941

474 名前:デフォルトの名無しさん mailto:sage [2019/04/05(金) 16:21:20.23 ID:wkkyQZMO.net]
>>465
俺もこのほうが良いと思う確認してないけど

475 名前:デフォルトの名無しさん mailto:sage [2019/04/05(金) 16:25:16.09 ID:wkkyQZMO.net]
まあ、どうやっても出来ないと書き込むんじゃなくて
何をどうしたいけど方法を聞けよ、できるだけ自分の求めることを
詳しく

476 名前:デフォルトの名無しさん mailto:sage [2019/04/05(金) 16:38:12.77 ID:33lL/zae.net]
スライサーのボタンクリックをイベントとしてマクロを実行させたいんだけど、
ググっても探し方が悪いのか、「スライサーを作成するVBA」ばかりになってしまう。

どこか事例を解説しているWebページを紹介してもらえませんか?

477 名前:デフォルトの名無しさん mailto:sage [2019/04/05(金) 16:41:10.23 ID:ANboNrW/.net]
>>468
スレタイ読めない馬鹿は死ね

478 名前:デフォルトの名無しさん mailto:sage [2019/04/05(金) 16:50:23.23 ID:n8EBNbBD.net]
ピボットテーブルのスライサーの事じゃないの?
別にスレチでもなんでもないと思うけど

479 名前:デフォルトの名無しさん mailto:sage [2019/04/05(金) 17:16:27.60 ID:33lL/zae.net]
>>470
はい、そうです。

480 名前:デフォルトの名無しさん mailto:sage [2019/04/05(金) 17:26:04.18 ID:n8EBNbBD.net]
>>471
スライサーにイベントハンドルかます事はできないっぽい
以下2つのどっちかになると思う

Private Sub Worksheet_PivotTableChangeSync(ByVal Target As PivotTable)
Debug.Print Cells(4, 1)
End Sub

Private Sub Worksheet_PivotTableUpdate(ByVal Target As PivotTable)
Debug.Print Cells(4, 1)
End Sub

https://docs.microsoft.com/ja-jp/office/vba/api/excel.worksheet.pivottablechangesync
https://docs.microsoft.com/ja-jp/office/vba/api/excel.worksheet.pivottableupdate



481 名前:デフォルトの名無しさん mailto:sage [2019/04/05(金) 17:41:45.84 ID:33lL/zae.net]
>>472
ありがとうございます。
ピボットテーブル本体まで戻れば
変更イベントハンドルがあるのですね。
この方向でやってみます。

482 名前:デフォルトの名無しさん mailto:sage [2019/04/05(金) 18:17:05.73 ID:sYZm3T+e.net]
>>456
えっ?
副作用のある操作もできるのか??

483 名前:デフォルトの名無しさん mailto:sage [2019/04/05(金) 20:04:21.22 ID:USfI2aKm.net]
>>459
特定のセルクリックしたらマクロ実行とか

484 名前:459 mailto:sage [2019/04/05(金) 20:52:19.13 ID:CiB89diH.net]
いろいろやってみましたが
表をいじって位置が変わっちゃうと動かなくなったり、
変なリンクできたりするので
ボタンでやります…

ボタンをセルに合わせて自動調整されるようにプロパティ設定したら
ちょっと気持ちがおちつきました

ありがとうございます

485 名前:デフォルトの名無しさん mailto:sage [2019/04/05(金) 21:55:09.13 ID:XQoFwJNv.net]
♪かけ違えたボタンがある〜

486 名前:デフォルトの名無しさん mailto:sage [2019/04/05(金) 22:38:48.78 ID:XcJw5BB8.net]
>>474

487 名前:デフォルトの名無しさん mailto:sage [2019/04/06(土) 02:33:50.43 ID:lkbCtinH.net]
主作用でなければ副作用だが

488 名前:デフォルトの名無しさん [2019/04/06(土) 05:07:20.11 ID:yAC/mUJI.net]
ヒポリットテーブルってややこしい。
理解するこつあはありますか?

489 名前:デフォルトの名無しさん mailto:sage [2019/04/06(土) 09:18:19.10 ID:9IkbKopt.net]
>>480
ピボットテーブルな
繰り返し使うしか無い
後は元データもちゃんとしたものじゃないとピボットがうまく機能しない

490 名前:デフォルトの名無しさん mailto:sage [2019/04/06(土) 09:43:33.17 ID:LrM+2CU8.net]
>>480
色々できて楽しいと思いながら
新しい使い方を検索しながら使いな



491 名前:デフォルトの名無しさん mailto:sage [2019/04/06(土) 11:28:05.41 ID:QwecXQyr.net]
>>454の関数で値を計算して返すついでにどこか別のセルの値を設定しようと
Range("A1") = 1
としたって通らないだろ
そんな制約があったんじゃ>>445に対する答えにはならんね

492 名前:デフォルトの名無しさん mailto:sage [2019/04/06(土) 12:56:33.17 ID:aPksILYp.net]
マイクに話しかけたら実行されるようにすりゃいいんじゃないの?

493 名前:デフォルトの名無しさん mailto:sage [2019/04/06(土) 13:12:45.38 ID:cYL1/vjQ.net]
>>480
いろいろやってみると面白いし、
元データをテーブルにして組み合わせると、
計算速度も速いような?

融通が利かない部分もあるけど。
4〜3月の月次推移グラフで、
ピボットテーブルには年度合計を出せるのに、
この合計もグラフに反映させる方法あるのか、ないのか・・・
日時時間フィルターのタイムラインは、使い勝手がイマイチ、
とか。

あと、縦横クロス集計のピボットテーブルを
一発でリスト表(3Dマップに使える)に変換する隠れ機能があったり。

494 名前:デフォルトの名無しさん mailto:sage [2019/04/06(土) 23:19:03.44 ID:+F6584OT.net]
まずスレタイぐらい理解できるようになろう

495 名前:デフォルトの名無しさん mailto:sage [2019/04/07(日) 11:38:35.77 ID:J7v3B2LO.net]
シート内にマクロを設定した
ボタンを1つと、複数の画像があります。

ボタンをクリックしたら以下コードを実行し画像の一括削除を行っています。
しかし、問題があってボタンまで消失してしまいます。

そこでボタンの場合には削除はしない
という風に制御を入れたいのですが、ボタンの名称はどうやって調べればよいでしょうか?


'シート無いの画像をすべて削除する。
For Each img In ActiveSheet.Shapes
img.Delete
Next

496 名前:デフォルトの名無しさん mailto:sage [2019/04/07(日) 11:59:22.40 ID:SzIL1mww.net]
>>487
ボタンに特定の名前を付けてそれをハードコーディングすりゃいいと思うがそれじゃ不満なのかな?

497 名前:デフォルトの名無しさん mailto:sage [2019/04/07(日) 12:06:51.57 ID:oR5kGK9/.net]
>>487
img.Nameで名前を調べることができます

If img.Name <> "ボタンの名称" Then
  img.Delete
End If

みたいに書けば、特定の画像の消去をスキップできます

498 名前:デフォルトの名無しさん mailto:sage [2019/04/07(日) 12:40:05.22 ID:z5f8NySY.net]
>>489
名前なんて変化するのでコーディングするのはない
プロパティで有るだろ、調べてないが常識的に

499 名前:デフォルトの名無しさん mailto:sage [2019/04/07(日) 13:13:42.16 ID:dLz2IshG.net]
削除対象の画像を予めShapeRangeにまとめるなり、削除対象の画像の名前をシートに書き出すなりしてボタンマクロで一括削除させる設計にする方が検索効率や保守効率が良いと思う
ボタン名やコントロール名でハードコーディングするのは下策
ボタンの数やコントロールの種類が増えたときにいちいち手直しする必要が出てくる

500 名前:デフォルトの名無しさん [2019/04/07(日) 13:22:52.48 ID:UhqEDEIh.net]
動的にコントロールを追加するプログラムを作ってないの?
毎回追加で書いてるの?
それは面倒で下衆だわ



501 名前:デフォルトの名無しさん mailto:sage [2019/04/07(日) 13:30:07.71 ID:HG+SSO0q.net]
>動的にコントロールを追加するプログラム
昔作ったわ
EXCELでこの設計は止めたほうが良い。エラー頻発する

502 名前:デフォルトの名無しさん mailto:sage [2019/04/07(日) 14:02:19.38 ID:lv61T0oy.net]
>>487
For Each work in Shapes
 If work.type = 消したいオブジェクトタイプ Then 消す
Next

503 名前:デフォルトの名無しさん mailto:sage [2019/04/07(日) 15:13:26.49 ID:zM3BxSpj.net]
>>474
>>478
>>483

スマンな。
>>456の時点では勘違いしてた。

でも、たぶん出来るだろうなと思ってやってみたら出来るな。
それどころか入力セルに対しても出来る。

504 名前:デフォルトの名無しさん mailto:sage [2019/04/07(日) 15:19:02.23 ID:1196mB+r.net]
>>487は差のマクロが登録されたあるひとつのボタンだけを対象に「消したくない」と言っているように思えるのだが

505 名前:デフォルトの名無しさん mailto:sage [2019/04/07(日) 15:26:28.77 ID:zM3BxSpj.net]
>>491
別にボタン名とかコントロール名でやっても良いと思うよ。
増えようが、名前付けル−ルがデタラメなんてこと無いだろう。
画像ならimgが先頭に付くとか、ボタンならbtnが付くとか、普通そうしてるはずだろ。

>>492
それは、この質問だけ見ただけじゃ何とも言えない。
消えなければ追加する等という作業は最初から必要無い。
動的に追加するような状況とも思えないな。


>>493
それはその組み方が良くないだけだろ。

506 名前:デフォルトの名無しさん mailto:sage [2019/04/07(日) 18:49:28.94 ID:wMtd4Rq1.net]
まあ、その時目の前の問題だけクリアーするのは筋が悪い
目的を汎用化し使い易くメンテナンスし易いように組むな普通

507 名前:デフォルトの名無しさん mailto:sage [2019/04/07(日) 19:51:51.79 ID:Eip3w86o.net]
VBAスレで何言ってんの
そういうことを言い出すとVBAなんか使うなという結論にしかならんよ

508 名前:デフォルトの名無しさん mailto:sage [2019/04/07(日) 19:54:51.59 ID:9t5fZjJB.net]
EXCEL前提ならそりゃVBAになる

509 名前:デフォルトの名無しさん mailto:sage [2019/04/07(日) 20:30:11.80 ID:J7v3B2LO.net]
>>488
ボタンに名前をつけるにはどうすればいいんですか?

510 名前:デフォルトの名無しさん mailto:sage [2019/04/07(日) 21:10:44.99 ID:dLz2IshG.net]
>>497
名前比較で実現出来るかどうかという実現可能性の話をしてるわけではない
あくまで効率性の話をしてるんだが
特定のボタンを消さないようにするという目的だけのためにShapesコレクションをなめてアイテムのNameプロパティを逐一調べるという処理は筋が悪い
ワークシート上に存在する画像や図形、テキストボックス、コントロール等の数だけ名前比較することになるからな
削除対象になる画像をワークシートに追加するタイミングでShapeRangeコレクションに入れ、ボタン押下でDeleteメソッドで一括削除というやり方の方が絶対に速い



511 名前:デフォルトの名無しさん mailto:sage [2019/04/07(日) 21:18:21.02 ID:lv61T0oy.net]
>>501
Nameプロパティ

512 名前:デフォルトの名無しさん [2019/04/07(日) 21:22:19.79 ID:6gqi5pp/.net]
一つも目的だけの為に作り込むのが良いのか汎用性を持たせて使い回せるようにした方が良いのかって事で俺は汎用性がある方が長持ちして良いと思う派

513 名前:デフォルトの名無しさん mailto:sage [2019/04/07(日) 21:27:32.10 ID:zM3BxSpj.net]
>>502
あのさあ、わざわざそんなことするほどの処理かね?
俺だったら名前ではやらんと思うけど、こんなのは何でも良い話だろ。

普通に考えて、ボタン1つに後は画像だけなんじゃね―の?
正直、こんなので効率も糞も無いと思うね。

514 名前:デフォルトの名無しさん mailto:sage [2019/04/07(日) 21:45:02.84 ID:SzIL1mww.net]
マクロに「Sub なんちゃら」って名前を付けるんだから、それを呼び出すボタンに固有の名前を付けるのは全く自然だ

515 名前:デフォルトの名無しさん mailto:sage [2019/04/07(日) 22:33:14.85 ID:dLz2IshG.net]
>>505
コレクションの総なめや文字列比較での処理分岐は処理速度の問題に直結するだろ
それにマクロで処理しなければならないくらい画像を張り付けてあるシートに対する操作なら尚更処理が重くなる可能性が高い
数百個くらい画像が貼ってあるかもしれないし

割と現実的な設計の話だと思うんだが、まぁ君が効率も糞もないと思うなら仕方ない

516 名前:デフォルトの名無しさん mailto:sage [2019/04/07(日) 22:37:25.36 ID:Dac9mVAO.net]
質問者そっちのけ。

517 名前:デフォルトの名無しさん mailto:sage [2019/04/07(日) 22:38:12.36 ID:AvqFg232.net]
>>502
> 削除対象になる画像をワークシートに追加するタイミングでShapeRangeコレクションに入れ
とか言うけど、その画像がプログラムで追加されるとは限らんよ
人が適当に描画した図形を単にクリアするボタンかも知れんし

518 名前:デフォルトの名無しさん mailto:sage [2019/04/07(日) 22:43:02.40 ID:dLz2IshG.net]
>>509
それならShapes.SelectallでShapeRangeコレクションに突っ込んで、マクロ呼び出し用のボタンだけShapeRangeから除外して一括削除だね
とにかくShapesの中でループを回す必要がない

519 名前:デフォルトの名無しさん mailto:sage [2019/04/07(日) 22:50:29.75 ID:IY2XTri8.net]
>>507
それは数百個貼るような状況の場合の話。
そういう場合なら、その時考える話だ。

例えば、それなりに組める奴ならScreenUpdatingなんかを使っても速度が速くなることは無いだろう。
俺の場合も当然そうだ。
だからと言って、普段そんなに速度を重視して組んでいる訳じゃ無い。
しかしだ、状況により速さが必要になったら当然それ用に変わるだろう。

いつも速度を重視して組んでいるならご苦労なこった。

520 名前:デフォルトの名無しさん mailto:sage [2019/04/07(日) 22:54:24.63 ID:AvqFg232.net]
>>510
> マクロ呼び出し用のボタンだけShapeRangeから除外して
どうやってやるつもり?



521 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 02:30:49.49 ID:OEfF6P+m.net]
オブジェクトを直接比較すれば済む話じゃね
なんでわざわざ.Name呼び出して文字列比較するのかわからん
オブジェクトの比較なら何千あっても大して遅くならんし
馬鹿ばっかかよ

522 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 02:33:33.22 ID:OEfF6P+m.net]
そもそもshaperangeコレクションにアイテムをremoveするメソッドがあれば済む話なのにな
やっぱVBAって糞だわ

523 名前:デフォルトの名無しさん [2019/04/08(月) 06:39:30.33 ID:2IBrjRoX.net]
やっと気付いた?

524 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 08:39:44.42 ID:HwCnDiL+.net]
20年進歩なければな

525 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 09:10:46.62 ID:5f7aEGaE.net]
>>503
ありがとう!

526 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 10:38:02.22 ID:20rc9alP.net]
>>513
オブジェクトを直接比較の何を比較するんだよ
全てのオブジェクトは代入で使ってるもの以外
違うんだけど

527 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 10:40:14.98 ID:qrhOu38P.net]
vbaは===がない上にisで比較できないパターンがあったはず
ユニークな名前で比較するやり方は正解

528 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 10:59:09.00 ID:f4XbMpJ6.net]
>>518
オブジェクトの参照を比較するに決まってんだろ素人か?
>>519
このユースケースで試してからほざけ

529 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 11:00:40.34 ID:20rc9alP.net]
>>519
名前なんて好きに変えられるだろ
そんなもんでユニークって言っても筋悪いって言われるんだよ

530 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 11:02:06.10 ID:20rc9alP.net]
>>520
素人でございます、具体的に提示してください



531 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 11:06:10.01 ID:r5MC5DWh.net]
うむ

532 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 11:28:59.16 ID:cNRL9eDF.net]
Application.Caller と比較するのかな?

533 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 11:34:02.89 ID:20rc9alP.net]
>>524
これは、プロフェッショナルな>>520 様が明快なお答えを出してくれるので
黙っておけよ

534 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 11:44:28.64 ID:f4XbMpJ6.net]
ObjPtr、ポインタ、参照渡しあたりでググれカス
煽りが下手すぎて説明する気にもならん

535 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 11:44:45.29 ID:qrhOu38P.net]
>>487
Sub foo()
For Each img In ActiveSheet.Shapes
If img.Type <> 8 Then
img.Delete
End If
Next
End Sub

ここ数日見てなかったけど何やってるんだお前ら
プロパティ比較すればいいだけだろう、一体何日かかってるんだ
https://i.imgur.com/B5lcGn9.png

>>520
無能の頂天っすね

536 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 11:45:39.84 ID:20rc9alP.net]
>>526
具体的に提示できないのですか(笑)
必死で

537 名前:ググったか(笑) []
[ここ壊れてます]

538 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 11:49:55.04 ID:f4XbMpJ6.net]
>>528
捨て台詞も下手くそだな

539 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 11:51:20.33 ID:qrhOu38P.net]
>>528-529
俺から見ればお前ら両方雑魚やぞ

540 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 11:54:16.26 ID:f4XbMpJ6.net]
>>530
>>494 で示されてることをかなり遅れてドヤ顔で書き込んだ奴がいるらしい
無能かな?



541 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 11:56:32.80 ID:20rc9alP.net]
>>530
ボタンはフォームコントロールとActiveXコントロールがあるけど
大丈夫か? 酒飲みながら茶化してるんですまんな

542 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 11:57:35.69 ID:qrhOu38P.net]
>>531
終わってんのかよwww知るかwwwwじゃあ何の話してるんだよwwww

543 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 11:58:24.09 ID:20rc9alP.net]
>>529
でも、お前(笑)

544 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 12:01:13.75 ID:20rc9alP.net]
>>533
茶飲み話に決まってるだろ・・酒か・・

545 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 12:04:25.33 ID:cNRL9eDF.net]
ObjPtrだろうがなんだろうが「消しちゃいけないこのオブジェクト」を最初にどうやって指定するのかと

546 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 12:04:58.54 ID:f4XbMpJ6.net]
酒飲んでるから!本気じゃないから!
はいノーダメ!

思考がテンプレすぎる

547 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 12:07:53.61 ID:20rc9alP.net]
>>537
いやいや、具体的にかけない君が何言っても
笑い話

548 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 12:24:06.89 ID:KL9iMO+X.net]
>>526
そこじゃないと思うぞw
比較するためにはボタンをオブジェクトとして取得しなきゃならん。

どうやって取得する?

>>527
俺もこのやり方をするだろうね。
でも名前でも全く問題無いと思うぞ。

549 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 12:35:47.16 ID:20rc9alP.net]
>>537
結局、ググってもそんなコード内から泣いてるのか?
思いつきで、引きこもりのカスが書き込むよなこのスレも

550 名前:480 [2019/04/08(月) 13:06:22.74 ID:cVIHdDyE.net]
>>481
名前などどうでもいいではないか。
https://pds.exblog.jp/pds/1/200808/06/80/b0003180_19511656.jpg



551 名前:480 [2019/04/08(月) 13:11:52.02 ID:cVIHdDyE.net]
>>481
>>482
>>485

理解するコツを聞いているのに
いろいろ使ってみろ、みたいな回答はおかしくないか?

そんなこと承知の上で、理解するコツ、つまり心がけることやこんなことに注目したら理解がスイスイスーダラダッタスラスラスイスイスイっとできるかを聞いているのですが。

552 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 13:17:44.71 ID:20rc9alP.net]
>>537
まあ、引きこもりのカスだからノーダメ・・全ダメ(笑)

553 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 14:13:07.53 ID:qrhOu38P.net]
>>535
納得した
話題のループやグダグダ言う点は確かに酒の関の会話レベル
シラフで話してる奴はすげぇわ

>>539
thisかMe無いんだよな
callerでオブジェクトの取得するには、
名前を取得してforeachで名前と一致するオブジェクトを探して・・・
になると思う。超面倒くさい

>>542
ピボットに限らずEXCELは使わない機能が膨大にある
やりたいことを決めて、機能を使いこなすのが一番早い

554 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 14:58:52.26 ID:9sVYCwmO.net]
質問者はShapesコレクションのFor Eachで消えるボタンだって言ってますよ

555 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 16:07:16.94 ID:20rc9alP.net]
>>542
>理解するコツ
それこそ、マニュアルを読めよまたはググれよ
例えば以下でもいいけど、他にもいっぱいある
https://www.becoolusers.com/excel/pivottable.html
だけど、頭の構造によって読んでも分かんない奴も多いからな
必要な時に使うんじゃわからんバカには無理って言ってるんだよ
普段から使えよ

556 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 16:21:30.00 ID:20rc9alP.net]
>>544
お前「caller」の意味わかって書いてる?
今回の場合に使うべきかもわからんのか?

557 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 16:32:09.53 ID:qrhOu38P.net]
>>547
そう真剣になるなよ、本題についてはもうとっくに>>494で終わってる

で、
>ボタンをオブジェクトとして取得
これについて俺も知りたい
callerは他言語で言うthisみたいなもんで、通常はオブジェクトで飛んでくる。もうちょい正確に言うとオブジェクトの参照だな
これがオブジェクトで飛んでこないからめちゃくちゃ使い勝手が悪い
オブジェクトで取得する楽な方法あるの?

558 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 16:59:10.82 ID:eHXY0QFN.net]
お前らもしかしてわざと無能演じてんの?
だったらすげえや全然気づかなかった

set b = ActiveSeet.Shapes(Application.Caller)
For Each x in ActiveSeet.Shapes
If Not x Is b Then x.Delete
Next

559 名前:デフォルトの名無しさん [2019/04/08(月) 17:02:54.81 ID:cVIHdDyE.net]
>>546
「いろいろ使ってみろ」とか「マニュアル読め」じゃないんだよ。
自分の言葉で説明してほしいということ。

具体的にはこれはデータベースを扱っているのだから
「フィールド」とか「グループ化」とか「集計」とかそういう具体的な用語を使ってだ。

560 名前:デフォルトの名無しさん [2019/04/08(月) 17:08:22.50 ID:9eoJzmPe.net]
VBAの特徴
内部抗争が酷いが外敵には一致団結して退治する



561 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 17:08:40.67 ID:lpvwS4NY.net]
>>550
それこそスレチだわ 初心者質問スレでも池よ

562 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 17:12:22.10 ID:qrhOu38P.net]
>>551
仲良く喧嘩してるんだよwwww

563 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 17:15:00.42 ID:lpvwS4NY.net]
>>549
確認してないが、それ複数ボタンで動くか?
フォームコントロールとActiveXコントロール有るけど

564 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 17:20:52.07 ID:ccKDHzfP.net]
>>542
他人に期待しすぎ。
それが出来たら今頃は、サイト立ち上げたり、本出したり、どこかで講師やっとるがな。

MSからも含め、VBAよりもピボットテーブルの情報は少ないし、
パーツ、パーツで区切れるVBAよりも、
広範囲で漠然とした「自分のやりたいこと」に使えるかどうか、
試行してみないとなんとも言えない。

565 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 17:26:33.08 ID:eHXY0QFN.net]
>>554
押されたボタン以外は消える
ボタン1つと画像複数っていう質問なので削除ボタン以外のShapeを一括削除する仕様だと勝手に読み取った
少なくともNameで比較はありえねーよカスというサンプル

566 名前:デフォルトの名無しさん [2019/04/08(月) 17:28:02.25 ID:cVIHdDyE.net]
こんなとき図星の決まり文句言わなきゃなんないのかぁ。
「 み ん な 理 解 で き て い な い 。」

理解できてる人なら竹を割ったようにスッキリと解説できるはず。
使いまくれとか、サイト見ろとか、試行してみないとなんとも言えないとか、全部言ってる人がピポットテーブルの本質を理解できていない決定的な証拠じゃないか。

567 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 17:39:46.71 ID:qrhOu38P.net]
>>557
当たってるよ。理解する必要ないからね
ピボットで作るデータの9割ぐらいは基本機能で瞬殺だから「使って覚えろ」としか言えない
複雑な事をしたければ作業列でパーっと作った方が早い、深く理解して得るものが少なすぎる

そもそも大事なことは目標の設定の仕方だから、このスレでどうこう言えない

568 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 17:52:36.06 ID:TKIMwKN2.net]
>>549
ShapeRangeコレクションにRemoveメソッドがない以上これが最適解だな

569 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 19:14:24.14 ID:P0CHcdLi.net]
>>556
なんでName で比較しないの?

570 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 19:33:54.35 ID:V7WRm0mr.net]
foreach列挙中に対象コレクションから要素消すなよ



571 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 20:31:30.66 ID:r03ED/xX.net]
VBAの演算子で一方だけ評価するのってありますか
i < 100 OR data[i] = x みたいに境界超えてないか先にチェックしたい

572 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 20:33:46.80 ID:r03ED/xX.net]
i < 100 AND data[i] = x
逆でし

573 名前: []
[ここ壊れてます]

574 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 20:45:56.01 ID:lSCOP8uB.net]
>>562-563
> VBAの演算子で一方だけ評価するのってありますか
ない
If i < 100 Then If data(i) = x Then ...
ってやるしかない

575 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 21:11:16.19 ID:KL9iMO+X.net]
>>549
???
それって、固定の名前でやるのに比べてどの程度メリットが有るの?

固定の名前でやる方がまだましだと思うんだが。

576 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 21:11:26.99 ID:AlMdksUV.net]
>>560
文字列型プロパティの比較判定は重い処理だし、オブジェクト命名の運用に処理結果が依存してしまう
組み込みの列挙定数やオブジェクトポインタで比較判定した方が安全なのは事実

577 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 21:13:41.55 ID:ARCkkcA0.net]
・プログラムとして危険
vs
・vbaだしどうでも良くね

ファイッ

578 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 21:15:36.62 ID:KL9iMO+X.net]
>>566
ほう。
画像が100個あった場合、
文字列で比較と比べてどれくらい速くなるの?

まったくアホらしいと思うんだが。

579 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 21:40:37.98 ID:besmAe1s.net]
なんでわざわざ名前で比較したがるの?

580 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 21:48:14.01 ID:r03ED/xX.net]
>>564
ありがとうございます

発狂する



581 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 21:48:31.68 ID:besmAe1s.net]
ぶっちゃけ1000回比較しても体感できる差は無いけど
ならどちらがいいかは完全にセンスの問題になるわけで

オブジェクトを比較したい場面でオブジェクトそのものを比較できるのにわざわざ名前みながら比べるとか

頭の中どうなってるの

582 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 22:07:24.49 ID:4iOzxu9L.net]
>>569
>>571
別に、名前で比較したいわけじゃ無い。
俺は最初から、こんなのどれでやっても良いだろ派だ。

最初からパフォ−マンスに大きな差が出ないと思ってたし、センスの問題はかなり気にする方だが、今回の問題ではどれでやってもセンスが悪いとも思わない。

583 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 22:17:03.71 ID:besmAe1s.net]
>>572
Is知らなかったからって取り繕わなくてもいいよ

584 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 22:26:49.07 ID:4iOzxu9L.net]
>>573
ハァ?
そんな初心者のわけねえだろ。

それに、
>>549って俺に言わせると名前でやってることになるんだがw

>>539で、「どうやって取得する?」って書いたのは、結局名前で取得することになるんじゃね?って意味で、名前でってのはApplication.Callerみたいに名前を取得したら結局同じじゃね?って意味なんだがw

585 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 22:36:44.56 ID:lpvwS4NY.net]
>>573
だから、それは対象のボタンオブジェクトが分かってる場合だろ
最初のお題と違ってボタンがいくつあるかも分からん条件で効率よくってはなし
俺はNameプロパティは変更出来るだろ
だからTypeプロパティだろって言っているだけ

586 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 23:06:03.11 ID:AlMdksUV.net]
質問者そっちのけ

587 名前:デフォルトの名無しさん mailto:sage [2019/04/09(火) 00:18:47.52 ID:8HUOoxmg.net]
>>549はデバッグ時に疲れからかモジュールにカーソルをあわせてF5を押してしまう

588 名前:デフォルトの名無しさん mailto:sage [2019/04/09(火) 00:44:23.79 ID:cuTyECFJ.net]
この中で一番重いのはShapes.Delete
それ以外をどんだけ工夫しても、逆にどんなタコなコーディングしても、体感できる差は出ないから

589 名前:デフォルトの名無しさん [2019/04/09(火) 01:51:44.81 ID:flshAmjZ.net]
【12日まで】500円を貰える春のばらまきキャンペーン開催中です 
     
@ スマホのApp Storeから「プリン(pring)」をインストールする  
A 会員登録を済ませる     
B 下図の通りに進む  
https://pbs.twimg.com/media/D3pRtQiUwAQLMUR.jpg    
C コードを登録 [5gAYSz]  

これで五百円を貰えます  
スマホでセブンATMからお金を下ろせたり(キャッシュカード不要)便利なアプリですのでよろし

590 名前:ければご利用下さい []
[ここ壊れてます]



591 名前:デフォルトの名無しさん mailto:sage [2019/04/09(火) 06:47:19.14 ID:WguqqX2K.net]
>>576
>>488-489で解決してるからいいんじゃん
あとはよくあるチンケな知識でのマウント合戦だからスルーでオケ

592 名前:デフォルトの名無しさん mailto:sage [2019/04/09(火) 08:39:46.28 ID:mg+oftxD.net]
マウントやめたら色々な方法見れて役に立つんだけどな
何故一番になりたがるのだろう

593 名前:デフォルトの名無しさん [2019/04/09(火) 08:43:42.22 ID:sTjNwrNP.net]
そうさぼくらは世界にひとつだけの花

594 名前:デフォルトの名無しさん [2019/04/09(火) 08:45:37.14 ID:sTjNwrNP.net]
小さい花や大きな花
ひとつとして同じものはないから
No1にならなくてもいい
もともと特別なonly one

595 名前:デフォルトの名無しさん mailto:sage [2019/04/09(火) 11:49:39.06 ID:4ZugEZRH.net]
まあ、なんだな久しぶりに実際に使ってみた
ルーチンの仕様
1.フォームコントロールとActiveXコントロールで作成したShapeオブジェクトは全て残す
2.それ以外のShapeオブジェクトは全て消す
3.対象ShapeオブジェクトはActiveSheetのみ
3.フォームコントロールとActiveXコントロールどちらでも動作する

Public Sub コントロール以外のイメージ削除()
Dim shape1 As Shape
For Each shape1 In ActiveSheet.Shapes
'MsgBox (shape1.Name & ":" & shape1.Type) 'これは確認用です・・・コメントアウト
If shape1.Type <> msoOLEControlObject And shape1.Type <> msoFormControl Then
shape1.Delete
End If
Next
End Sub

実際に作成してみて感じたこと
Nameプロパティは全て違うものが振られていく・・追番が付く
フォームコント―ロールを使ってる人がやっぱいるんだ・・俺はActiveXコントロールしか
普段は使わない

596 名前:デフォルトの名無しさん mailto:sage [2019/04/09(火) 13:45:14.72 ID:4ZugEZRH.net]
追記しておくけど
目的・仕様をハッキリさせなきゃどんなルーチンも価値評価が難しいな
定義済み定数は定義名を使えよ普通に、ウォッチ式で確認できるから
>For Each x in ActiveSeet.Shapes
誤記スンナ ×ActiveSeet ○ActiveSheet

597 名前:デフォルトの名無しさん mailto:sage [2019/04/09(火) 16:00:23.87 ID:v/sKiq9O.net]
>>480
俺がどうしてもexcel捨てられない理由が唯一
ピボットテーブルがあることなんだけどな
(その他のオフィス製品にも近ごろは
載っているようだが
VBAからの操作に慣れきってると
なかなか乗り換えきれない)

手放せなくなるまで使ってみてください

598 名前:デフォルトの名無しさん mailto:sage [2019/04/09(火) 22:54:10.35 ID:SAQnN0sI.net]
>>569
hashCodeがないから

599 名前:デフォルトの名無しさん mailto:sage [2019/04/10(水) 10:58:53.58 ID:6J3r6J/I.net]
全部プロシージャで集計と報告系のマクロ書いてるけどグラフ出力とか一部は指定サイトの結果取得とか機能増えすぎて9モジュール1800行とかになってる
なんちゃってプログラマの俺にはもうお辛い…

600 名前:デフォルトの名無しさん mailto:sage [2019/04/10(水) 11:28:22.21 ID:UESsnIOi.net]
動きゃいいよ
要件がリッチになりすぎたなら、それはもう技術的に何とかしようとするより外部のSaaSを導入することを検討すべき



601 名前:デフォルトの名無しさん mailto:sage [2019/04/10(水) 11:37:22.82 ID:Y1e0LUUu.net]
>>588
スマンが君の書いてる機能はマクロを使わずにできるものだが
>集計と報告系のマクロ書いてるけどグラフ出力とか一部は指定サイトの結果取得
集計と報告系・・・当然簡単だろ、場合によってはワードも利用する
>グラフ出力
ピボット使えよ、何が不足してるんだ?
>一部は指定サイトの結果取得
こんなのクエーリーの標準機で、起動時に読み込むとか、一定時間おきに読み込めよ

面白がってVBAにしないで、標準の機能で出来ることはExcel様に任せるよ

602 名前:デフォルトの名無しさん mailto:sage [2019/04/10(水) 12:02:10.37 ID:P1T0QVnr.net]
そこまで作り込む能力があるなら素直にPS, Python, Ruby, node.jsあたり学んだほうが幸せになれるぞ

603 名前:デフォルトの名無しさん mailto:sage [2019/04/10(水) 12:06:33.25 ID:UESsnIOi.net]
SIerすらメンテできないようなものを作ると後々自分の首を締めることになるよ
ずっとお守りに時間を奪われて出世は閉ざされ、そのうちシステム刷新でクビよ

604 名前:デフォルトの名無しさん mailto:sage [2019/04/10(水) 12:13:08.23 ID:Y1e0LUUu.net]
ってか、Excelの標準機能も満足に使えないのに無理やりVBAを使うのは
やめた方が良い、標準機のでできることはコードにしないな

605 名前:デフォルトの名無しさん mailto:sage [2019/04/10(水) 12:26:08.65 ID:HiznTzOg.net]
>>588
別に多くも無いだろ。
普通の量だよ。

606 名前:デフォルトの名無しさん mailto:sage [2019/04/10(水) 12:36:37.12 ID:UESsnIOi.net]
規模的にスケールするような作り方を理解した上でなら全然大した量ではないけど、
なんちゃってプログラマのアドホックなコーディングはだいたい1000行を超えたあたりで限界が来る
俺は絶対お守りしたくない

607 名前:デフォルトの名無しさん mailto:sage [2019/04/10(水) 12:43:15.27 ID:HiznTzOg.net]
>>595
そういうののお守りもしたことあるよ。
いやー大変だった。

基本、デバック実行で、何の処理をしているのかを類推することになる。

608 名前:デフォルトの名無しさん mailto:sage [2019/04/10(水) 12:54:25.06 ID:Y1e0LUUu.net]
>>596
それ、楽しいだろ?

609 名前:デフォルトの名無しさん mailto:sage [2019/04/10(水) 13:43:17.52 ID:Fi06WKE0.net]
>>593
そうなのか?
自分はほぼOffice共有マクロでやっていてExcel固有の機能とかは最低限しか使ってないな

610 名前:デフォルトの名無しさん [2019/04/10(水) 13:45:51.76 ID:ZITKsaEc.net]
>>592
開発者ならそうだろうけど
開発者じゃなくて業務をしてるだけ
みたいな人がついでに使うのがexcelvbaって感じだから
その人が首になる事はないんじゃないかなぁ?
それにそんな本格的なシステムを組むほど予算が無い
みたいな会社規模だとどのみちどうしようもないし
そういう界隈用って有る様で無いし
表計算
という点では予想外の使われ方だとは思うけど
なんかそういう小零細向けのアプリが有った気がしたけど



611 名前:デフォルトの名無しさん mailto:sage [2019/04/10(水) 13:54:38.83 ID:Y1e0LUUu.net]
>>598
それが、組織内での共通認識ならいいんでないの
マクロは俺は基本的に避けるが、好みだよ
でも、「Excel固有の機能とかは最低限」じゃあExcel使う意味あるの?

612 名前:デフォルトの名無しさん mailto:sage [2019/04/10(水) 14:02:44.70 ID:Y1e0LUUu.net]
まあ、勘違いするバカ多いんだよな
プログラムは自分で作ってるとか、俺が考えたとか(笑)

613 名前:デフォルトの名無しさん mailto:sage [2019/04/10(水) 14:16:50.81 ID:sSiaigIF.net]
俺が育てた AA略

614 名前:デフォルトの名無しさん mailto:sage [2019/04/10(水) 16:17:57.40 ID:Fi06WKE0.net]
>>600
ExcelはUIとしては優れていると思うよ。
操作するユーザーとのデータのやりとりとかグラフ出力とかね。
でもSQLでやるようなクエリーはもちろん不向きだし、途中段階のデータ加工処理にも不向きだと思うんだがね。

615 名前:デフォルトの名無しさん mailto:sage [2019/04/10(水) 16:30:55.55 ID:Y1e0LUUu.net]
>>603
でも、そんなの君の好みだろ
不向き気なら使う必要ないな
ってか使えるとこだけうまく使うんだろ
なのに文句だけいゆうのな

616 名前:デフォルトの名無しさん mailto:sage [2019/04/10(水) 16:34:40.21 ID:Y1e0LUUu.net]
まあ、何も使いこなせない奴って文句しかないんだよな

617 名前:デフォルトの名無しさん mailto:sage [2019/04/10(水) 16:43:58.33 ID:Y1e0LUUu.net]
>>603
まぬけは返事も出来んか?

618 名前:デフォルトの名無しさん mailto:sage [2019/04/10(水) 18:36:25.41 ID:Fi06WKE0.net]
>>604
文句なんか言ってないだろ?単に不向きなことはExcelにやらせてないというだけのことじゃないか
そもそも>>593がそっちの趣味主観から始まっているわけだしな

619 名前:デフォルトの名無しさん mailto:sage [2019/04/10(水) 18:38:22.55 ID:Fi06WKE0.net]
>>606
そっちこそ俺の書いた

「SQLでやるようなクエリーはもちろん不向きだし、途中段階のデータ加工処理にも不向きだと思う」

に具体的な反論があるなら言ってみてはどうなのか

620 名前:デフォルトの名無しさん mailto:sage [2019/04/10(水) 20:18:31.42 ID:+T6khn6s.net]
>>608
PowerPivotとPowerQuery使えば楽勝だぞ



621 名前:デフォルトの名無しさん mailto:sage [2019/04/10(水) 22:29:11.86 ID:Y1e0LUUu.net]
>>608
>「SQLでやるようなクエリーはもちろん不向きだし、途中段階のデータ加工処理にも不向きだと思う」
>に具体的な反論
お前は不向きの内容も具体的に書き込んでないのにどのようなアドバイスが欲しいのかな?
処理速度かな?

622 名前:デフォルトの名無しさん mailto:sage [2019/04/11(木) 00:47:10.88 ID:tqqNlMCs.net]
問題点がなにかも自覚しないから不満なだけで止まるんだよな
で、自分ではなくツールのせいにする楽なこった

623 名前:デフォルトの名無しさん mailto:sage [2019/04/11(木) 00:55:46.53 ID:7m5ZQ9KZ.net]
老害的な様相を呈してる

624 名前:デフォルトの名無しさん mailto:sage [2019/04/11(木) 12:26:22.18 ID:flnPu98l.net]
>>610
言いたかないが、それはレベルが低いだろ。
普通に考えれば分かることだ。

625 名前:デフォルトの名無しさん mailto:sage [2019/04/11(木) 15:17:56.46 ID:t6ZqSbU2.net]
>>603
>でもSQLでやるようなクエリーはもちろん不向きだし、途中段階のデータ加工処理にも不向きだと思うんだがね。

工夫次第で普通にできる。別に不向きじゃないと思う
そういうのはAccessのほうが向いてると言われればその通りだと思うが

626 名前:デフォルトの名無しさん mailto:sage [2019/04/11(木) 17:36:19.55 ID:PzEny+LO.net]
また不毛なマウントの取り合いしてる…

627 名前:デフォルトの名無しさん mailto:sage [2019/04/11(木) 18:18:36.48 ID:ekNCzMbf.net]
不毛で悪いか

628 名前:デフォルトの名無しさん mailto:sage [2019/04/11(木) 18:23:33.78 ID:e8i1eyfO.net]
また髪…

629 名前:デフォルトの名無しさん mailto:sage [2019/04/11(木) 18:50:46.18 ID:Vn+FQLol.net]
やめろ

630 名前:デフォルトの名無しさん [2019/04/11(木) 20:16:57.24 ID:v9KwxSkL.net]
同時接続数の超えられない壁



631 名前:デフォルトの名無しさん mailto:sage [2019/04/11(木) 20:48:03.35 ID:flnPu98l.net]
>>614
元々のVBAを使わずにExcelの機能を使うっていう話の観点で言えば、データが多くなるとExcel関数ではどうにもならないくらい遅くなるということがある。

銀行のデータ整合性チェックをしたことが有るんだが、10万以上のデータでSUMPRODUCTとか全くのアホなことやってたな。
その時はSQLじゃ無いけどVBAで組んだら一瞬になったけど。

今の仕事でも50カラムぐらいで40万件ぐらいのレコードをExcelに吐き出してるのを扱ってるがVBA使わずに関数とか正気の沙汰とは思えない。

632 名前:デフォルトの名無しさん mailto:sage [2019/04/11(木) 21:06:30.96 ID:JHOkJdt/.net]
10万くらいなら関数でも楽勝だろ
自動計算切れば普通に動く

633 名前:デフォルトの名無しさん mailto:sage [2019/04/11(木) 21:12:19.70 ID:2g6t5Llw.net]
数値だけなら楽勝だけど文字列のfindとかは結構キツイ
>10万以上のデータでSUMPRODUCT
これ列全体指定してたら多分計算終わらん

634 名前:デフォルトの名無しさん mailto:sage [2019/04/11(木) 21:33:34.25 ID:7m5ZQ9KZ.net]
ワークシート関数は使い捨てならいいんだけど残して運用し続けるのはつらい

635 名前:デフォルトの名無しさん mailto:sage [2019/04/11(木) 22:23:07.59 ID:+qS75l5K.net]
データベース的に使ってるエクセルテーブルで関数従属関係をワークシート関数で実現するのやめてほしいよな

636 名前:デフォルトの名無しさん mailto:sage [2019/04/12(金) 01:26:49.44 ID:L59U/aC1.net]
Excelっていうか表計算ソフトは
ゼロから設計し直したほうが良いと思う

セルごとに個別の計算式が入っていて
どれか一つが間違っていても
簡単に気づくことが出来ないとか
一つのセルだけ修正し忘れとか
メンテナンス性が悪すぎる

637 名前:731 mailto:sage [2019/04/12(金) 01:40:03.71 ID:7vLuIMdD.net]
>>625
え?
少なくとも後者は教えてくれるぞ?

前者は数式表示モードにするか、横にformulatextで表示しとけば?

638 名前:デフォルトの名無しさん mailto:sage [2019/04/12(金) 05:49:04.40 ID:V1CbV9zt.net]
OpenTextFileとCreateTextFiledeのメソッドが返すTextStreamには双方でなにか違いがあるのでしょうか?
ファイルの書き出しにはTextStreamのWriteLineメソッドを利用しています。

FileSystemObjectを使ってテキストファイル(拡張子無し)を作成して、
書き込みを行う処理を実装したいのですが、
CreateTextFileを使うとError 5 となりファイルは作成されるのですが書き込みができないことがたまにあります。
発生頻度が少なすぎて原因を抑えられず、
自力ではここまでが限界のため、何か思い当たることがあればご意見を頂けますと助かります。


OpenTextFileのほうでは少なくとも確認できる限りではエラーが発生しませんでした。


CreateTextFile
https://docs.microsoft.com/en-us/office/vba/language/reference/user-interface-help/createtextfile-method
OpenTextFile
https://docs.microsoft.com/en-us/office/vba/language/reference/user-interface-help/opentextfile-method

639 名前:デフォルトの名無しさん mailto:sage [2019/04/12(金) 06:48:58.09 ID:jwc5+7Nd.net]
>>625
その意見を支持する

640 名前:デフォルトの名無しさん mailto:sage [2019/04/12(金) 08:12:24.74 ID:cAaoTUDS.net]
>>621
SUMPRODUCT知らないか、10万のデータでどういう使い方するのか想像出来ない奴は黙ってろ。



641 名前:デフォルトの名無しさん mailto:sage [2019/04/12(金) 08:24:36.34 ID:LhXUTlO1.net]
>>629
SUMPRODUCTは所詮O(N)だから実質的な計算量はたかが知れてる
遅けりゃSUMPRODUCT使わないで一時セル使った単純な式に展開してもいい

642 名前:デフォルトの名無しさん mailto:sage [2019/04/12(金) 08:49:24.60 ID:wLs4Sov9.net]
>所詮O(N)だから実質的な計算量はたかが知れてる
O(n2)以上だよ
めちゃくちゃ多い

643 名前:デフォルトの名無しさん mailto:sage [2019/04/12(金) 09:00:04.80 ID:xRzutCJ1.net]
>>631
O(N^2)となる根拠は?
実装がヘボいのかもしれないけど、仮に手計算でやったとしたら基本的に計算量は行数に比例するだろう
それなら一時セル使えば確実にO(N)で済むよ

644 名前:デフォルトの名無しさん mailto:sage [2019/04/12(金) 10:26:44.15 ID:39D1tbGN.net]
>>620
そりゃSUMPRODUCTとか使われたら話は違ってくるわな
>>630にあるように工夫すればいいってこと

645 名前:デフォルトの名無しさん mailto:sage [2019/04/12(金) 10:47:24.57 ID:cY6WK7UC.net]
絶対参照の範囲と相対参照の範囲をSUMOTODUCTする場合は平気でO(n^2)になるよ
Excelでシミュレーションとかしてるとよく出てくる

646 名前:デフォルトの名無しさん mailto:sage [2019/04/12(金) 11:44:00.15 ID:LhXUTlO1.net]
>>634
それこそ一時セル使えば済む話だろう

647 名前:デフォルトの名無しさん mailto:sage [2019/04/12(金) 11:48:22.60 ID:cY6WK7UC.net]
>>635
済まないんだよ
想像力足りてないぞ

648 名前:デフォルトの名無しさん mailto:sage [2019/04/12(金) 12:22:33.93 ID:cAaoTUDS.net]
元々無理矢理VBA使うのはって話から始まってるが、もはや無理矢理関数使うことになってる件w

649 名前:デフォルトの名無しさん mailto:sage [2019/04/12(金) 13:20:22.74 ID:L59U/aC1.net]
>>625
> 前者は数式表示モードにするか、横にformulatextで表示しとけば?

それぞれが微妙に違ってる(セル座標のこと)画面からはみ出るぐらいの
長い数式が何十個も表示されていて、それがワークシートを
コピーするたびに量産されていくという状態で
全部見て間違いがないことを確認できるわけ無いだろ

650 名前:デフォルトの名無しさん mailto:sage [2019/04/12(金) 13:41:42.81 ID:cY6WK7UC.net]
>>638
全然本質的な解決にはならないけどR1C1形式にすればセル参照含め同じ数式になって多少は見やすいぞ



651 名前:デフォルトの名無しさん mailto:sage [2019/04/12(金) 19:58:52.20 ID:BpmudOIO.net]
>>638
その考え方が間違いだろ
フォーマットは統一しろよ
みて確認なんかしない

652 名前:デフォルトの名無しさん mailto:sage [2019/04/12(金) 20:04:10.53 ID:kdt5VzkQ.net]
>>640
何を言ってるんだ?
一見してフォーマットが統一されているように見えていながら
誰かがミスして数式が壊れたり、修正が必要な時に漏れたりするから
問題だって言ってるんだろ。

フォーマットを統一するのに「人間がミスをしなければ」という
不可能な条件があるから、だめなんだよ

653 名前:デフォルトの名無しさん mailto:sage [2019/04/12(金) 20:21:45.21 ID:BpmudOIO.net]
>>641
個別に修正なんかしない
そんな事するからミスをする

654 名前:デフォルトの名無しさん mailto:sage [2019/04/12(金) 20:22:49.28 ID:kdt5VzkQ.net]
> 個別に修正なんかしない
シートにデータ入れる時点で修正するんだが?

655 名前:デフォルトの名無しさん mailto:sage [2019/04/12(金) ]
[ここ壊れてます]

656 名前:20:24:13.41 ID:kdt5VzkQ.net mailto: そうそう。エクセルというか表計算は
データと処理(セルに入れる関数)と見た目(色等)が
一つに結合してしまっているという大きな欠点があったな。

分離されてないので、何かを修正する時に
別の何かまで変更してしまって、それに気づかない。
[]
[ここ壊れてます]

657 名前:デフォルトの名無しさん mailto:sage [2019/04/12(金) 20:27:00.42 ID:BpmudOIO.net]
行でデータを作ったら
列には必ず同じ数式しか入れない
バカなことしてたら何時までも進歩しない

658 名前:デフォルトの名無しさん mailto:sage [2019/04/12(金) 20:29:31.50 ID:kdt5VzkQ.net]
> 列には必ず同じ数式しか入れない

列には同じ数式入れるとかアホやろwww

DRYじゃない。同じ物は一つだけでいい

659 名前:デフォルトの名無しさん mailto:sage [2019/04/12(金) 20:30:26.99 ID:kdt5VzkQ.net]
あ、DRYっていうのは同じことを何度も繰り返すなってことねw
わかりやすく言えば、コピペするなってこと。

660 名前:デフォルトの名無しさん mailto:sage [2019/04/12(金) 20:31:21.74 ID:BpmudOIO.net]
バカに入力させるなら
式はロックしとけよ



661 名前:デフォルトの名無しさん mailto:sage [2019/04/12(金) 20:39:29.55 ID:kdt5VzkQ.net]
「式をロック」したいだけなのに
そうすると今度はセルの幅などが変えられなくなる。

細かく設定すれば可能だが、面倒くさい。
メンテナンスする人はいちいち解除しないといけない

そして、どのセルがロックされているかわからない
頑張ればできるが・・・

どんどん無駄な頑張りが必要になる。

662 名前:デフォルトの名無しさん mailto:sage [2019/04/12(金) 21:28:36.09 ID:gNUIO5L9.net]
accessや.netで作るとメンテナンスもっと面倒だよ

663 名前:デフォルトの名無しさん mailto:sage [2019/04/12(金) 21:41:38.90 ID:bJr/2B+h.net]
>>627
そのエラーが出る部分のコードは?

664 名前:デフォルトの名無しさん mailto:sage [2019/04/13(土) 11:19:08.13 ID:D8o23bai.net]
>>649
それ、単に考えが雑なだけだろなんにしても
計画性もなく適当に増殖させるから自分でも制御できなくなる

665 名前:デフォルトの名無しさん mailto:sage [2019/04/13(土) 11:37:11.36 ID:R4ZFT5Jg.net]
セルロックは色々面倒くさくなるのは同意。ほぼ変更なしまで完成されてれば別だが。
なので、自分用とか、可能であれば、式セルに薄い色つけてる。

666 名前:デフォルトの名無しさん mailto:sage [2019/04/13(土) 11:40:20.37 ID:D8o23bai.net]
まあ、ある程度データが大きくなったら、データーはテーブル&数式で処理して
表示、印刷はピボットを使うかフォーマットを定義したシートでまとめろよ
目的も、機能も行き当たりばったりってExcelのシートもVBAも負担なだけ

667 名前:デフォルトの名無しさん mailto:sage [2019/04/13(土) 11:50:25.55 ID:D8o23bai.net]
>>653
コメント入れればいいんだよ、印刷しなければ問題ない
面倒くさいって、管理できればそんな必要はないけどな

668 名前:デフォルトの名無しさん mailto:sage [2019/04/13(土) 12:09:21.02 ID:6byp94bf.net]
その管理が面倒くさいって話

修正でシート変更したとして、
今度から新しいシート使ってくださいとか言っても
間違えて古いシート使ってきて、でも見た上違いわかんねとかさ

エクセルファイルをコピーした分だけ
プログラム(セルに入れる関数のこと)が複製されるから管理不能。
一つのエクセルファイルを共有して使うとか

何人も人がいればやらんだろ?
それぞれ個別のエクセルファイル修正して提出とかだろ?

669 名前:デフォルトの名無しさん mailto:sage [2019/04/13(土) 12:41:36.98 ID:DFBgdaK8.net]
削除や挿入でセルがずれない設定があればねぇ
今のところindirectしかない。indirect使うと数式が読みづらくて死ぬ

670 名前:デフォルトの名無しさん mailto:sage [2019/04/13(土) 13:09:48.18 ID:3yfR9cCP.net]
offsetで大体逝ける
始点がずれるのはむしろ使いやすい



671 名前:デフォルトの名無しさん mailto:sage [2019/04/13(土) 18:07:35.12 ID:U599Z1h6.net]
offsetか、滅多に使わないけどindirectよりは楽そうだ

672 名前:デフォルトの名無しさん mailto:sage [2019/04/14(日) 09:28:16.57 ID:WyY+5dun.net]
>>657
わかりやすい名前を付けてそれを使えばズレないだろし分かりやすい

673 名前:デフォルトの名無しさん [2019/04/14(日) 09:40:00.62 ID:C6oAesku.net]
VBAの一番の欠点は情報が圧倒的に少ない
多言語の1億分の一くらいの情報量
質問してもアンサーが遅い

674 名前:デフォルトの名無しさん mailto:sage [2019/04/14(日) 09:47:43.05 ID:Q3MA08tK.net]
Webで有用な情報を発信できるレベルの人間ならそもそもVBAなんて使いたがらないからね

675 名前:デフォルトの名無しさん mailto:sage [2019/04/14(日) 11:20:06.68 ID:CXJ+kocl.net]
えー
少なくともの本後の情報は十分だろー

676 名前:デフォルトの名無しさん mailto:sage [2019/04/14(日) 11:20:38.15 ID:CXJ+kocl.net]
の本後→日本語

677 名前:デフォルトの名無しさん [2019/04/14(日) 11:25:05.41 ID:C6oAesku.net]
少しはみ出した使い方とかも出ないし想定内の情報のみ

678 名前:デフォルトの名無しさん mailto:sage [2019/04/14(日) 11:29:14.13 ID:CXJ+kocl.net]
まあね、最近のスマホの使い方みたいに
「見ればわかるよ」ってのが長々と書いてあるね

679 名前:デフォルトの名無しさん mailto:sage [2019/04/14(日) 12:01:54.76 ID:8k8FRXsi.net]
ツイッターでVBA検索しても出てくるだろ

680 名前:デフォルトの名無しさん mailto:sage [2019/04/14(日) 12:23:51.23 ID:TZDtV4Z3.net]
Excel VBAは玉石混淆だけどまぁまぁ情報はネット上に転がってる
Access、OutlookのVBAも最低限の情報ならば探せる
これがPowerPoint、Word、Publisherとかになると途端に情報量が減る



681 名前:デフォルトの名無しさん mailto:sage [2019/04/14(日) 13:00:23.72 ID:XgRuwrtZ.net]
>>661は釣りだぞ
検索力低いですね^^;って返すとこまでがテンプレ

682 名前:デフォルトの名無しさん [2019/04/14(日) 15:06:27.05 ID:v38VY+Mw.net]
検索力の問題とかじゃなくて情報量が圧倒的に少ないのは事実
VBAプレイヤーの絶対人数が違うんだから当然だけど天才的な人もいない

683 名前:デフォルトの名無しさん mailto:sage [2019/04/14(日) 15:09:37.61 ID:dD4X90o9.net]
天才的な人がVBAなんか使うわけないだろ

684 名前:デフォルトの名無しさん mailto:sage [2019/04/14(日) 15:11:39.40 ID:XgRuwrtZ.net]
VBAの情報量と言われても、EXCEL操作できればそれでいいんだからそれ以上何かいるんけ?

685 名前:デフォルトの名無しさん mailto:sage [2019/04/14(日) 20:42:13.83 ID:ta3d6Ir8.net]
単純なExcel操作の範疇ならそこそこ有能そうな人の記事もあるよね
能力の低い人ほどそれ以上のことをVBAでやろうとするからな

686 名前:デフォルトの名無しさん mailto:sage [2019/04/15(月) 08:13:02.92 ID:ZEg6Csuk.net]
VBAしか見ないから少ないと感じる。
普通のExcel操作なんて皆知ってることばかりだろう。

687 名前:デフォルトの名無しさん mailto:sage [2019/04/15(月) 08:13:28.72 ID:ZEg6Csuk.net]
VBAしか見ないから少ないと感じる。
普通のExcel操作なんて皆知ってることばかりだろう。

688 名前:デフォルトの名無しさん mailto:sage [2019/04/15(月) 09:47:45.91 ID:HgdD6hHz.net]
パワーポイントとワードは同じVBAでしょはよ作ってね
たかがvbaだし期間なんて要らないよねよろしくー
みたいなん多くてうげーてなる

689 名前:デフォルトの名無しさん mailto:sage [2019/04/15(月) 11:01:10.68 ID:OAOOS1Vr.net]
>>676
すまないが、日本語で書き直してくれ

690 名前:デフォルトの名無しさん mailto:sage [2019/04/15(月) 11:24:35.03 ID:K9PTdoK0.net]
わかるけど...



691 名前:デフォルトの名無しさん mailto:sage [2019/04/15(月) 12:40:48.29 ID:Es8LFln/.net]
>>677
こういうことだろ

上司A 「パワーポイントとワードは同じVBAでしょ、はよ作ってね」
同僚B 「たかがvbaだし期間なんて要らないよね、よろしくー」
俺 「うげー」

692 名前:デフォルトの名無しさん mailto:sage [2019/04/15(月) 17:13:58.76 ID:IzRYxIuW.net]
恥を忍んできくが

WordのVBAって、なんか使い道あんの?

オレは全角半角統一とか
余白ほかレイアウト調整とか
定型文挿入とか
そんな簡単なのは自作して使ってるけど
「高度な使い方」ってのが思いつかない

文章中心のデータに
定型処理って需要があんのかね

693 名前:デフォルトの名無しさん mailto:sage [2019/04/15(月) 17:23:54.84 ID:Es8LFln/.net]
>>680
そんだけ活用できてれば十分じゃん
言語仕様を制限する方が余計な手間がかかるから、そのままなんでも使えるようにしてあるだけだろ

高度かどうかは置いといて、Word VBAの使いみちとしては、印刷物の寸法をちゃんと合わせたいとき
Word文書にVBAで罫線なりシェイプを書き込めばいいんじゃない?

694 名前:デフォルトの名無しさん [2019/04/15(月) 17:36:56.85 ID:OAOOS1Vr.net]
>>679
すごいな、読む気がなかったかもしれん
>>680
俺は、使ってっるリストボックスで選択した文字で
文書を変更して印刷している
高度である必要あるの?便利であればいいんでないの

695 名前:デフォルトの名無しさん mailto:sage [2019/04/15(月) 17:41:14.99 ID:UiI6zhV3.net]
>>681
>>682
ああなんか救われた気がする
スレチ気味の質問だったが
ありがとう

素朴でも便利な小道具つくって行くわ

696 名前:デフォルトの名無しさん mailto:sage [2019/04/15(月) 17:41:23.11 ID:Es8LFln/.net]
【1 OSの種類         .】 Windows10 Pro 64bit
【2 Excelのバージョン   】 Excel 2019
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可
Visual Studio Community 2019を入れたら、Excelの設定があちこち勝手に書き換わってしまいました
そのうちの一つとしてVBEでスニペットが表示されなくなったのですが、直し方を教えてください

697 名前:デフォルトの名無しさん mailto:sage [2019/04/15(月) 17:49:48.06 ID:RSa+mOrL.net]
>>680
スレタイ読めない馬鹿は死ね

698 名前:デフォルトの名無しさん mailto:sage [2019/04/15(月) 19:14:26.59 ID:32DOVlq8.net]
>>680
昔作って、超低頻度だが役に立ってるのが、Windows乗り換えたときに全フォントのサンプル表示と印刷。

各種プログラムソースに色付け、A3縦二段組印刷。(最近はイチから解析しなくなったな〜…)

699 名前:デフォルトの名無しさん mailto:sage [2019/04/15(月) 19:20:00.80 ID:+NR2IFvh.net]
>全フォントのサンプル表示と印刷。
これ面白いな

700 名前:デフォルトの名無しさん mailto:sage [2019/04/15(月) 19:35:47.06 ID:ZEg6Csuk.net]
>>680
ExcelVBAのソースコードを自動で色付けするのに使ってる。



701 名前:デフォルトの名無しさん mailto:sage [2019/04/15(月) 19:39:30.60 ID:ZEg6Csuk.net]
>>686
VBAのキ−ワードの色付けは誰かがやってたからそれを貰って、コメントの色付けを追加して使ってる。

702 名前:デフォルトの名無しさん mailto:sage [2019/04/15(月) 22:51:44.23 ID:bKeRxbfM.net]
>>680
>WordのVBAって、なんか使い道あんの?

ファミコンのエミュレーターとか。

703 名前:デフォルトの名無しさん mailto:sage [2019/04/15(月) 23:20:36.68 ID:cJmtAKHt.net]
>>684
VSCodeでVBAを書け
以上

704 名前:デフォルトの名無しさん mailto:sage [2019/04/15(月) 23:37:02.12 ID:NJLxUmAX.net]
Word VBAでVisualStudio作ろうぜ!

705 名前:デフォルトの名無しさん mailto:sage [2019/04/16(火) 06:55:26.74 ID:297VTHLy.net]
>>690 は想像もつかないが
ほかは参考にさせてもらうわ
ありがとう

706 名前:デフォルトの名無しさん mailto:sage [2019/04/16(火) 07:45:09.88 ID:BVl9qEwk.net]
WordのVBAはWord文書をgrepするときに使うくらい

707 名前:デフォルトの名無しさん mailto:sage [2019/04/16(火) 18:45:28.10 ID:e8yfqTUa.net]
フォルダ内に存在するファイルが以下のように構成されています

2019-1-1
2019-1-2
2019-1-2修正1
2019-1-3
2019-1-4修正1
2019-1-4修正2

この時、それぞれの日のファイルのうち最も新しい物から値を吸い上げたいです
そこでまずはdir(ファイル1*)とdir()で更新日を比較、大きなものと次を比較...とやろうとしたのですがその場合日付が1桁表記であるため1-1と1-11の比較となり1-11が採用されてしまいます
この問題を解決するにはどのようなアプローチで行えばよろしいでしょうか?
なお、日付の次は必ずしも「修正」ではなく別のコメントの場合もあります

ヒントなど頂けますと幸いです

708 名前:デフォルトの名無しさん mailto:sage [2019/04/16(火) 18:48:04.20 ID:e8yfqTUa.net]
すみません訂正です

1-1と1-1*で比較をしようとすると、狙いとしては”1-1修正”がある場合その比較だったのですが1-1と1-11の比較、1-11と1-12の比較...1-19(あるいはその修正版)が選ばれてしまいます

709 名前:デフォルトの名無しさん mailto:sage [2019/04/16(火) 19:02:23.87 ID:g+D3y3HH.net]
>>695
"修正"の文字列が凶悪過ぎて無理だな
"修正"がなければsplit()で分けて、日付データにしてしまうのが一番手っ取り早いんだけど
2019-1-2-修正1
なんてあったらお手上げ

710 名前:デフォルトの名無しさん mailto:sage [2019/04/16(火) 20:00:26.84 ID:dymnkria.net]
>>695
ファイル名ではなくファイル自体の更新日で比較は?
可能ならファイル名の付け方を考え直した方がいいと思うが



711 名前:デフォルトの名無しさん mailto:sage [2019/04/16(火) 20:24:24.92 ID:dymnkria.net]
すまん>>696読んでなかった
Dir("1-1*")で"1-1修正"も読み込まれるはず
ファイル名が"1-1 修正"になってるってことはないか?
それとDirはファイル名昇順で返すから比較せず最後に読み込んだファイル名を使えばいいと思う

712 名前:デフォルトの名無しさん mailto:sage [2019/04/16(火) 20:48:56.77 ID:akR/dKKk.net]
>>699
1-1修正
1-1最新
なんてのがあると、タイムスタンプ無視して修正が最後になるぞ
コメントが不定なら、数字とそれ以外の文字を判定して切り分けるしかない

713 名前:デフォルトの名無しさん mailto:sage [2019/04/16(火) 20:53:51.23 ID:g+D3y3HH.net]
1-1修正
1-12回めの修正(「1-1 2回めの修正」のつもり)
ってパターンもあってもうこれ絶対にヤバイ処理

714 名前:デフォルトの名無しさん mailto:sage [2019/04/16(火) 21:09:05.64 ID:dymnkria.net]
>>696
すまん更に勘違いしてた
"1-1修正"が出て来ず他のが出てくると言ってるのかと勘違いしてた
>>698が無理ならファイル名をsplitで"-"で切って、3つ目の文字列から左2文字のうち数字だけ取得する
ただし>>701の言うようにコメントの最初に数字が来ることがあるならどうしようもない

715 名前:デフォルトの名無しさん mailto:sage [2019/04/16(火) 21:16:48.22 ID:nc1CJru4.net]
postfix扱いの「コメント」に規則性がないのならそもそも最新版を特定する術がない
運用の方を変えるべきだろう

716 名前:デフォルトの名無しさん mailto:sage [2019/04/16(火) 21:43:33.41 ID:g+D3y3HH.net]
最新版以外はoldフォルダ作ってそこにほおりこんでおく
そうすれば超簡単に出来る

717 名前:デフォルトの名無しさん mailto:sage [2019/04/16(火) 22:27:43.62 ID:XA2NKST4.net]
>>それぞれの日のファイルのうち最も新しい物
新しいとする基準は何?
ファイル名で修正1修正2ってあったら修正2が最も新しい?
日付部分のyyyy-mm-dd(ただしmmとddは一桁もあり得る)が固定なら
毎回癖のあるdirとワイルドカードなんて使わないでファイルリストすべて取得してから処理したら?

718 名前:デフォルトの名無しさん [2019/04/17(水) 05:30:44.38 ID:pTGno1t2.net]
新たにVBAライブラリを作ったりする人が全く出ないのが取り残された言語の欠点
他の言語は次から次へとライブラリが追加されてより便利に快適にそして簡単になるのに
終わってるVBAには将来性も可能性もないから仕方ないけどね

719 名前:デフォルトの名無しさん mailto:sage [2019/04/17(水) 05:35:40.84 ID:JxFBTN19.net]
Sub macro1()
  ChDir "指定フォルダ"
  指定日 = "2019-1-1"

  f = Dir(指定日 & "*.*")
  Do While f <> ""
    t = timestamp(指定日, f)
    If t > 最新t Then
      最新f = f
      最新t = t
    End If
    f = Dir()
  Loop

  MsgBox "日付が" & 指定日 & "のうち最新の物は" & vbCrLf & _
      "ファイル名 " & 最新f & vbCrLf & _
      "日時 " & Format(最新t, "yyyy/mm/dd hh:mm")
End Sub

'ファイル名の日の桁数をチェックして、一致したらタイムスタンプを返す
'一致しなかったら0を返す
Function timestamp(s, f)
  w = Mid(f, Len(s) + 1, 1)
  If "0" <= w And w <= "9" Then
    timestamp = 0
  Else
    timestamp = FileDateTime(f)
  End If
End Function

720 名前:デフォルトの名無しさん mailto:sage [2019/04/17(水) 07:27:27.84 ID:Hz/wxCvM.net]
>>706
確かに聞かないな
最新ライブラリで10年前とかの世界だ



721 名前:デフォルトの名無しさん [2019/04/17(水) 08:09:13.25 ID:pTGno1t2.net]
フォームにしてももう少しグラフィカルだったりアニメーションだったりするだけでイメージが全然違うんだけど
頭の良い誰がライブラリを作ってくれんかね

722 名前:デフォルトの名無しさん mailto:sage [2019/04/17(水) 08:31:50.49 ID:WtvpNXmt.net]
多くの人にとって有用なライブラリを作れるほどの能力のある人なら、
VBAを便利にすることはVBAの延命や利用人口の増加を招き、それは

723 名前:即ち社会正義に反する行為であると理解しているからね []
[ここ壊れてます]

724 名前:デフォルトの名無しさん mailto:sage [2019/04/17(水) 08:45:03.90 ID:H1v/4DiF.net]
>>706
vbaにライブラリって何か必要?
中途半端なの出てきてもそれ覚えるの面倒なんだよね
jQueryぐら便利で誰もが使ってるようなのならいいんだけど

725 名前:デフォルトの名無しさん mailto:sage [2019/04/17(水) 08:46:34.13 ID:H1v/4DiF.net]
>>710
まぁそういう事でもある

726 名前:デフォルトの名無しさん mailto:sage [2019/04/17(水) 08:50:05.84 ID:W5uIlXM9.net]
VBAのライブラリ作るよりCOMにしちまうんじゃないの?
VBA以外にも使えるし。

そしてCOMのライブラリなんて腐る程有るんだが何を言ってるんだ?

727 名前:デフォルトの名無しさん mailto:sage [2019/04/17(水) 08:50:52.58 ID:W5uIlXM9.net]
実際、俺はVBA用にC#でライブラリ作ったりしてる。

728 名前:デフォルトの名無しさん mailto:sage [2019/04/17(水) 09:15:11.32 ID:YsMOLNBK.net]
>>714
二つ質問

それってCreateObject でインスタンス作って使うの?

どういうジャンル/用途のもの?

729 名前:デフォルトの名無しさん [2019/04/17(水) 09:30:09.47 ID:vaRlkwxk.net]
フォームUIのライブラリを希望

730 名前:デフォルトの名無しさん mailto:sage [2019/04/17(水) 11:17:15.83 ID:SIKwKn9k.net]
>>711
> vbaにライブラリって何か必要?

こういう文脈のライブラリなら
アルゴリズム系のライブラリだろ?

ソートとか配列に対する処理(合計求める)とか
VBAの言語の範囲内で実装できるアルゴリズム

あと大きめのやつならCSV読み書きとか
テンプレートエンジンとか



731 名前:デフォルトの名無しさん mailto:sage [2019/04/17(水) 11:18:11.01 ID:SIKwKn9k.net]
>>711
> 中途半端なの出てきてもそれ覚えるの面倒なんだよね

ライブラリの関数名はどの言語にも有るような名前にするので
一般的なプログラマなら覚えるまでもない

732 名前:デフォルトの名無しさん mailto:sage [2019/04/17(水) 11:27:39.85 ID:YsMOLNBK.net]
>>717
一般アルゴリズム系とかCSVならいっぱいあるでしょ

テンプレートエンジンってなに?

733 名前:デフォルトの名無しさん mailto:sage [2019/04/17(水) 11:36:17.09 ID:H1v/4DiF.net]
CSVの読み込みほしいな
住所の番地"1-1-1"を読み込むと日付になって超めんどい
幾つか試したけどどれやっても日付型になってしまった
今思えば頭にピリオドでも付ければ良かったのかもしれん

734 名前:デフォルトの名無しさん mailto:sage [2019/04/17(水) 11:59:21.48 ID:o6t++Kqu.net]
>>695-707
Ruby では以下。
ただし、Date オブジェクトに変換して比較しているから、同じ日付の順序付けは、不明

require 'date'

filenames = %w(abc 2019-1-11さらに修正1 2019-1-11修正2 2019-1-11修正1 2019-1-11 2019-1-1 2019-01-01)

re = /^(\d[\d-]+)/ # 数字で始まり、数字かハイフンだけが続く

# マッチしたものだけを集めて、ソートする。md[ 1 ] は、capture 部分
p results = filenames.select { | fn | fn.match( re ) }
.sort_by { | fn | md = fn.match( re ); Date.parse( md[ 1 ] ) }

p results.first

結果
["2019-1-1", "2019-01-01", "2019-1-11", "2019-1-11修正1", "2019-1-11修正2", "2019-1-11さらに修正1"]

先頭
"2019-1-1"

735 名前:デフォルトの名無しさん mailto:sage [2019/04/17(水) 12:02:53.03 ID:H1v/4DiF.net]
>>721
もうすぐ無くなる言語の話なんてやめようよ

736 名前:デフォルトの名無しさん [2019/04/17(水) 12:23:13.47 ID:vaRlkwxk.net]
ルビーバカシネ

737 名前:デフォルトの名無しさん [2019/04/17(水) 12:27:00.37 ID:MK1B34x/.net]
ライブラリで有効なのは作るのが面倒なUIだろ
グラフィク系にこそライブラリの有り難みがある

738 名前:デフォルトの名無しさん mailto:sage [2019/04/17(水) 12:39:27.60 ID:epFgj98z.net]
そもそもVBAに固執するのは他のものを覚えたくないからであって、
いくら便利なものがあろうと誰もそれを探そうとしないし覚えようともしない
それができる人ならとっくにVBAなんか卒業してるよ

739 名前:デフォルトの名無しさん mailto:sage [2019/04/17(水) 12:41:31.12 ID:H1v/4DiF.net]
>>725
卒業てw適材適所だよ。EXCEL関連の時はvba、webはphp+js、ゲームはC#
これぐらい使い分けときゃだいたいok

740 名前: []
[ここ壊れてます]



741 名前:デフォルトの名無しさん mailto:sage [2019/04/17(水) 12:44:56.01 ID:epFgj98z.net]
>>726
VBA使う人には他のものが使えないから使ってる人と単に選択肢の一つとして使ってる人がいて、君は後者であるというだけだ
大多数は前者なわけだし、後者の人はVBAでやりづらいことを無理にVBAでやろうとはしないからライブラリ云々は問題にならないだろう

742 名前:デフォルトの名無しさん mailto:sage [2019/04/17(水) 13:11:34.01 ID:bcLxo1zC.net]
>他のものが使えない
は他のものを覚えたくないだけでなく
他のものを使わせてもらえないというのもある

743 名前:デフォルトの名無しさん mailto:sage [2019/04/17(水) 13:16:11.24 ID:epFgj98z.net]
>>728
仕事を選べないor技術的裁量を持てない立場に甘んじているならその程度の能力ってことだ
本質的には大差ない

744 名前:デフォルトの名無しさん mailto:sage [2019/04/17(水) 14:04:48.27 ID:bcLxo1zC.net]
使わせてもらえないのはごく一部の相手なんですけどね
ほかは普通にいろいろ使ってる

745 名前:デフォルトの名無しさん mailto:sage [2019/04/17(水) 17:43:39.08 ID:yZ8b1h33.net]
アドインはどうよ?

746 名前:デフォルトの名無しさん [2019/04/17(水) 18:24:57.64 ID:nv4avm/j.net]
自治体だと、テキストエディタすらウインドウズ標準のものしか使えない。インターネットから切り離されてる不自由な環境なので、VBAとかVBSは重宝される、らしい。

747 名前:デフォルトの名無しさん mailto:sage [2019/04/17(水) 18:30:47.49 ID:SIKwKn9k.net]
>>732
そういう馬鹿なところのために、
マイク・スピーカー端子経由でデータのやりとりをする
ツール作ったら便利なのだろうかね?

748 名前:デフォルトの名無しさん [2019/04/17(水) 18:35:35.55 ID:nv4avm/j.net]
>>733
頼む、作ってくれ!、とのこと

749 名前:デフォルトの名無しさん mailto:sage [2019/04/17(水) 18:36:55.93 ID:W5uIlXM9.net]
個人的には申請出せば色々使えるけど、それが面倒くさいというのもある。

どうせ、VBAでどうとでもなる。
よっぽどどうにもならない場合は申請出すけど。

最近流行りのRPAとか全く必要無い。
簡単にソース作成する個人ライブラリが既にある。

750 名前:デフォルトの名無しさん mailto:sage [2019/04/17(水) 22:16:54.35 ID:JxFBTN19.net]
PC-8001ではカセットテープにプログラムを保存したんだよな
それを最近のPCで録音して、音声ファイルからプログラムデータを復元するWindowsアプリがフリーで公開されてる



751 名前:デフォルトの名無しさん mailto:sage [2019/04/17(水) 22:20:25.13 ID:WIrsZtM7.net]
FAXみたいな原理だな

752 名前:デフォルトの名無しさん mailto:sage [2019/04/17(水) 23:42:32.81 ID:yDlOAXUg.net]
下手なの作ってフリーズしたり過去のデータが消えたら責任とれるの?って話になるからな

753 名前:デフォルトの名無しさん mailto:sage [2019/04/18(木) 00:51:43.65 ID:247lpqF0.net]
ITに戦略がないとそうなる

754 名前:デフォルトの名無しさん [2019/04/18(木) 05:33:25.25 ID:nRTUz+FV.net]
ライプラリってそんな知る人ぞ知るってマイナーな使い方じゃなく簡単に情報入手出来るようになって価値があるよね
汎用性があり改変もしやすくオープンなのが増えると良い。
そんなのVBAじゃなくともって言う人もいるけどそれでもVBAが存在して使用されてるんだから有用なライプラリはあった方が良い

755 名前:デフォルトの名無しさん mailto:sage [2019/04/18(木) 07:22:37.37 ID:hrv1qdCF.net]
GithubでVBAっていれて検索すると3000以上のリポリトジがあるけど、
どうすれば有用なものが見つけられるか
まるでわからん

756 名前:デフォルトの名無しさん mailto:sage [2019/04/18(木) 07:34:41.63 ID:z0cRqxOE.net]
VBAが有用じゃないし

757 名前:デフォルトの名無しさん mailto:sage [2019/04/18(木) 09:32:20.75 ID:bMzi6GVd.net]
なんとなくvba利用しているような運用職なんですがモノは良いのでもっと横展開出来て再利用性高いものが作れたら作って欲しいと言われました

再利用性が高いとはつまりどういうことでしょうか…
モジュールをそのままコピペして全く別のものでも動くように…?

758 名前:デフォルトの名無しさん mailto:sage [2019/04/18(木) 09:40:51.83 ID:Mwr+qk/V.net]
>>743
決め打ちとしてない?
データ全部を処理する時にfor i = 1 tto 100000とかテキトーな数値にしたり
そうじゃなく、最終行をちゃんと取るとか

759 名前:デフォルトの名無しさん mailto:sage [2019/04/18(木) 09:44:43.23 ID:PeuY0IP9.net]
>>743
言ってるやつに聞け。

まあどうせ無理だろ?
どうせそいつが言ってるのは、他の部署でも使えるようにしろってことだろうから
業務内容を統一したものに "変更" しないと無理ですとか言っとけw

760 名前:デフォルトの名無しさん mailto:sage [2019/04/18(木) 09:47:38.84 ID:PeuY0IP9.net]
> 横展開出来て再利用性高いものが作れたら作って

↑これ無理なんだよ。

今あるものを再利用性が高いものにすることはできない。
ただし「再利用性が高いもの」を使うことはできる。

どういうことかというと「今あるもの」は再利用できるものと
再利用できないものが合体してる形。

そこから再利用できるものを分離することはできるが
どうしても再利用できないものは残る。



761 名前:デフォルトの名無しさん mailto:sage [2019/04/18(木) 10:15:32.81 ID:66UDqgKZ.net]
そうやって責務を分離して再利用性の高いライブラリを構築することは可能。
しかし使いこなすのが難しくなる。
依存関係や凝集度をちゃんと考えた良質なライブラリは玄人受けはするだろうけど、
機能が細分化し抽象性も増すから一般人には豚に真珠状態。

762 名前:デフォルトの名無しさん mailto:sage [2019/04/18(木) 11:53:10.58 ID:sbpDgPak.net]
まずはモジュール化
その会社の業務内容に合わせて、部署が違っても共通で使える部分をライブラリとして整備する
まあ言うのは簡単だけど、実際に作るのは死ぬほど大変なんで、理想の高さに比例した地獄が待ってるんだけどな

763 名前:デフォルトの名無しさん mailto:sage [2019/04/18(木) 13:21:10.78 ID:PeuY0IP9.net]
> その会社の「業務内容」に合わせて、「部署が違っても共通で使える部分」

そんなものは存在しない。

業務内容から生み出されている時点で、業務にべったり依存してる。
再利用性の高いライブラリっていうのは、業務内容を切り離している。
業務内容と関係ないから、共通で使える。

764 名前:デフォルトの名無しさん mailto:sage [2019/04/18(木) 13:36:25.79 ID:/sUch5Kf.net]
自分の理解で合ってるか確認したいんだけど再利用性高いてのは決め打ち無くして例えば引数とかで使えるようにしてモジュールなりを使い回せる状態
だけども再利用性ない部分(呼び出し元?main?)を作らないといけない限りこれ1つあればどの業務、案件でも使える!てことにはならない
ライブラリ化?とか再利用性を高めることは出来るけど中々難しく初心者には険しい
て感じでおけ?

765 名前:デフォルトの名無しさん mailto:sage [2019/04/18(木) 15:07:10.61 ID:66UDqgKZ.net]
>>750
ライブラリと業務寄りアプリの難しさは別種のもので初心者にはどっちも難しい。
とはいえライブラリは小さな便利ツールをピンポイントで一個一個作っていくことができる点で
ハードルが低い面はある。

766 名前:デフォルトの名無しさん [2019/04/18(木) 15:19:41.42 ID:YY/ze1GU.net]
無理だと言うやつには無理のんだろう
汎用性の高いのは別に問題ないのでは?エクセル自体はどの部署でも使ってるんだから追加でどこまで機能を絞るか縛りを緩くするかの問題でしょ

767 名前:デフォルトの名無しさん mailto:sage [2019/04/18(木) 16:05:19.35 ID:FYzqO+ri.net]
プログラム板の他スレじゃ相手にされない半端者がここならドヤ顔で語れるだろうって調子に乗ってて草

768 名前:デフォルトの名無しさん [2019/04/18(木) 17:34:24.27 ID:Mwk0+ScA.net]
他プログラムはサンプルや情報が多いからVBAより簡単に現象を獲得できる

769 名前:デフォルトの名無しさん [2019/04/18(木) 17:41:24.05 ID:Mwk0+ScA.net]
そもそも他言語はシンプルだしVSならガッツリとインテリセンスが効くから簡単に書けて工数も少なくて済む
文法もVBAは難しい部類

770 名前:デフォルトの名無しさん mailto:sage [2019/04/18(木) 21:55:37.18 ID:CoHPfDW+.net]
難しいというか不合理なんだよな
内包表記やヌル安全やモナドみたいに別に難しい概念があるわけでは無い



771 名前:デフォルトの名無しさん mailto:sage [2019/04/18(木) 22:12:05.40 ID:sbpDgPak.net]
完全な言語なんて存在しないし作るのも不可能

772 名前:デフォルトの名無しさん mailto:sage [2019/04/18(木) 22:18:06.03 ID:rY75T8tq.net]
>>757
小学生みたいな発想スね

773 名前:デフォルトの名無しさん mailto:sage [2019/04/18(木) 22:25:43.62 ID:NyxG62A4.net]
漠然とした話からは何も産まれない

774 名前:デフォルトの名無しさん mailto:sage [2019/04/18(木) 23:02:30.65 ID:ZviCYbcp.net]
マクロでブック開くと、データ量が多いブックの場合開き終わるまで拘束されてしまう。
開き終わってセルに書き込みできるまでに他の処理をさせたい

if application.Ready=False then
(その間にやる処理)
endif

こんな感じに、開くまでの間になにか処理をさせたいのです。
なにかできる方法があったら教えてください
その重いブックは自分で作ったものじゃなくてすぐに改善はできない状況です
よろしくお願いします

775 名前:デフォルトの名無しさん mailto:sage [2019/04/18(木) 23:26:59.03 ID:1fisAtwZ.net]
一瞬、マクロを実行するファイルそのものを開く時の待ち時間かと思ったわ。
VBAじゃなくて、VBSで開かせるなら出来なくもなさそうだけど。

776 名前:デフォルトの名無しさん [2019/04/18(木) 23:32:51.10 ID:RfIDmYfE.net]
VBAやUWSCのプログラムちょっとできる程度なんだが組み込みのソフトウェア部に転身しろと先輩から言われる。
ちなみに今は製造部の使えないやつ扱いをうけている模様。
これは辞めろってことか

777 名前:デフォルトの名無しさん mailto:sage [2019/04/18(木) 23:38:14.35 ID:rY75T8tq.net]
>>762
現場が分かるシステムが欲しいんだろう
かなり必要とされてるように見える。行ってみたら良いだろう
いずれ製造なんて自動化でなくなる部門何だしている

778 名前:デフォルトの名無しさん mailto:sage [2019/04/18(木) 23:39:24.29 ID:ycswSyUn.net]
>>760
他の処理ってのがExcel操作だったら無理
ExcelはSTAのCOMなので複数のスレッドからアクセスしても常にタスクを直列にシリアライズして逐次処理する
一個の処理で詰まると後が渋滞するだけ
Officeの他のアプリのVBAとかPowerShellとかJSとかVBSとか、別の言語のプログラムをキックして他のエンジンで処理を実行させることは可能
後でウィンドウなりファイルなりにアクセスすれば処理結果も取れるし

779 名前:デフォルトの名無しさん [2019/04/18(木) 23:42:06.58 ID:RfIDmYfE.net]
>>763
ありがとう。
その自動化するための機械作ってるのがうちの会社なんだよね。
機械のソフトウェアだからCとかパイソンになるのかな?
一応情報卒なんだけど自信ないよ

780 名前:デフォルトの名無しさん mailto:sage [2019/04/18(木) 23:47:17.30 ID:NyxG62A4.net]
>>765
何で遅いか調べないの?
外部リンクとか、シート間参照が多いとか



781 名前:デフォルトの名無しさん mailto:sage [2019/04/18(木) 23:47:45.92 ID:rY75T8tq.net]
>>765
そうなのか
言語は多分C辺り、pythonは無いと思う
一度面談受けたら?分からない事がさすがに多すぎる

782 名前:デフォルトの名無しさん mailto:sage [2019/04/18(木) 23:50:56.85 ID:NyxG62A4.net]
>>766
すまんアンカー間違えた

783 名前:デフォルトの名無しさん [2019/04/18(木) 23:51:11.62 ID:RfIDmYfE.net]
>>767
Cだよなぁ、ポインタで挫折しちゃったけいけんがあるんだよなぁ。数字の羅列はやってても楽しくないんだよなぁ。グラフィックに実行結果出ないとつまらないんだよなぁ。
でも一生製造で終わりたくはないし…話ししてみようかなサンクス

784 名前:デフォルトの名無しさん [2019/04/18(木) 23:51:26.61 ID:RfIDmYfE.net]
>>768
ええんやで

785 名前:デフォルトの名無しさん mailto:sage [2019/04/18(木) 23:59:44.00 ID:tULlneIt.net]
>>764
Excel.Application複数起動してもダメなの?

786 名前:デフォルトの名無しさん mailto:sage [2019/04/19(金) 05:04:11.19 ID:F+IfR3tb.net]
accessのテーブルに接続するデータテーブルをVBAでrefreshallした時に、
読み込み完了前に次の処理に進むのを止めることできますか?
stopで一時的に止めればいけるけれど、読み込み完了後に次処理に自動的に
進めたいです。

787 名前:デフォルトの名無しさん mailto:sage [2019/04/19(金) 08:11:56.05 ID:WxAK0tT/.net]
>>771
たぶんできる。
>>764は思慮が足らないと思う。

788 名前:デフォルトの名無しさん [2019/04/19(金) 10:27:04.15 ID:L5evqwYE.net]
>>773
Excel2010までは簡単だったがExcel2013から複数インスタンスの起動は難しくなったようだな
ただ、所詮重い処理をそのままにして複数起動してももっと重くなるよな

そもそも、重い原因を確認しないと、自動計算を止めれば早くなる可能性もあるが
それをやっていいかもわからん

789 名前:デフォルトの名無しさん mailto:sage [2019/04/19(金) 11:03:21.04 ID:Bg8kiXU6.net]
正直、余計なことをせずに静観しておいたほうが良い気はする

790 名前:デフォルトの名無しさん mailto:sage [2019/04/19(金) 11:49:18.40 ID:tnpUi0yI.net]
これもそうだな 漠然とした話からは何も産まれない



791 名前:デフォルトの名無しさん mailto:sage [2019/04/19(金) 13:51:24.35 ID:ZnDHFpRl.net]
けどこのスレの人間って、無駄話で罵り合いするの好きだよね w

792 名前:デフォルトの名無しさん mailto:sage [2019/04/19(金) 14:22:48.38 ID:L5evqwYE.net]
漠然とした話から連想ゲームして、自分語りを始める
で、好きな事違うから無駄な話が続くんでない

793 名前:デフォルトの名無しさん mailto:sage [2019/04/19(金) 15:58:50.09 ID:k3MrA8ng.net]
VBA界には有名人がいないから、いじる対象がないってのもある
他言語だとコミュニティの顔みたいな存在がちらほらいるけどVBAは活動自体ないからな

794 名前:デフォルトの名無しさん [2019/04/19(金) 18:35:20.89 ID:bifIXaiQ.net]
ないねぇ
オープンマインドじゃないし自分の考えが正論だと信じ込んでるから新しい発想は受け入れないもん
全部排除

795 名前:デフォルトの名無しさん mailto:sage [2019/04/19(金) 19:33:45.34 ID:F+IfR3tb.net]
>>772
解決しました

796 名前:デフォルトの名無しさん mailto:sage [2019/04/19(金) 21:09:28.46 ID:+TCHgQUv.net]
書道家にWord使ったほうが早いのにとか言っても仕方ないだろ?
VBAは伝統芸能なんだよ

797 名前:デフォルトの名無しさん mailto:sage [2019/04/19(金) 21:28:42.21 ID:hMAGCQp2.net]
書道家だってWordくらい使うだろ

798 名前:デフォルトの名無しさん mailto:sage [2019/04/19(金) 21:31:43.30 ID:GnXLTXUb.net]
しょれはどうか?
しょどうか?

799 名前:デフォルトの名無しさん mailto:sage [2019/04/19(金) 22:09:23.17 ID:muLZwW/F.net]
>>780
オープンマインドってなんですか?

800 名前:デフォルトの名無しさん mailto:sage [2019/04/20(土) 00:10:38.45 ID:xcWVlBQQ.net]
昇順で並べたデータ(日付など)の変わり目に一行挿入を繰り返すマクロは作れるかな?
セルの差分の列を作って0でないところに行挿入を考えてるんだが、他に何かないでしょうか先生方



801 名前:デフォルトの名無しさん mailto:sage [2019/04/20(土) 00:19:14.02 ID:qwsd80fG.net]
>>786
上下のセルの内容が同じじゃなかったら挿入

802 名前:デフォルトの名無しさん mailto:sage [2019/04/20(土) 00:30:38.72 ID:xcWVlBQQ.net]
>>787
これは早速素晴らしい案をありがとう!よほどシンプルに行けるわ

803 名前:デフォルトの名無しさん mailto:sage [2019/04/20(土) 00:41:38.87 ID:lNRl64h3.net]
>>788
念の為、
for i 最終行 to 2 step -1
で回すんだぞ

804 名前:デフォルトの名無しさん [2019/04/20(土) 01:43:17.46 ID:ojpyozsg.net]
このスレだとプログラマではないひとの質問が書かれるか。

805 名前:デフォルトの名無しさん mailto:sage [2019/04/20(土) 02:10:30.65 ID:SAylvlqW.net]
>>789
行がずれるから逆から回すということかな、助かりますありがとう!

806 名前:デフォルトの名無しさん mailto:sage [2019/04/20(土) 02:37:10.84 ID:lNRl64h3.net]
>>790
そりゃそうだろう
vba使う層って事務のにーちゃんねーちゃん+できる営業マンが片手間に使うぐらい

807 名前:デフォルトの名無しさん [2019/04/20(土) 06:25:29.61 ID:X4+f+v7V.net]
VBAをプログラムだと思ってる人はいない

808 名前:デフォルトの名無しさん mailto:sage [2019/04/20(土) 07:10:53.95 ID:ZcIJD8m+.net]
きみの勝手な思い込みだよ、
と思われたくないなら客観的な根拠をあげた方がいいね

809 名前:デフォルトの名無しさん mailto:sage [2019/04/20(土) 08:13:49.91 ID:tWWHyzwg.net]
エクセルの画面が右上に飛んで行って、
画面に「どこいくね〜ん!」って表示させるのはどうでしょう?

810 名前:デフォルトの名無しさん mailto:sage [2019/04/20(土) 08:27:11.00 ID:9HZyCDJw.net]
>>779
居るだろ。
君が知らないだけじゃね?
パッと10人くらいは思いつく。



811 名前:デフォルトの名無しさん [2019/04/20(土) 09:01:22.69 ID:Khb9Fcy ]
[ここ壊れてます]

812 名前:X.net mailto: >>796
例えば誰?
[]
[ここ壊れてます]

813 名前:デフォルトの名無しさん mailto:sage [2019/04/20(土) 10:40:51.92 ID:50ElbllH.net]
>>797
聞いちゃいけない事ってあるだろ、ニタニタで我慢しろよ

814 名前:デフォルトの名無しさん mailto:sage [2019/04/20(土) 11:00:20.54 ID:hWWI2xiJ.net]
どうせtwitterのキーワード検索にVBAって入れて出てきたやつとt.tanakaぐらいだろうよ

815 名前:デフォルトの名無しさん mailto:sage [2019/04/20(土) 11:38:03.85 ID:9HZyCDJw.net]
Office田中さんはその内の1人だね。
あとはA○○○さん、k○○○○○○さん、魔○○○○○○さん、じ○○○○○○さん、熊○○○さん、K○○さん、き○○○さん、s○○○○さん、y○○○○○○さん、Y○○○○○○さんとか。

き○○○さんは今も活躍されてるけど今は見かけなくなった人が多いけどね。
.netの方へ移動された人もいるし。
ここ数年でVBAやりはじめた人じゃ知らないのも無理無いが。

816 名前:デフォルトの名無しさん mailto:sage [2019/04/20(土) 11:40:06.78 ID:9HZyCDJw.net]
ああ、A○○○さんはA○○○○さんだった。
今はA○○○○○さんかな。

817 名前:デフォルトの名無しさん mailto:sage [2019/04/20(土) 11:47:01.11 ID:hWWI2xiJ.net]
>>800
T○○○さんもI○○○○さんもいないじゃないか

818 名前:デフォルトの名無しさん mailto:sage [2019/04/20(土) 11:49:12.54 ID:lNRl64h3.net]
名前は覚えてないな
サイト見たら大体思い出す

819 名前:デフォルトの名無しさん mailto:sage [2019/04/20(土) 11:50:13.86 ID:lNRl64h3.net]
Office田中はサイトの修正点を送っても反映してくれないのがネック
後続のためにも直してくれ〜

820 名前:デフォルトの名無しさん mailto:sage [2019/04/20(土) 12:06:15.09 ID:hWWI2xiJ.net]
解説系とライブラリ提供系に分けられるがそれなりに有用
しかしコミュニティを形成してるかと言うとちょっと



821 名前:デフォルトの名無しさん mailto:sage [2019/04/20(土) 12:20:16.39 ID:9HZyCDJw.net]
>>802
I○○○○さんは想像つく。
けど、俺がいた所じゃ見かけたことが無い。
そういやtwitterで発言されてるらしいけど、俺VBA関連はtwitter見て無いんでな。
T○○○さんは想像つかないな。

田中さんは有名人だけどあの人のサイトでは教わることは無いな。
基本的に全て知ってることだから。
でも>>800で挙げた人達は全員俺よりかなりレベルが上だ。

822 名前:デフォルトの名無しさん [2019/04/20(土) 12:22:08.90 ID:n0GthIX7.net]
VBAのworksheetfunction.vlookup関数で
該当の値がないときエラーを回避してそこの処理は無視させるにはどんなコードを書けばいいですか?
該当なしだと問答無用でエラーが出て止まってしまう。

823 名前:デフォルトの名無しさん mailto:sage [2019/04/20(土) 12:27:26.17 ID:9HZyCDJw.net]
>>807
>>423からの流れを読んでね。

824 名前:デフォルトの名無しさん mailto:sage [2019/04/20(土) 12:29:15.35 ID:lNRl64h3.net]
>>807
'forなどで回す時はラベル付けて飛ばす
Sub foo()
On Error GoTo err
For i = 1 To 5
bar = WorksheetFunction.VLookup(1, Range("a1"), 1, 0)
'エラーじゃない時の処理
err:
'共通の処理。無ければ何も書かない
Next
End Sub

'使い捨てプログラムならonerrorで囲んでしまうという手もあるが、あまりオススメできない
Sub foo()
On Error Resume Next 'エラーを無視
bar = WorksheetFunction.VLookup(1, Range("a1"), 1, 0)
On Error GoTo 0 '無視を無効化
End Sub

825 名前:デフォルトの名無しさん mailto:sage [2019/04/20(土) 12:43:34.58 ID:50ElbllH.net]
>>809
お前ね何度書けば・・・
Sub foo()
On Error GoTo err
For i = 1 To 5
bar = WorksheetFunction.VLookup(1, Range("a1"), 1, 0)
'エラーじゃない時の処理
goto 共通
err:
ERR時の処理
共通:
'共通の処理。無ければ何も書かない
Next
End Sub

826 名前:デフォルトの名無しさん mailto:sage [2019/04/20(土) 13:02:36.97 ID:lNRl64h3.net]
>>810
ちゅまん

827 名前:デフォルトの名無しさん mailto:sage [2019/04/20(土) 13:23:10.42 ID:50ElbllH.net]
>>811
てか、WorksheetFunction.VLookup(1, Range("a1"), 1, 0)
見過ごしたけど、これ何?

828 名前:デフォルトの名無しさん mailto:sage [2019/04/20(土) 14:04:44.42 ID:lNRl64h3.net]
>>812
引数を適当に入れただけ

829 名前:デフォルトの名無しさん mailto:sage [2019/04/20(土) 14:36:59.58 ID:tWWHyzwg.net]
>>807
Trueならエラー起きないんじゃない?

830 名前:807 [2019/04/20(土) 15:39:14.34 ID:J0kjNxAu.net]
on errorはセンスがないように感じるのですが。
わたしのセンスがon errorを使うことを許しません。
どうしたらいいですか?
こんなとき定番のような方法はないですか?



831 名前:デフォルトの名無しさん [2019/04/20(土) 15:49:30.44 ID:Khb9FcyX.net]
on errorで問題ないならそれで

832 名前:良いじゃん
そんな瑣末な事に時間を使わずにもっと生産性のある事に時間を使って組織や社会に貢献して下さい
[]
[ここ壊れてます]

833 名前:デフォルトの名無しさん mailto:sage [2019/04/20(土) 15:56:13.97 ID:9HZyCDJw.net]
On Errorを使うのがセンス無い?
何処の初心者だ?

想定された動作なのに一緒くたにするのが嫌というならOn Errorの使い方を知らないだけだろ。

834 名前:デフォルトの名無しさん mailto:sage [2019/04/20(土) 15:56:41.52 ID:tgvbScEy.net]
>>815
センスとか気になるならVBAに関わるのは止めた方が良いよ

835 名前:デフォルトの名無しさん mailto:sage [2019/04/20(土) 15:58:32.36 ID:tgvbScEy.net]
>>815
ID:9HZyCDJwのキチガイが起こってるぞw

836 名前:デフォルトの名無しさん mailto:sage [2019/04/20(土) 16:10:16.59 ID:9HZyCDJw.net]
>>819
センスの無いお前には言われたくね―なw

837 名前:デフォルトの名無しさん mailto:sage [2019/04/20(土) 16:44:47.04 ID:lNRl64h3.net]
vbaにtrycatchが無い以上、onerrorで分岐するしかない
ただ今回に限って言えば、ワークシートにvlookup()を入れてその結果で分岐させることは可能

838 名前:デフォルトの名無しさん mailto:sage [2019/04/20(土) 17:45:57.42 ID:V7SrR6WW.net]
こんな方法もある

Range("Z1") = WorksheetFunction.VLookup( 略 )

結果をどこか空いてるセルに入れてしまえば、エラーでも止まらずに結果を判定することができる
もうひとつ、試したことはないけど

WorksheetFunction.Iferror( WorksheetFunction.Vlookup ( 略

みたいな方法でもエラーで停止するのを回避できそうな気がするけど、Vlookupで止まるかなあ

839 名前:デフォルトの名無しさん mailto:sage [2019/04/20(土) 17:53:15.47 ID:V7SrR6WW.net]
>>822
間違えた
こうだった
Range("Z1") = Application.VLookup( 略 )

840 名前:デフォルトの名無しさん mailto:sage [2019/04/20(土) 17:58:05.16 ID:yRp1LpZz.net]
ちゃんとエラー番号調べて処理すりゃ良いだろ



841 名前:デフォルトの名無しさん mailto:sage [2019/04/20(土) 18:00:15.98 ID:KuIF036/.net]
>>823
なんでセル
変数でいいじゃん

842 名前:デフォルトの名無しさん mailto:sage [2019/04/20(土) 19:12:25.83 ID:tWWHyzwg.net]
じゃあLeft Outer Joinで。

843 名前:デフォルトの名無しさん mailto:sage [2019/04/20(土) 19:43:05.64 ID:qwsd80fG.net]
>>807
・VlookupじゃなくてFindを使う
・事前にcountifとかエラー値が返らないもので存在確認してから使う
・worksheetfunctionの代わりにApplication.VLookupを使うと見つからなかった場合N/Aが返るが、旧バージョンの命令だからあまりおすすめしない

844 名前:デフォルトの名無しさん mailto:sage [2019/04/21(日) 10:03:39.80 ID:fPscZosh.net]
質問者は、もっと具体的に書くべきだな、対応方法は多種多様にあるから
質問に対するベストな回答が、質問者の意図するベストの回答とは限らん

845 名前:デフォルトの名無しさん mailto:sage [2019/04/21(日) 15:50:42.83 ID:4kO5c1T5.net]
もうね、On Error Resume Nextが嫌とか、宗教だと思うんですよ。

846 名前:デフォルトの名無しさん [2019/04/21(日) 15:59:22.44 ID:IGJB+uLA.net]
んて訳の分からん面倒なコードを書くとかキチってるよね

847 名前:デフォルトの名無しさん mailto:sage [2019/04/21(日) 16:03:59.70 ID:h3OWzsvU.net]
>>829
でも配列の次元すらOn Error 使わないと求められないってひどくないですか?

848 名前:デフォルトの名無しさん mailto:sage [2019/04/21(日) 16:50:25.73 ID:7jtZEDKn.net]
>>831
何も分かってないんだから大人しく使いなよ

849 名前:デフォルトの名無しさん mailto:sage [2019/04/21(日) 17:30:52.05 ID:fXlSQHRa.net]
>>832
ほう、じゃやり方を教えてくれよ

850 名前:デフォルトの名無しさん mailto:sage [2019/04/21(日) 17:35:25.49 ID:7jtZEDKn.net]
>>833

だから文句言わずにonerrorを使えば良いだけなんだが



851 名前:デフォルトの名無しさん mailto:sage [2019/04/21(日) 17:37:30.55 ID:VJZKP3mE.net]
>>831
お前の言ってることは結局、コ−ド書かないと動かないって酷くないですかってのと同じ。

852 名前:デフォルトの名無しさん mailto:sage [2019/04/21(日) 17:51:22.14 ID:fXlSQHRa.net]
>>834
アスペか?
配列の次元を取得するのにOn Errorを使うなどという事自体は酷い。これは事実だ。
それに対して「何も分かってない」とdisる以上、On Errorを使わない真っ当な方法があると解釈するのが当然のこと。

853 名前:デフォルトの名無しさん mailto:sage [2019/04/21(日) 18:06:20.94 ID:jEVddS48.net]
そこじゃないよ
vbaの酷い点はtrycatchが無い事

854 名前:デフォルトの名無しさん mailto:sage [2019/04/21(日) 18:15:35.13 ID:VJZKP3mE.net]
>>836
酷い?なぜ?
と言ってるんだろう。

855 名前:デフォルトの名無しさん mailto:sage [2019/04/21(日) 18:15:57.22 ID:hbj2KyMO.net]
客見ずにマウント取り合いってツルッパゲのする事 産毛すら無い

856 名前:デフォルトの名無しさん mailto:sage [2019/04/21(日) 18:16:48.81 ID:blm05+38.net]
>>835
流石にそれはないわ
VB.NETやC#は普通にプロパティあるし

857 名前:デフォルトの名無しさん mailto:sage [2019/04/21(日) 18:17:02.42 ID:VJZKP3mE.net]
>>837
書き方の問題じゃね?
実質同じことが出来るんじゃないの?

858 名前:デフォルトの名無しさん mailto:sage [2019/04/21(日) 18:19:22.95 ID:VJZKP3mE.net]
>>840
それはVBAに無いものをあげつらっているだけ。
VB.netやC#に無いものをあげつらうことも出来るだろ。

そもそも何が酷いのかサッパリ分からん。

859 名前:デフォルトの名無しさん mailto:sage [2019/04/21(日) 18:26:29.16 ID:fXlSQHRa.net]
On Error とか例外機構っていうのは、メモリ不足とかファイルの不在なんかのソフトウェア的には想定しづらい
例外的な事象に使うものなんだよ。
例えば「関数引数に対する事前条件がもし守られていなかったら」なんていう
ソフトウェア的に想定できるような事には例外を使うのべきじゃない。
ましてや配列の次元の取得なんてことに使うのは「ひどい」としか言いようがない。
それはセンスとかの問題じゃなくて常識だと思うよ。

860 名前:デフォルトの名無しさん mailto:sage [2019/04/21(日) 18:33:13.89 ID:VJZKP3mE.net]
>>843
で?
何が酷いの?



861 名前:デフォルトの名無しさん mailto:sage [2019/04/21(日) 18:33:17.05 ID:uW2zy1zl.net]
>>842
> そもそも何が酷いのかサッパリ分からん。
まじで言ってるの?

862 名前:デフォルトの名無しさん mailto:sage [2019/04/21(日) 18:35:05.76 ID:KjSHT9nF.net]
もともと有る機能を組み合わせて
目的の動作をするように作るしかない

863 名前:デフォルトの名無しさん mailto:sage [2019/04/21(日) 18:42:35.76 ID:vxMMLTMP.net]
>>845
そういう返しじゃなくて、教えてやれば

864 名前:デフォルトの名無しさん mailto:sage [2019/04/21(日) 18:47:06.02 ID:VJZKP3mE.net]
例えば昔仕事で扱ったWin32APIのGetPrinterでは取得するPinterInfo2構造体のサイズを0にして渡して敢えて失敗させることによって正しい構造体のサイズを取得するなんてのがある。
再度正しいサイズで実行するやり方が想定されていて、そして失敗時はdllエラーも当然発生するなんてのが有るわけなんだが。

確かDevmode構造体を取得するする時に使うDocumentPropertiesも同じような使い方してたと思う。

865 名前:デフォルトの名無しさん mailto:sage [2019/04/21(日) 18:48:35.29 ID:VJZKP3mE.net]
>>845
結局取得できる。
何も問題無い。

お前のオナニー以外は。

866 名前:デフォルトの名無しさん mailto:sage [2019/04/21(日) 18:48:56.55 ID:fXlSQHRa.net]
>>844
まず次元の取得方が標準で用意されていない点が少しひどい。
さらにそのワークアラウンドがOn Error利用である点が一層酷い。
わかる?
これでキミもバッチリだ。

867 名前:デフォルトの名無しさん mailto:sage [2019/04/21(日) 18:50:13.13 ID:VJZKP3mE.net]
>>847
>>832じゃねーから何も考えておらん。

868 名前:デフォルトの名無しさん mailto:sage [2019/04/21(日) 18:51:26.42 ID:VJZKP3mE.net]
>>850
だからそれは無いものをあげつらっているだけ。
どんな言語にもあることだ。

869 名前:デフォルトの名無しさん mailto:sage [2019/04/21(日) 19:11:57.22 ID:jEVddS48.net]
>>841
実質同じ事って言い出すと何でもアリになってしまう
onerrorしかないと可読性が大きく下がる

ところでEXCELで次元数を取得する機会って一度も無いんだけど、
よく使う計算なのか

870 名前:デフォルトの名無しさん mailto:sage [2019/04/21(日) 19:15:35.07 ID:sGJaU8ZR.net]
>>853
可読性が下がる???
書き方が悪いんじゃ無いの?

そんなこと感じたことも無い。



871 名前:デフォルトの名無しさん mailto:sage [2019/04/21(日) 19:17:57.47 ID:sGJaU8ZR.net]
>>853
多分、配列を初期化したかしてないかの話じゃないかと思うね。
UBoundでエラーが出る話だろう。
で、Sgnが嫌なんだろう。

872 名前:デフォルトの名無しさん mailto:sage [2019/04/21(日) 19:35:22.79 ID:uW2zy1zl.net]
>>848
それはちゃんとドキュメント化されてるだろ
On Errorで次元を取得するのとはレベルが違うよ
動けばいいと言うレベルのコーダーならいいのかも知れないけど

873 名前:デフォルトの名無しさん mailto:sage [2019/04/21(日) 19:54:31.81 ID:sGJaU8ZR.net]
>>856
何言ってるの?
On Errorしかないのが正式なら同じだし、
On Error以外に正式なものがあれば問題ないし、
同じことじゃねーかw
しかも後出ジャンケンかよw

結局言い掛かりもいいところだ。

874 名前:デフォルトの名無しさん mailto:sage [2019/04/21(日) 20:04:00.06 ID:fXlSQHRa.net]
On Error 以外に配列の次元取得方法がないと決まった訳じゃなくて、よく知られてる方法がOn Error利用だってだけだが、
割り切ってAPIを呼んでいる人もいる。

875 名前:デフォルトの名無しさん [2019/04/21(日) 20:08:00.46 ID:x8017e7/.net]
>>749
え、お前の会社って稟議書や経費精算の業務って全部署共通じゃないの?
その会社固有の業務だけど、部署間で使い回しの効く部分のことを言ってるんでしょ?

876 名前:デフォルトの名無しさん mailto:sage [2019/04/21(日) 20:13:12.66 ID:xKbBXXRb.net]
>>843
とりあえず構造化例外処理すらない時代の言語にいってもしょうがない話
常識は時代で変わるんだよ
結局はVBAは古い時代の言語ってだけ

あと、配列の次元が知りたいとか設計が悪いとしか思えん

877 名前:デフォルトの名無しさん mailto:sage [2019/04/21(日) 20:17:21.38 ID:uW2zy1zl.net]
>>857
はあ?
正式な方法がないって話だぞ
日本語理解できてないの?w

878 名前:デフォルトの名無しさん mailto:sage [2019/04/21(日) 20:28:15.67 ID:uW2zy1zl.net]
>>860
> あと、配列の次元が知りたいとか設計が悪いとしか思えん
君には不要というだけの話
他の言語では普通に多次元配列用のライブラリとかある

879 名前:デフォルトの名無しさん mailto:sage [2019/04/21(日) 20:32:45.02 ID:f/u4okxX.net]
次元数をライブラリに渡せばいいじゃん

880 名前:デフォルトの名無しさん mailto:sage [2019/04/21(日) 21:03:13.26 ID:fXlSQHRa.net]
>>863
それさ...
平気で言うやつがいるけどさ...
ありえなくない?



881 名前:デフォルトの名無しさん mailto:sage [2019/04/21(日) 21:04:52.40 ID:uW2zy1zl.net]
>>863
そうだよ
面倒かつバグの元だけどね

882 名前:デフォルトの名無しさん mailto:sage [2019/04/21(日) 21:27:51.81 ID:4kO5c1T5.net]
じゃあどうしてもOn Errorが嫌だとして、
他の方法が幾つか出てるんだから、それ試しなよ。

883 名前:デフォルトの名無しさん mailto:sage [2019/04/21(日) 21:47:12.89 ID:jEVddS48.net]
trycatheなら関数に封じ込める事ができるけど、
onerrrorはグローバルだから全体に影響してしまうのが最高に糞なんだ
正直、グローバルじゃなければ別にonerrorだろうとなんだろうと構わんのだよ

884 名前:デフォルトの名無しさん [2019/04/21(日) 22:30:28.20 ID:lDsGwf3y.net]
on errror が糞とかどうとかお前の趣味に合わせて出来てる訳じゃ無いんだよアホウ

885 名前:デフォルトの名無しさん mailto:sage [2019/04/21(日) 22:32:03.89 ID:fXlSQHRa.net]
>>866
君の言う通りだ
反発を受けてるのは「文句言わずにonerror使え」とか言い出した奴ですよ

ただ次元数をライブラリに渡せっていうのはナシだ

886 名前:デフォルトの名無しさん mailto:sage [2019/04/21(日) 22:38:29.04 ID:obRIwOLX.net]
うまく作れない奴が他人のせいにしたところで問題は解決しないのにな

887 名前:デフォルトの名無しさん mailto:sage [2019/04/21(日) 22:57:54.67 ID:sGJaU8ZR.net]
>>861
大いなる自己矛盾の中にいることに気付かないとはね。
論理的思考能力が無いならプログラムを組むのなんか辞めることだな。

888 名前:デフォルトの名無しさん [2019/04/21(日) 23:18:19.59 ID:FIa/C0XL.net]
ついに公務員の副業が解禁される時代が到来した
https://hybridstyle.net/side-job065/
フリーランス市場規模が20兆円を突破 -副業は8兆円-
https://hybridstyle.net/work-style020/
時代は週休3日制へ【週休3日制導入企業まとめ】
https://hybridstyle.net/work-style016/
会社員の副業が急増、副業フリーランス4年で3倍、経済規模は約8兆円??副業収入は平均74万円
https://www.businessinsider.jp/post-165077#cxrecs_s
本業のストレス解消、副業で月70万、転職のお試し…会社に内緒で副業する人たちの本音
https://www.businessinsider.jp/post-176835#cxrecs_s
どんな仕事でいくら稼いでいる? 副業をしている13人に聞いたそのリアル
https://www.businessinsider.jp/post-180772#cxrecs_s
会社が個人を縛り付ける時代は終わった。これからは、個人が仕事を求めて、チャンネルのように会社を切り替えていく。
https://www.wantedly.com/companies/newpeace/post_articles/65530
誰も教えてくれなかった「フリーランスは厳しい」ではなく「甘い」という真実。
https://www.wantedly.com/companies/newpeace/post_articles/54124
【特集】年収1000万円以上「フリーランスの流儀」vol.2
https://tabi-labo.com/286733/journey-six-figure-freelance-nathan
「排出物ゼロ、廃棄物ゼロ、貧困ゼロ」究極のエコ・リゾートがフィリピンに
https://tabi-labo.com/284193/nautilus-eco-resort
仕事は9割外注すれば売り上げが爆増する
https://headlines.yahoo.co.jp/article?a=20190416-00028392-president-bus_all

889 名前:デフォルトの名無しさん mailto:sage [2019/04/22(月) 04:52:26.38 ID:PMsDbBhF.net]
>>871
何を言いたいのさっぱりかわからんw
低能が反論できずに有耶無耶にしたいときによくやる方法だな

890 名前:デフォルトの名無しさん mailto:sage [2019/04/22(月) 08:27:33.91 ID:5Mb1x8/S.net]
>>867
on local error …
って書くだけじゃん。アホか。



891 名前:デフォルトの名無しさん mailto:sage [2019/04/22(月) 08:55:19.16 ID:aI1C8h9/.net]
>>867,.874
onlocalerrorってなんだ、初めて聞いたわ
そもそもon errorはグローバルじゃないぞ

Sub foo()
Call bar
a = 1 / 0 'ここでエラーになる

End Sub

Sub bar()
On Error Resume Next
a = 1 / 0 'エラーにならない
End Sub

892 名前:デフォルトの名無しさん mailto:sage [2019/04/22(月) 09:24:57.57 ID:J7q/uljF.net]
>>873
やっぱり分からんかw
お前はドキュメント化されていれば正式だと言ってる。
しかしそれは結局MSの判断ということだ。

お前はOn Errorが正式では無いという回答そ貰ったのか?
そうでなければお前の「正式な方法がないって話だぞ」というのはお前の決め付けだ。

結局お前の中には矛盾した2通りの正式が存在することになる。

893 名前:デフォルトの名無しさん mailto:sage [2019/04/22(月) 11:15:47.81 ID:5Mb1x8/S.net]
local付けると局所だと思ってたけど、配下に有効みたい。
つまり、付けても動作に変わりはない(?、詳細は試してない)

894 名前:デフォルトの名無しさん mailto:sage [2019/04/22(月) 11:20:03.08 ID:5Mb1x8/S.net]
昔試したときに、local有無で動作違ってたはずなんだけどな…
まあ、配下に有効だから、goto 0で無効にしてから callすれば局所化は可能かと

895 名前:デフォルトの名無しさん mailto:sage [2019/04/22(月) 11:24:44.90 ID:aI1C8h9/.net]
>>877
呼び出し先で親要素のon erroの状態が有効なのはもともとなので、使ってもあまり意味は無い気がする

on local もう廃止されたっぽい?MSDNにも無い
https://docs.microsoft.com/en-us/office/vba/language/reference/user-interface-help/on-error-statement#see-also

互換性のためにあるってブログ記事見つけたけど、かなり古い
https://www.papy.in/bbs/vb2/200401/04010015.html

なんやろね

896 名前:デフォルトの名無しさん mailto:sage [2019/04/22(月) 12:01:35.50 ID:16RvV/Xe.net]
俺も On error Goto でtry Catchと同程度のことができると思ってた
要するに書き方かなと思ったが1回目のエラーはいいがそれ以降が使えないじゃん?
ネストするにも無理があるな、複数の場所(例えば2重ループで)でのやり方があるかもしれんが
無理じゃない?
俺は「On error Goto」で出来ると思ってた、やり方があれば申し訳ないが教えてほしい

897 名前:デフォルトの名無しさん mailto:sage [2019/04/22(月) 12:11:57.97 ID:iJf9Bl/o.net]
エクセルで、複数ブックの特定文字列だけ一気に変えるマクロってどこかで紹介されてますか?

例えば2018年4月21

898 名前:ィ2019年4月23日に変える感じです

日付が入力されているセルがそれぞれのブックでバラバラなので、セル指定置換はできないようです
[]
[ここ壊れてます]

899 名前:デフォルトの名無しさん mailto:sage [2019/04/22(月) 12:22:36.94 ID:CZHT0AcU.net]
>>876
よほど多用されてるとかでない限りいちいち〇〇は正式じゃないなんて言う回答なんてするわけ無いだろ
レスが馬鹿すぎるw

900 名前:880 mailto:sage [2019/04/22(月) 12:24:36.91 ID:16RvV/Xe.net]
例えば
Private Sub CommandButton1_Click()
Dim ShNM
For i = 1 To 6
Sheets(1).Activate
ShNM = Range("A" & i).Value
On Error Resume Next
Sheets(ShNM).Activate
GoTo Kyoutuu
Nosheet:
Kyoutuu:
Next i
End Sub
この式は最初のシートを「Z」としそのA列の行1〜6に例えば「A」〜「F」まで書いて
シートを「Z」以外にシート名を「A」〜「F」までの内3つしか作ってないと、「.Activate」で2回エラーになるが1回目は意図した動作だが
2回目のエラーでメッセージボックスが出る
回避方法を教えてほしい



901 名前:デフォルトの名無しさん mailto:sage [2019/04/22(月) 12:30:37.21 ID:16RvV/Xe.net]
赤っ恥
On Error Resume Next
はこれなら大丈夫だが
On Error GoTo Nosheet
はNGって話です でもそれじゃあ書いてる意味がないので
結局
On Error Resume Next で次を考えるなかななの、一番使いたくないんだが

902 名前:デフォルトの名無しさん mailto:sage [2019/04/22(月) 12:39:43.58 ID:aI1C8h9/.net]
On Errorは全体に作用しすぎるから、isError的な感じでfunction分けた方が良いんじゃないか

903 名前:デフォルトの名無しさん mailto:sage [2019/04/22(月) 14:10:46.51 ID:5Mb1x8/S.net]
>>884
onerrorgotoをメインの処理の流れ制御には使わない方がいいと思う。

On Error Resume Nextは、次行にエラーがあると想定されるときに使い、If Err.Numberで判定して、その値によって処理を変える。

On Error GoTo は、どちらかというと、一つの処理(subやfunct…)の頭で宣言し、想定外のエラーを検知してエラーを出すのに使う。

904 名前:デフォルトの名無しさん mailto:sage [2019/04/22(月) 15:22:43.51 ID:16RvV/Xe.net]
>>886
ありがとう、他の言語も使ってるから勘違いしていた
対応することはもちろんできるし、Excelの環境を利用しながらの
プログラムは有効なので、仕方ないのであれば考えるは
考えてなかったのが、お恥ずかしい

905 名前:デフォルトの名無しさん mailto:sage [2019/04/22(月) 15:50:34.25 ID:NGsjV6Cl.net]
なんかアプデ来てからwebクエリのバグが起こって実行エラー 1004で読み込めないんだけど
俺だけ?

906 名前:デフォルトの名無しさん mailto:sage [2019/04/22(月) 16:12:16.31 ID:V9RXP3az.net]
>>888
エラーの意味ぐらい調べて書くよな

907 名前:デフォルトの名無しさん mailto:sage [2019/04/22(月) 16:30:51.55 ID:NGsjV6Cl.net]
>>889
「Webクエリによって返されるデータがありません」とか言われるけど
読み込み先のWebページみても仕様の変更とかURLの変更とか見られないし明らかにExcelアプデが原因っぽいんよなー

908 名前:デフォルトの名無しさん mailto:sage [2019/04/22(月) 19:03:03.55 ID:V9RXP3az.net]
>>890
もう一度、クエーリーを作成してもダメ?

909 名前:デフォルトの名無しさん mailto:sage [2019/04/22(月) 20:01:03.78 ID:L+SCE9UU.net]
>>881
どこで紹介されてるかは知らないが、1ファイルずつ中身検索して変更すればいい

910 名前:デフォルトの名無しさん mailto:sage [2019/04/22(月) 20:20:53.32 ID:TdnLJYYl.net]
>>883
シートの存在チェックをしないままActivateメソッドをコールしてるからエラーになるんだろ

Private Sub CommandButton1_Click()
Dim ShNM As String
For i = 1 To 6
Sheets(1).Activate
ShNM = Range("A" & i).Value
If SheetExists Then
Sheets(ShNM).Activate
Else
'Nosheetのラベルの箇所に書いていた処理
End If
'Kyoutuuの所に書いていた処理
Next i
End Sub

Function SheetExists(ByVal name As String) As Boolean
Dim sh As Worksheet
For Each sh In Sheets
If sh.name = name Then
SheetExists = True
Exit Function
End If
Next
SheetExists = False
End Function



911 名前:デフォルトの名無しさん mailto:sage [2019/04/22(月) 20:57:12.59 ID:J7q/uljF.net]
>>88

912 名前:2
何言ってんの?
回答するかしないかはどうでもいい。
お前が回答を貰って無い以上、不明ということだ。
つまり、「正式な方法が無い」などという発言は明らかに矛盾している。

もはや、「正式」という言葉をどう解釈するかという問題になって全くアホらしいが
、MSに方法が無いのかと問えば、何らかの回答をするだろう。
それを正式な方法と考えれば、日本語の解釈に固執するバカ以外は問題無いわけだ。
[]
[ここ壊れてます]

913 名前:デフォルトの名無しさん mailto:sage [2019/04/22(月) 21:03:25.39 ID:J7q/uljF.net]
>>886
基本的に同じ考え。
1つ付け加えると、On Error Resume Nextはエラー処理終わったらエラーをクリアしてすぐにOn Error Goto 〜とかに戻す。

914 名前:デフォルトの名無しさん mailto:sage [2019/04/22(月) 21:10:24.20 ID:aI1C8h9/.net]
>>895
vbaでエラー処理の状態って取得できる?
目視確認無しで、エラー処理の方法てすぐに戻せる?
よく考えたらこれ出来ない気がする

915 名前:デフォルトの名無しさん mailto:sage [2019/04/22(月) 21:15:19.55 ID:CZHT0AcU.net]
>>894
正式な方法があると言うなら出せよw
出せない時点でお前のレスは意味がない

916 名前:デフォルトの名無しさん mailto:sage [2019/04/22(月) 22:31:50.06 ID:GK5T9akg.net]
>>896
Err.Numberで良ければ。

917 名前:デフォルトの名無しさん mailto:sage [2019/04/22(月) 23:02:19.09 ID:aI1C8h9/.net]
>>898
あぁ、それは知ってるんだ・・・すまぬ
resume nextとgoto 0って判別できるんだろうか

918 名前:デフォルトの名無しさん [2019/04/23(火) 02:07:57.42 ID:0gP7mQx4.net]
Excel VBAの例外をあてにしたロジックは危険だよな。

919 名前:デフォルトの名無しさん [2019/04/23(火) 02:16:09.43 ID:0gP7mQx4.net]
On Error Resume Next

↑この構文そのものがわかりにくいんだよ。

920 名前:デフォルトの名無しさん mailto:sage [2019/04/23(火) 02:16:11.14 ID:qFaB3ONr.net]
一般論でね



921 名前:デフォルトの名無しさん [2019/04/23(火) 02:22:13.18 ID:0gP7mQx4.net]
オブジェクト操作でなんだかわからないがエラーが発生しても処理を続行するというのは独特。いかにもVBAの適当さが出ている。

922 名前:デフォルトの名無しさん [2019/04/23(火) 02:26:37.40 ID:0gP7mQx4.net]
VBAと関係ないがT-SQLも例外の事前定義がないから、トライ、キャッチ構文が役に立たない。

923 名前:デフォルトの名無しさん mailto:sage [2019/04/23(火) 03:09:34.52 ID:EzLBs57R.net]
>>903
Excel VBAのOn Errorは、これから出るエラーの種類や原因がわかった上で使う場合がほとんどだと思うぞ
事前に回避する処理を書くより、事後にエラー処理をした方が簡単な場合があるから

924 名前:デフォルトの名無しさん mailto:sage [2019/04/23(火) 03:53:37.76 ID:u9ChJCBc.net]
こんな時間まで残業か?

925 名前:デフォルトの名無しさん mailto:sage [2019/04/23(火) 08:14:21.83 ID:5pALgJfd.net]
>>897
完全に論理崩壊w
どうしてこんなバカがここにいるんだ?
正式な方法が無いなどと決めつけてるんだからお前がその根拠を示すべきだろ。

俺は何らかの正式な方法がある「だろう」と言ってる。
MSが出来ないなんて回答する筈が無いからな。
実際少なくともOn Error使って出来るわけだ。
MSが出来ないと回答しなければそれが正式な方法だ。

926 名前:デフォルトの名無しさん mailto:sage [2019/04/23(火) 08:21:09.21 ID:fXkN/03K.net]
>>895
便乗で付け加えると、局所的に onerrorgoto使って、エラーリカバリーしてresumeで処理継続できる。
これ知ったときめちゃ便利やんと思ったし、出番もあったはずだが、ほとんど使ったことない。

927 名前:デフォルトの名無しさん mailto:sage [2019/04/23(火) 12:25:16.87 ID:on29KSlM.net]
>>907
そんなこと言うならPinterInfo2構造体のサイズを取得するのはGetPrinter()しかないことをMSに確認したのか?
って>>848に言ってやれよw

928 名前:デフォルトの名無しさん mailto:sage [2019/04/23(火) 12:34:34.45 ID:5pALgJfd.net]
>>909
???
エラーを起こすことを想定した処理をMS自身が提示していて、しかも一般的に普通に使われていて(俺のまわり And Web等)、それに対して問題だなどと思わんから確認する必要など全く無いわけだが。

論理って知ってますかw

929 名前:デフォルトの名無しさん mailto:sage [2019/04/23(火) 14:31:53.86 ID:on29KSlM.net]
>>910
もっといい方法があるかもよ?
向上心がないんだなw

930 名前:デフォルトの名無しさん mailto:sage [2019/04/23(火) 14:40:46.46 ID:fLrj/T67.net]
MS自身が提示している方法ではないそれこそ正式じゃないよな



931 名前:デフォルトの名無しさん mailto:sage [2019/04/23(火) 15:08: ]
[ここ壊れてます]

932 名前:34.48 ID:boxB5do4.net mailto: >>911
すまない、恥をかいてお願いする
もっといい方法や、向上心のある方法を教えてくれ
[]
[ここ壊れてます]

933 名前:デフォルトの名無しさん mailto:sage [2019/04/23(火) 15:13:06.76 ID:hEv4vVm+.net]
聞いたところでどうせVBA以外の環境を使えとしか言えないんだろ

934 名前:デフォルトの名無しさん mailto:sage [2019/04/23(火) 15:25:33.99 ID:TO9xpynT.net]
明日からVBAエキスパートの試験が変わるっていうから、今日駆け込みで受けてきた
……資格スレどこ行ったんですか?

935 名前:デフォルトの名無しさん mailto:sage [2019/04/23(火) 15:26:45.52 ID:mws1yUQf.net]
なんだかよくわからんがPinterInfo2構造体とやらのサイズ取得にエラーを利用する方法をMSがサンプルとして(?)あげているけど
配列の次元取得に対してはそういうものがないって話なのか?

で、どうした?

936 名前:デフォルトの名無しさん mailto:sage [2019/04/23(火) 16:17:47.24 ID:wF2jTWiQ.net]
>>891
もう一度最初から新しいクエリを作成したらいけた
んー原因不明のまま更新するの怖いなー

937 名前:デフォルトの名無しさん mailto:sage [2019/04/23(火) 16:54:40.88 ID:on29KSlM.net]
>>913
MSに確認すればいいんだろw

938 名前:デフォルトの名無しさん mailto:sage [2019/04/23(火) 17:38:22.83 ID:bpSzJrYS.net]
>>911
かもよ ってことならいくらでも書ける

939 名前:デフォルトの名無しさん mailto:sage [2019/04/23(火) 17:42:29.14 ID:bpSzJrYS.net]
質問スレで聞けば教えてくれるかもよ?
MSにきけば教えてくれるかもよ?
何もしなくても問題ないかもよ?

940 名前:デフォルトの名無しさん mailto:sage [2019/04/23(火) 17:57:47.79 ID:on29KSlM.net]
On Errorでやるのが正式かもよ?

ってかw



941 名前:デフォルトの名無しさん [2019/04/23(火) 18:23:31.46 ID:y9L+A8C2.net]
結果が同じなら中身なんて気にするな
そんなに突き詰める程の言語じゃないだろ
サッサと次の仕事しろ

942 名前:デフォルトの名無しさん mailto:sage [2019/04/23(火) 20:31:07.64 ID:5pALgJfd.net]
>>911
論理が分からないからそういう反応するわけだw

あのね、俺はOn Error使って問題無いの。
A1セルに1を入れるのにRange("A1").Value=1よりもっと良い方法があるかMSに確認するバカとは違う。

943 名前:デフォルトの名無しさん mailto:sage [2019/04/23(火) 21:09:25.94 ID:on29KSlM.net]
>>923
向上心がないとバカのままだよ?w
もう手遅れかもしれないけど…

944 名前:デフォルトの名無しさん mailto:sage [2019/04/23(火) 21:11:15.50 ID:N4h0Xljy.net]
人それぞれ行きたい方角というものがあるんだ

945 名前:デフォルトの名無しさん mailto:sage [2019/04/23(火) 21:12:44.73 ID:WJhFrHSS.net]
自分はバカじゃないと思ってる?

946 名前:デフォルトの名無しさん mailto:sage [2019/04/23(火) 21:15:33.87 ID:N4h0Xljy.net]
怪しげな自己啓発のセールストークみたいな問答しやがって
死ね

947 名前:デフォルトの名無しさん [2019/04/23(火) 21:41:15.46 ID:0gP7mQx4.net]
Excel VBAには定義エラーが明示されていないから仕方ないね。

仕様が明確に公表されていないから、全体としてはエラーハンドリングは何かエラーが発生したら、止めるような方針になってしまうのはあたりまえ。

948 名前:デフォルトの名無しさん mailto:sage [2019/04/23(火) 22:04:24.18 ID:zhMneqp1.net]
お前らまだOn Error Goto と On Error Resume Next で争ってるのかよ?
俺が昔、あれだけ説明してやったのにw
どちらも Goto とは全く関係ないもので使用して良い

On Error Gotoはtry-catchと違ってネストができないので使いづらくは有るが、
try-catchとOn Error Gotoは本質的に同じもの
例外が発生したら後半部分(catch相当)にジャンプする

On Error Resume Next は 例外が発生したときにジャンプするのではなく
次の行に行くことで例外を使わない戻り値によるエラーと似たような書き方ができるもの
書き方が違うだけでどちらも大差ない

On Error Goto も On Error Resume Next も基本は
例外が発生したら、Err.Numberなどで判定してリカバリ処理を行う

そんだけだろうが

949 名前:デフォルトの名無しさん mailto:sage [2019/04/24(水) 08:06:50.84 ID:XjMFaq8o.net]
>>924
俺はそんな暇人じゃ無いんでね。
もっと有意義な探求をしてる。

お前は一生Range("A1").Value=1よりもっと良い方法を探求してくれwww

950 名前:デフォルトの名無しさん mailto:sage [2019/04/24(水) 08:15:59.12 ID:fPgUISCk.net]
>>930
> 俺はそんな暇人じゃ無いんでね。
そうなんだ、5chでバカを晒す暇はあるのにねw

> お前は一生Range("A1").Value=1よりもっと良い方法を探求してくれwww
まさかと思うけど
> もっといい方法があるかもよ?
が皮肉だと言うことに気づいてないのか?



951 名前:デフォルトの名無しさん mailto:sage [2019/04/24(水) 08:40:38.65 ID:XjMFaq8o.net]
>>931
ほう、お前はコード書く以外のことはしないというわけかw
俺は完全に手遅れを晒すバカとは違う。

皮肉?
日本語も分からないようだw

952 名前:デフォルトの名無しさん mailto:sage [2019/04/24(水) 08:43:32.78 ID:jAXSwib1.net]
vbaに向上心も何もないだろう
EXCELの追加機能なんだから全体のルーチン見直したほうがよほど生産性たかまる

953 名前:デフォルトの名無しさん mailto:sage [2019/04/24(水) 08:45:38.52 ID:fPgUISCk.net]
>>932
> ほう、お前はコード書く以外のことはしないというわけかw
お前は一日中コードしか書かないバカコーダーかよw

> 日本語も分からないようだw
皮肉すらわかってないのか…
向上心がないとこうなるんだな、ちょっと可哀想

954 名前:デフォルトの名無しさん mailto:sage [2019/04/24(水) 08:49:07.09 ID:XjMFaq8o.net]
自己矛盾という指摘に対して反論出来なくて悔しいのかもしれんが、本論からずれた発言を繰り返してもバカを晒すだけだぞw

955 名前:デフォルトの名無しさん mailto:sage [2019/04/24(水) 08:51:56.98 ID:XjMFaq8o.net]
>>934
www
そうだねえw
つまりアホな探求する程暇人じゃ無いけど5chに書き込む暇はあるよねえ。

バカ以外はそんなこと最初から分かる筈なんだがw

956 名前:デフォルトの名無しさん mailto:sage [2019/04/24(水) 08:59:28.69 ID:4FmAPp0L.net]
「 ほう、お前はコード書く以外のことはしないというわけかw」
←こういうのが皮肉なんだがw

957 名前:デフォルトの名無しさん mailto:sage [2019/04/24(水) 09:10:27.69 ID:4FmAPp0L.net]
しかし>>932に対しての>>934の返しw
論理性皆無だなw

どうして俺が1日中コード書く人間になるのかね。

958 名前:デフォルトの名無しさん mailto:sage [2019/04/24(水) 09:18:52.68 ID:2kOBrVmZ.net]
本人が何を言おうと草が多いほど知能が低いってみんな知ってるんだよねwwwww
行末wはNG設定しとけwwwwwww

959 名前:デフォルトの名無しさん [2019/04/24(水) 10:54:38.05 ID:xjn5dw9t.net]
>>929
そんな事は当然知っとるわ
今更そんな当たり前の事を知ったかで出しゃばるな
ダセー奴だな

960 名前:デフォルトの名無しさん mailto:sage [2019/04/24(水) 12:24:55.92 ID:AiHhhuXg.net]
>>935
> 反論出来なくて悔しいのかもしれんが、本論からずれた発言を繰り返してもバカを晒すだけだぞw
なんだ自分のことはよくわかってるじゃないかw
あと一日中コード書くとか言い出したアホは>>932
皮肉とか言い出してるけど、皮肉にしても頓珍漢すぎる



961 名前:デフォルトの名無しさん mailto:sage [2019/04/24(水) 12:48:12.72 ID:4FmAPp0L.net]
>>941
悪かったわw
論理が分からないアホには丁寧に説明しなきゃならんのだな。

俺は1日中コードを書く人じゃないんで
5chに書き込む時間は有るけど、>>930を受けて「5chでバカを晒す暇はあるのにねw」等と書く君は俺が5chに書き込む時間があると想像すらできないような人、つまり君自身は1日中コードを書いているような人なのかい?という問い掛けが>>932なわけだがw

>>932でどうして君じゃなくて俺が1日中コードを書く人になるのか全く理解に苦しむねw

962 名前:デフォルトの名無しさん mailto:sage [2019/04/24(水) 12:49:32.77 ID:4FmAPp0L.net]
「すげえなあ、君は1日中コード書くような人なんだね。」という皮肉w

963 名前:デフォルトの名無しさん mailto:sage [2019/04/24(水) 12:55:05.70 ID:Hk6Djwjj.net]
一日中コード?
書けばいいじゃない

964 名前:デフォルトの名無しさん mailto:sage [2019/04/24(水) 15:35:02.84 ID:AiHhhuXg.net]
そもそもドキュメントとか仕様についてMSに確認する話がいつの間にか一日中コード書くとかの話になってる
って言うのが頓珍漢だって言うのに>>942みたいな的外れの解説を必死にされてもどんだけ暇なんだよ?
としか思わんよww

965 名前:デフォルトの名無しさん mailto:sage [2019/04/24(水) 15:37:00.60 ID:4mp6v/QI.net]
コード書く仕事したいがどこも雇ってくれん。
国立の数学の院卒でもね。
歳喰ってから出たやつは価値なしとか。
同期の若い奴らは日立、富士通…のSE待遇で雇用。

966 名前:デフォルトの名無しさん mailto:sage [2019/04/24(水) 15:41:10.26 ID:WpJ9G5Zs.net]
>>946
そりゃおめぇ、vbaのスレなんかにおったらアカンで

967 名前:デフォルトの名無しさん mailto:sage [2019/04/24(水) 16:05:56.23 ID:7SMJ1lAg.net]
>>946
院まで出てコード書きたいのが優先というのがまずおかしい
院出て SEなんて、せっかくの知識を活かせるとこは殆どないと思う


968 名前:(たまたま数学を活かせるとこ担当するかもだが)

日立なら中央研究所(今呼び方違うかもしれん)に行け。内容によっては実証コードも書く
数学の知識使って、世の中にないものを生み出せ
[]
[ここ壊れてます]

969 名前:デフォルトの名無しさん mailto:sage [2019/04/24(水) 17:26:40.04 ID:Hk6Djwjj.net]
エリートがコードを書くようにならないといけないと思うよ
ただし受託開発じゃダメだけど

970 名前:デフォルトの名無しさん mailto:sage [2019/04/24(水) 19:17:49.34 ID:AiHhhuXg.net]
>>946
> …のSE待遇で雇用。
羨むべきかかなり微妙じゃね?



971 名前:デフォルトの名無しさん mailto:sage [2019/04/24(水) 20:16:13.05 ID:qtAM+Ue+.net]
そもそもexcel vba スレでいうことじゃない

972 名前:デフォルトの名無しさん mailto:sage [2019/04/24(水) 20:20:45.69 ID:4FmAPp0L.net]
>>945
???
MSに確認する話は>>923に対して君が反論出来ない状態にあるから、もう終わったものという認識だが。

君にとっては君の主張である「On Errorは正式では無い」はMSに確認していないから不明ということで自己矛盾。

俺にとってはOn Errorが正式なものでは無いとしても、どっちにしろ正式な方法はあるだろうだろうから「VBAには正式な方法が無い」という君の主張は根拠がないという俺の主張は何ら覆されていない。

そして、俺にとってはOn Errorが正式なものだろうがそうで無かろうが問題とは思っていないのでMSに確認する必要は全く無い。

しかし、君にとっては自らの主張を通すためには君がMSに確認して、しかも「方法は無い。」という回答を引き出す必要がある。

973 名前:デフォルトの名無しさん mailto:sage [2019/04/24(水) 20:56:08.64 ID:AiHhhuXg.net]
まだやるのかよw
ならお前はまず
>>857
> On Errorしかないのが正式なら同じだし、
> On Error以外に正式なものがあれば問題ないし、
のいずれかが正しいこと示せ
もちろんMSの正式な回答付きでな

974 名前:デフォルトの名無しさん mailto:sage [2019/04/24(水) 21:04:13.97 ID:4FmAPp0L.net]
>>953
www
ここまでバカかよ。

俺は示す必要無いの。
確認する必要もない。

君は示す必要が有るの。
確認する必要もある。

主張する立場の違いと、対偶と逆は違うということを勉強しておいでw

975 名前:デフォルトの名無しさん mailto:sage [2019/04/24(水) 21:12:12.35 ID:4FmAPp0L.net]
ついでに言っとくと、君の「正式な方法が無い」なんて主張には全く説得力が無いが、エラーを想定した処理を例に挙げたのもそうだし、どう見てもバグとしか思えない挙動を仕様とするMSが「方法が無い」などと回答するとは思えないというのは、説得力が有ると思うがねw

976 名前:デフォルトの名無しさん mailto:sage [2019/04/24(水) 21:13:28.54 ID:gVrMWpFh.net]
>>954
なら>>857の主張は取り下げるのね
あと、対偶とか関係ないからw

977 名前:デフォルトの名無しさん mailto:sage [2019/04/24(水) 21:16:05.71 ID:gVrMWpFh.net]
>>955
何を言いたいのか意味不明
追い詰められて饒舌になるのは低能によくある行動だけどな

978 名前:デフォルトの名無しさん mailto:sage [2019/04/24(水) 21:48:10.11 ID:4FmAPp0L.net]
ああ、バカはやっぱりバカなんだなあw

今の議論は以下の図式と同じなんだよw
君「これからサイコロをふると必ず6が出る」
俺「君の主張はおかしい」

君は必ず6が出るということを理論的に示さない限り君の主張は通らない。
一方、俺は仮に必ず6が出るということが理論的に示されても問題ない。
理論的に示せていない君の最初の主張をおかしいと言っているのだから。

君がMSから「方法は無い」という回答を勝ち取っても君が自己矛盾に陥っていたという事実は変わらん。
が、そのときはVBAには正式な方法が無いというのを認めてやろう。
これが1点目。

2点目は、確かに俺は少なくとも何らかの方法があるだろうと言っている。
しかし「だろう」だし、その根拠も示している。
それに対して君は何ら反論出来ない状態だ。
つまり、君は反論するための行動を取る必要がある。
俺は君の反論待ちだ。

979 名前:デフォルトの名無しさん mailto:sage [2019/04/24(水) 21:52:08.42 ID:4FmAPp0L.net]
相手の主張を否定する立場は、自らの何かを正しいとか調べる必要は無い。
相手の主張の問題点を指摘するだけで良いんだね。

これが主張する立場の違いだ。

980 名前:デフォルトの名無しさん mailto:sage [2019/04/24(水) 22:33:24.12 ID:T4E+V4Ad.net]
そろそろスレタイ読め



981 名前:デフォルトの名無しさん mailto:sage [2019/04/24(水) 22:42:50.19 ID:X5cQ+cuT.net]
VBAマウンティングスレ

982 名前:デフォルトの名無しさん mailto:sage [2019/04/24(水) 22:48:06.43 ID:fyMS/8EK.net]
>>950
だよね〜。
日本企業のSEなんて、羨むような仕事にありつけることは稀だと思うし、何十年もやりたいことを続けられることは

983 名前:ワずない
実力あるなら、googleとかも候補だよね。MSは微妙か…
英語いけるなら
[]
[ここ壊れてます]

984 名前:デフォルトの名無しさん mailto:sage [2019/04/24(水) 23:02:08.32 ID:gVrMWpFh.net]
>>959
人に主張の根拠を要求するならお前も指摘の根拠を出せって話な
否定だからいいとか頭湧いてるのかよw

985 名前:デフォルトの名無しさん mailto:sage [2019/04/25(木) 00:13:02.93 ID:Pdp8IhI8.net]
今どっちが優勢?

986 名前:デフォルトの名無しさん mailto:sage [2019/04/25(木) 06:43:25.12 ID:pQMWPhoY.net]
劣勢の奴は長文かつ連投することが多い

987 名前:デフォルトの名無しさん mailto:sage [2019/04/25(木) 08:07:17.87 ID:dOIT7JQu.net]
>>963
だから根拠は出してるし、君の反論待ちなんだがw

根拠は2つも出してるぞ。

988 名前:デフォルトの名無しさん mailto:sage [2019/04/25(木) 08:08:30.25 ID:dOIT7JQu.net]
>>963
君の主張の問題点を指摘し、君が反論出来ないんだから仕方無いだろw

989 名前:デフォルトの名無しさん mailto:sage [2019/04/25(木) 08:11:46.50 ID:pQMWPhoY.net]
>>966
> だから根拠は出してるし、君の反論待ちなんだがw
> 根拠は2つも出してるぞ。
具体的にレス番示して引用してみw

>>967
言ったはなから連投ww

990 名前:デフォルトの名無しさん mailto:sage [2019/04/25(木) 08:19:58.06 ID:dOIT7JQu.net]
>>968
何でバカにそんな親切なことをしなきゃならんのか分からねえが、以下2つが根拠だ。

>>848
>>894

これに対してのお前の反論は全く意味の無い反論だ。



991 名前:デフォルトの名無しさん mailto:sage [2019/04/25(木) 08:21:47.33 ID:dOIT7JQu.net]
あと、お前が自己矛盾に陥っている点についても、お前の反論待ちなw

確定してないのに根拠もなく正式な方法が無いなどと言ってたんだからなw

992 名前:デフォルトの名無しさん mailto:sage [2019/04/25(木) 09:31:53.90 ID:pQMWPhoY.net]
>>969
なんの根拠を書いてるんだよ…
お前が書くのは
> On Errorしかないのが正式なら同じだし、
> On Error以外に正式なものがあれば問題ないし、
のいずれかが正しいことの根拠な
>>848は次元数の取得の話じゃないし>>894に至ってはお前の妄想じゃねーかw

念の為にもう一度書いとく
>> 人に主張の根拠を要求するならお前も指摘の根拠を出せって話な
できないなら黙っとけ

>>970
確定してないという根拠を出せよw

993 名前:デフォルトの名無しさん mailto:sage [2019/04/25(木) 12:41:24.32 ID:puUPLNP6.net]
うるせえ、他所でやれ

994 名前:デフォルトの名無しさん mailto:sage [2019/04/25(木) 12:42:06.81 ID:dOIT7JQu.net]
>>971
バーカw

問題が分かってねーみたいだから君の自己矛盾の話からいこう。

君は「正式な方法が無い」と言っているが確認していないので実際は正式な方法があるか無いか分からないという状態だ。
従って「正式な方法が無い」は間違い。
つまり確認するまでもなく君は間違ってる。

俺の主張は君の理論には間違いがあるというものだから確認する必要はない。
自己矛盾の話においては俺は正式な方法が有るなどとさえ言っていない。

自己矛盾の話とは別に「正式な方法が有るだろう」とは言ってるが、まずは自己矛盾の話を解決してからだ。
本当は一度に解決したいがアホが問題点をきちんと把握してないからしようがない。

995 名前:デフォルトの名無しさん mailto:sage [2019/04/25(木) 12:50:41.21 ID:dOIT7JQu.net]
確定してないという根拠w

確定した根拠を示さなければ確定してないということだろw
何言ってんだ?

逆の立場だったらどうなる?

「On Errorが正式な方法だ」
「その根拠は?」
「正式ではない根拠は?」

これでOn Errorが正式な方法だという結論になると思ってるなら笑えるわw

996 名前:デフォルトの名無しさん mailto:sage [2019/04/25(木) 12:54:24.13 ID:QfWIraMG.net]
ifで#N/Aのエラーが入っていなければ処理したいのですが、どう書いたらいいですか?

997 名前:デフォルトの名無しさん mailto:sage [2019/04/25(木) 12:58:06.37 ID:ziGJbyMZ.net]
>>975
>>810

998 名前:デフォルトの名無しさん mailto:sage [2019/04/25(木) 15:23:40.14 ID:LEVSkzzI.net]
質問です。
あるセルに表示は日付設定で日付を入力すると
その範囲でSQLを呼んでデータを抽出するのですが
一台の端末だけ日付を例えば2019/04/25と入れると
値が2019/04/25(木)と変換されてしまいます。
50台以上ある端末で1台だけの現象ですが原因がわかりません。どのような原因がありえますか?

999 名前:デフォルトの名無しさん mailto:sage [2019/04/25(木) 15:35:21.42 ID:ziGJbyMZ.net]
>>977
最初からセルの書式設定が入力されている。全体ではなく一行目だけどかも見たほうが夜い
ロケールも影響するかもしれない

1000 名前:デフォルトの名無しさん mailto:sage [2019/04/25(木) 16:33:36.86 ID:pQMWPhoY.net]
>>973-974
何をごちゃごちゃ言ってるんだよw
人に根拠を要求するなら>>857の根拠出せよって話
簡単なんだろ?
早くしろよw



1001 名前:デフォルトの名無しさん mailto:sage [2019/04/25(木) 16:36:57.29 ID:JQUg69I8.net]
どこで簡単だって言ってる?

1002 名前:デフォルトの名無しさん mailto:sage [2019/04/25(木) 18:46:43.13 ID:vKKospK1.net]
>>977
一般的に、表示(書式)に影響されてはいけない
値を取得して、都合いいように変換して使う
Text(だっけ?)ではなくValueを使う

1003 名前:デフォルトの名無しさん mailto:sage [2019/04/25(木) 19:13:09.24 ID:pQMWPhoY.net]
>>980
言ってないよ、俺の想像
てかまだそういうツッコミしかできないのか?w

1004 名前:デフォルトの名無しさん mailto:sage [2019/04/25(木) 19:45:00.57 ID:rni/4bMj.net]
>>982
まだっておれに言うな

1005 名前:デフォルトの名無しさん mailto:sage [2019/04/25(木) 19:53:55.34 ID:pQMWPhoY.net]
>>983
お前が誰か知らんけどここまでの流れ見てて「まだ」>>980みたいなこと言ってる奴もちょっとおかしいだろw

1006 名前:デフォルトの名無しさん [2019/04/25(木) 21:12:34.41 ID:jFTtrwgp.net]
>>977
そのPCのExcelの設定だろうな。

何を考えてやっているか知らないけど、Excelのセルの書式は文字列にしておいた方が無難。

だいたい見た目を気にしている理由を聞きたい。

1007 名前:デフォルトの名無しさん mailto:sage [2019/04/25(木) 21:20:54.83 ID:8JRUryOU.net]
>Excelのセルの書式は文字列にしておいた方が無難。
さすがにそれはないw
標準で良い

1008 名前:デフォルトの名無しさん [2019/04/25(木) 21:29:32.34 ID:jFTtrwgp.net]
>>986
それはあなたが想定している使い方の場合でしょ。

質問しているひとはSQLにも触れている。Excelを中心に考えると面倒なことになるよ。

1009 名前:デフォルトの名無しさん mailto:sage [2019/04/25(木) 21:30:23.12 ID:d4EHBTwA.net]
>>975
If 調べたいやつ = cvErr(xlErrNA) then

1010 名前:デフォルトの名無しさん mailto:sage [2019/04/25(木) 21:45:13.02 ID:dOIT7JQu.net]
>>979
ごちゃごちゃwwwwwwwwwwwwwww
ワロタwww

反論出来なくて顔真っ赤ってか?

お前が根拠を示せないことが俺の根拠なんだよw



1011 名前: mailto:sage [2019/04/25(木) 21:50:10.00 ID:6xUIrXDu.net]
on error goto とか N-BASIC にもあったくらいだし、何をいまさら、という感じがします

1012 名前:デフォルトの名無しさん [2019/04/25(木) 21:59:43.27 ID:jqthfa4A.net]
>>990
そのエラーがなんなのかチェックせずに、ひとくくりにして処理を続行させる構文が存在するから議論になっている。

1013 名前:デフォルトの名無しさん mailto:sage [2019/04/25(木) 22:00:36.61 ID:9BEcl4fV.net]
SQLのBETWEEN句に日付を渡すんだったらセルの書式設定なんて関係ないでしょう
>>981の言う通り

1014 名前:デフォルトの名無しさん mailto:sage [2019/04/25(木) 22:09:01.00 ID:dOIT7JQu.net]
>>991
違うよ。
そのエラーが何なのか調べないなんて論外。
だけどエラー処理を通常処理に使うのはダメだっつう主張だったからMSだって正式な処理としてやってる話を突っ込んだら、おかしなことを言い出して、ここまで続いてる。

1015 名前:デフォルトの名無しさん [2019/04/25(木) 22:15:06.85 ID:jqthfa4A.net]
>>993
それは違う。マイクロソフトの説明では特定の操作時はこのエラーしか発生しないと決めつてエラー構文を使えと言ってしまっている。

1016 名前:デフォルトの名無しさん mailto:sage [2019/04/25(木) 22:17:18.85 ID:JpEf0ZAX.net]
>>987
具体的なことが書いてなくてよくわからない

>あなたが想定している使い方
どんな使い方だと考えてる?

SQLで使うとき、標準ではなく文字列にする理由は?

>面倒なことになる
どんな面倒なことになるのでしょう?

1017 名前:デフォルトの名無しさん [2019/04/25(木) 22:19:53.24 ID:jqthfa4A.net]
Excel VBAのスレでは話が噛み合わないと思う。

1018 名前:デフォルトの名無しさん mailto:sage [2019/04/25(木) 23:00:39.46 ID:TOmG9Zzp.net]
アホくさいけど、エラーが出ないようにVLOOKUPする簡単なやり方がある。
最初に、検索値をそのまま検索される方のシートにコピペしちゃうの。
本当にアホ臭いけど。

1019 名前:デフォルトの名無しさん [2019/04/25(木) 23:15:13.01 ID:AISkc2sG.net]
>>997
おっさん、それじゃ値が二つできてしまう

1020 名前:デフォルトの名無しさん mailto:sage [2019/04/25(木) 23:18:18.99 ID:jZ4+eHeJ.net]
>>989
で、
> 人に根拠を要求するなら>>857の根拠出せよって話
には触れないのか?w



1021 名前:デフォルトの名無しさん mailto:sage [2019/04/25(木) 23:21:34.08 ID:jZ4+eHeJ.net]
>>993
もう論点無茶苦茶じゃんw

1022 名前:1001 [Over 1000 Thread.net]
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 40日 2時間 42分 25秒

1023 名前:過去ログ ★ [[過去ログ]]
■ このスレッドは過去ログ倉庫に格納されています






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<292KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef