板検索:
Excel VBA 質問スレ Part37 (1025)
まとめビュー
最新スレッド候補が見つかりました
Excel VBA 質問スレ Part48 (995) スレ作成日時:2017/05/16 08:24:45
 ▼もっと見る
過去ログ Excel VBA 質問スレ Part48 (995) 2017/05/16 08:24〜
過去ログ Excel VBA 質問スレ Part47 (1007) 2017/03/15 15:04〜
過去ログ Excel VBA 質問スレ Part46 (1000) 2017/02/17 23:42〜
1
デフォルトの名無しさん[]   投稿日:2015/01/10 07:06:30  ID:2VZ4g5kC.net
ExcelのVBAに関する質問スレです

                   ___
       ___      /____ヽ      ____
      /____\    | |´・ω・`| |    /___ヽ
      .l |´・ω・`|  ニX二 . ̄ ̄ ̄  二X二  |´・ω・`| l 俺たちに任せろ
      !、 ̄ ̄ ̄  ヽ   |       |    /    ̄ ̄ ̄/
       ヽ_/ヽ、  ヽ__)  \__/\_/.   /_/  ノヽ_/
             ̄                ̄ ̄

このスレはコード書き込みOKです。
作成依頼もOKですが、作成依頼限定ではありません。

コードが嫌な人は別スレ建ててください。

※前スレ
Excel VBA 質問スレ Part36 [転載禁止]©2ch.net・
Excel VBA 質問スレ Part36

※頭のレスの方でキチガイが束縛テンプレを貼る詐欺行為が前スレまで散見されましたので、十分にご注意ください。
コメント1件


2
デフォルトの名無しさん[sage]   投稿日:2015/01/13 14:17:34  ID:l9CvqMDc.net
四十年勤め上げた會社を退職し早二十年、何やら張り合いの無い日々を送る内、大學生の孫に「退屈しのぎに遣って見たまへ」と勸められた弐チヤンネル。
當初は「こんな電腦掲示板、何たる幼稚加減」と莫迦にしてゐたものの、遣つて見ると存外に面白ひ。
華やかな色彩の髪と目を持つうら若き乙女に「ゆとり乙」と何度と無く罵られるにつけ、食ふや食はずやで慌しく過ぎ去つた學生時代が自ずと思ひ返され、「戰爭さえ無ければ、小生もこのやうな青春が送れたやも知れぬ」と獨りごちることも屡々。
すつかり虜となつた今では、孫の部屋から白銀色の電腦計算機をせしめては書齋に篭もり存分に「祭り」を堪能する毎日を送つている。
「小四女兒遺棄事件」なるスレツドを拜讀した際には、その餘りに不憫な境遇と過酷な運命に落涙し、臺所で葱を刻む家内に「かような理不盡が許されていいものか!」と熱辯を振るって呆れられる始末。年甲斐もない、とはこのことと後で赤面することしきり。
下手の横好きとはいえ「繼續は力なり」の言葉通り、最近ではブラクラの回避やコピペの管理にも慣れ、「好きこそものの上手なれ」を座右の銘として弐ゲツトに勵んでいる。
同年代の友人達が癡呆や重い病に惱まされるなか、老いて尚矍鑠としてオフ會に向かえるのも、ひとえに弐チヤンネルのおかげかと思えば、再三に渡る「半年ROMつてろ」の罵り文句も、何やら「まだまだ死ぬには早いよ」と言われているようで愉快極まりない。
ひとつ間違えれば自らが乗り込んでいた機體と同じ名前を持つコテハンに出會える日を樂しみにしつつ、今日もデスプレヱに向かう。
それでは、弐ゲツト。

3
デフォルトの名無しさん[sage]   投稿日:2015/01/13 20:21:25  ID:GlIqiIHJ.net
しかしこいつが荒らしでなかったとしたらずっと教えて君でへばりついてることになるが
どんだけ頭悪いんだよ

4
デフォルトの名無しさん[sage]   投稿日:2015/01/24 16:23:21  ID:xRwObAQk.net
はいざんねーん

Excel VBA 質問スレ Part36 [転載禁止]©2ch.net
Excel VBA 質問スレ Part36

5
デフォルトの名無しさん[sage]   投稿日:2015/04/01 20:00:11  ID:/egDYYol.net
ここプログラマ:非プログラマは1:2位かな?
コメント1件

6
デフォルトの名無しさん[sage]   投稿日:2015/04/01 21:50:18  ID:by1Nk6ea.net
>5
前スレで、ここ使っておけばいいんじゃない?とか言っといて何なんだけど、まだ未消化のスレがあったわ

Excel VBA 質問スレ Part36 [転載禁止]©2ch.net・
Excel VBA 質問スレ Part36

こっちが先だな

7
デフォルトの名無しさん[]   投稿日:2015/04/06 16:22:48  ID:R0FU2E8+.net(4)
Sub Test1()から呼び出したいSub Test2()があるんだけど
このTest2というのは必ずTest1の中からしか呼び出されないから
Test1とTest2を並列に並べる感じじゃなくて
Test1の内部にTest2に位置させる構造みたいにすることはできないですか?
コメント4件

8
デフォルトの名無しさん[]   投稿日:2015/04/06 16:23:35  ID:R0FU2E8+.net(4)
× Test1の内部にTest2に位置させる構造
○ Test1の内部にTest2を位置させる構造

9
デフォルトの名無しさん[sage]   投稿日:2015/04/06 16:52:48  ID:PufGX+Fr.net
>7
意味不明
コメント1件

10
デフォルトの名無しさん[]   投稿日:2015/04/06 17:03:46  ID:R0FU2E8+.net(4)
>9
意味がわからないのはプログラミング経験が少ないからだよ

11
デフォルトの名無しさん[]   投稿日:2015/04/06 17:04:40  ID:R0FU2E8+.net(4)
JavaでいうインナーClassみたいな感じだ。
コメント1件

12
デフォルトの名無しさん[sage]   投稿日:2015/04/06 17:50:46  ID:iaxKA84j.net
予想屋かよ

13
デフォルトの名無しさん[sage]   投稿日:2015/04/06 18:14:20  ID:9rihMm0H.net
>7
内部に配置は無理だから
Test1とTest2を同じ標準モジュールに定義して
Test2をPrivateにしとけばいいんじゃね
コメント1件

14
デフォルトの名無しさん[sage]   投稿日:2015/04/06 18:22:01  ID:F3YvzXsi.net
>13
多分、それは分かってて、わざわざ>7みたいな事をしたいって事なんだろう
それに何の意味があるのかは知らんが


15
デフォルトの名無しさん[sage]   投稿日:2015/04/06 18:41:30  ID:V7u5im+A.net
>7
推奨されない方法だけど こゆこと?
http://officetanaka.net/excel/vba/statement/GoSubReturn.htm

16
デフォルトの名無しさん[sage]   投稿日:2015/04/06 21:17:56  ID:6qozZbmR.net(2)
Object指向言語なら

17
デフォルトの名無しさん[sage]   投稿日:2015/04/06 21:21:39  ID:6qozZbmR.net(2)
Object指向言語ならInnerClassやDelegateを使えばまぁ、それっぽい小洒落たものを作ることは出来るけど、
VBAではそう言うのないし、GOSUBは余りお勧め出来ない。
Test1以外から呼ばなきゃいいじゃんと言うのが結論。

18
デフォルトの名無しさん[sage]   投稿日:2015/04/06 23:58:22  ID:PqbjMR/u.net
>11
ここはVBAのスレだからVBAで説明してくれ

19
デフォルトの名無しさん[sage]   投稿日:2015/04/07 05:37:09  ID:T6jm7qcv.net
だから先にこっち使ってくれ

Excel VBA 質問スレ Part36 [転載禁止]©2ch.net・
Excel VBA 質問スレ Part36

20
デフォルトの名無しさん[sage]   投稿日:2015/04/10 13:14:42  ID:Ayhlqbgx.net(2)
プロシージャ間で値をやり取りすることが多いんですが、
モジュールレベル変数で宣言するのとcall byvalで参照渡しするのと
処理速度的にはどっちが速いですか?

プロシージャ間の行き来は数十万回レベルです。
同一プロシージャに書けばいいんでしょうけど…
コメント1件

21
デフォルトの名無しさん[sage]   投稿日:2015/04/10 13:56:56  ID:qqTdbdnb.net(2)
>20
実測すれば解決するよ
コメント1件

22
デフォルトの名無しさん[sage]   投稿日:2015/04/10 16:22:02  ID:Ayhlqbgx.net(2)
>21
適当に作ったマクロで実測してみた。

Call Byvalのほうが1.5倍近く遅いようだ。
コメント1件

23
デフォルトの名無しさん[sage]   投稿日:2015/04/10 18:49:19  ID:qqTdbdnb.net(2)
>22
宗教上の理由でByValをデフォルトとしたくて、その実行時間の差が許容できる範囲なら
そうすればいいし、特にこだわりがなければByRefをデフォルトとすればいいってことだね。

24
デフォルトの名無しさん[]   投稿日:2015/04/11 15:57:52  ID:Di7hwpD1.net
ByValで参照渡しってどういう意味?
参照渡しならByRefだよね?

25
デフォルトの名無しさん[sage]   投稿日:2015/04/11 18:00:30  ID:j7Y/pu4p.net
さすがにそこは流してはいけないところw

26
デフォルトの名無しさん[sage]   投稿日:2015/04/11 18:39:12  ID:QOc8rwlG.net
参照渡しの値渡しのことじゃないの?

27
デフォルトの名無しさん[sage]   投稿日:2015/04/11 18:56:22  ID:tS4MnGx5.net
ここは矢切の渡しとボケないといけないとこだろ

28
デフォルトの名無しさん[sage]   投稿日:2015/04/12 23:06:14  ID:PTItGJj5.net
渡しバカよね〜 おバカさんよね〜

29
デフォルトの名無しさん[]   投稿日:2015/04/15 12:45:03  ID:s88AraXc.net
12桁の数字で1の位がモジュラス11ウエイト2〜7のチェックデジットに
なっていて、そのデータが正しいかどうか調べるコードを書きましたが、
,両塙腓機能しません。ご指導よろしくお願いします。

Private Sub Worksheet_Change(ByVal Target As Range)

Dim i As Variant, s As Variant, checkdigit_m11 As Variant

For i = 0 To Len(Cells(1, 1)) - 2

s = s + Mid(Cells(1, 1), Len(Cells(1, 1)) - 1 - i, 1) * (i Mod 6 + 2)

Next

If s Mod 11 <= 1 Then
checkdigit_m11 = 0
Else
checkdigit_m11 = 11 - s Mod 11
End If

Cells(2, 1) = checkdigit_m11

'.船Д奪デジットの照合

If Right(Cells(1, 1), 1) = checkdigit_m11 Then
MsgBox ("OK!")
End If


End Sub
コメント1件

30
デフォルトの名無しさん[sage]   投稿日:2015/04/15 16:11:34  ID:VbMyd246.net(2)
だから先にこっち使ってくれ

Excel VBA 質問スレ Part36 [転載禁止]©2ch.net
Excel VBA 質問スレ Part36
コメント2件

31
デフォルトの名無しさん[sage]   投稿日:2015/04/15 16:27:49  ID:32OEEOG2.net
>30
そちらのスレは荒らしが立て逃げした糞なスレだよ。
本来落として置かなければいけなかったものだ。
コメント1件

32
デフォルトの名無しさん[sage]   投稿日:2015/04/15 17:38:42  ID:VbMyd246.net(2)
>31
どうでもいいってか、どっちかと言うと荒らしが立てたのは
Excel VBA 質問スレ Part36
のほう
(実質的にこのスレの前々スレとして機能したけど、
本来は>30で書いたスレのほうが先にたってた)

33
デフォルトの名無しさん[sage]   投稿日:2015/04/15 21:40:21  ID:uwjeRs/E.net
一時期酷かったもんな。やれコードは書くなとかヒントにとどめておけとか

結局テンプレを盾にとって1人が暴れていただけだったんだよな

今考えてみると「こうあるべき」と押し付ける荒らしの走りだったのかもな

34
デフォルトの名無しさん[sage]   投稿日:2015/04/18 15:22:06  ID:G8uXmJk6.net
vbaの変数名の合理的命名ルール教えてくれるところ無い?
本でも可。
カビの生えたおじいちゃんの価値観で染まったのはNG。
コメント1件

35
デフォルトの名無しさん[]   投稿日:2015/04/18 15:39:26  ID:mSwoExrO.net
>34
そんなものはないし、お前のような馬鹿じゃ何やっても無駄

36
デフォルトの名無しさん[sage]   投稿日:2015/04/18 17:16:49  ID:vWBjvHtT.net
ロートルがファビョっとるw

37
デフォルトの名無しさん[]   投稿日:2015/04/26 16:04:49  ID:IDXPl2M+.net
最近VBAを勉強し始めたんですけど
=
:=
の違いは何ですか?
上は右辺を左辺に代入
下は何ですか?

38
デフォルトの名無しさん[sage]   投稿日:2015/04/26 16:17:52  ID:P1ipXLUA.net
http://www.relief.jp/itnote/archives/001014.php
「:=」(コロン・イコール)ってどういう意味?−名前付き引数

ぐぐれば判ることを聞こうとする辺り勉強する気ナッシングですね

39
デフォルトの名無しさん[sage]   投稿日:2015/04/26 16:41:14  ID:PlxCC65O.net
そう言いながら教えてやるおまいも屑

40
デフォルトの名無しさん[sage]   投稿日:2015/04/26 18:22:52  ID:se3i9COa.net
この程度の質問は田中さんに聞けよ



カルチャーブレーンの

41
デフォルトの名無しさん[sage]   投稿日:2015/05/03 20:22:20  ID:OEqGa4+Y.net
教えてください。
Excelで事務系のフリーウェアを公開してるのですが、全国でどのくらいの本数が動いているのか分かりません。
また、どの機能をどのくらい使われてるのかも分かりません。
起動させた時にこれらの情報を載せたメールを送信させようかとも思ったのですが、一筋縄では行かなそうでした。
利用者の名前や住所を載せるつもりはありませんが、そもそもそんなメールを出させて良いのかどうかも分かりません。
これらの情報を知りたい場合、一般的にどのような方法が取られているのでしょうか?
どうかご教示ください。
コメント5件

42
デフォルトの名無しさん[sage]   投稿日:2015/05/03 21:36:32  ID:7AJkLeM5.net
>41
自分がほしい情報をボタン一つでファイルに吐き出せるようにして、メールで送ってもらうとか Web にアップロードできるようにするとか
ただし、俺なら送らないけどな

43
デフォルトの名無しさん[sage]   投稿日:2015/05/04 04:00:08  ID:O720nFZx.net
>41
たとえばエクセルには、カスタマ エクスペリエンス向上プログラムと言う機能が組み込まれている
利用者の同意を得てデータを送信させれば良いんじゃね

自作のフリーウェアなら、情報の収集を利用条件にしてもいいんじゃn
俺ならそんなソフト使わんが

44
デフォルトの名無しさん[sage]   投稿日:2015/05/04 08:03:17  ID:MlDjNp+9.net
>41
誰一人使って無くても良いじゃん別に
オレ様が素晴らしいソフトをオマエラに提供してやったんだから有り難く使いヤガレ!
って勢いで公開するべきだと思うよ
まれに自発的にお礼や感想要望のメールも来ると思うけど期待はするな

45
デフォルトの名無しさん[sage]   投稿日:2015/05/04 08:39:58  ID:nWEzAIy6.net
>41
そういうの

企業のソフトウェアがやるならともかく、フリーウェアで手を出すと確実に
スパイウェア扱いされるでしょうね。下手なことにクビ突っ込まないほうが
身のためですよ。

46
デフォルトの名無しさん[sage]   投稿日:2015/05/04 12:49:44  ID:i+1DbMms.net
>41です。

> 俺なら送らないけどな
> 俺ならそんなソフト使わんが
 ですよねー、私もそんなソフト嫌やわ。

> まれに自発的にお礼や感想要望のメールも来ると思うけど期待はするな
 新年版への切り替えの頃になると、丁重なお礼と「はよ新年版出せや(意訳)」メールは度々いただいてます。
 だからこそ、より使いやすいソフトのために…って思いからなんですけどね。

> スパイウェア扱いされるでしょうね。
 いっその事FTP鯖立てて、そこへ密かに情報転送したろかなとかまで思いました。
 けどバレたら確実にスパイウェアですからね。

 変なツール実装するのは止めときます。
 皆さんすいません、ありがとうございました。

47
デフォルトの名無しさん[]   投稿日:2015/05/11 08:48:57  ID:AU+j6osa.net
いまのプログラミング業界(オレの造語)って
配列はほとんど使ってないの?
例えばJavaとかだとコレクションを使う方がはるかに便利だとか。

ExcelのVBAでも配列をやめてコレクションを使ったほうが便利で可読性もよいコードになるのかな?
コメント1件

48
デフォルトの名無しさん[sage]   投稿日:2015/05/11 09:17:16  ID:jciykodT.net
特にパフォーマンスが要求されないドンガメアプリは好きな方式でいいんじゃないかな?(´・ω・`)

49
デフォルトの名無しさん[sage]   投稿日:2015/05/11 09:17:50  ID:AVa5yrsT.net
>47
普通に配列つかったほうがいいよ。

50
デフォルトの名無しさん[sage]   投稿日:2015/05/11 11:45:07  ID:6rZgRYO9.net
最近の言語は配列じゃないコレクションが充実してるから
それらの言語では配列以外を使う事の方が多くなってる

VBAでは、コレクションが配列より良い場合もないではないけど
ほとんどの場合は配列の方がすっきりすると思うぞ

51
デフォルトの名無しさん[]   投稿日:2015/05/14 22:31:05  ID:F7V5bQJf.net
MsgBoxってあるけど
そうじゃなくて
メッセージをメモ帳を開いてそこに記述するにはどうすればいいのでしょうか?

こうすることでコピペができるなどいろいろ便利と思うので。

52
デフォルトの名無しさん[sage]   投稿日:2015/05/14 23:41:41  ID:dWCGk0JA.net
ファイルに吐いて>notepad ファイル名
で起動すればいいんちゃうの?

ちなみにMsgBoxはCtrl+Cでクリップボードに入る
コメント2件

53
デフォルトの名無しさん[]   投稿日:2015/05/15 00:05:07  ID:F85nAjYz.net
>52
そうするとHDDのどこかにファイルを保存せねばならないでしょう。
そうしたくないんだ。
コメント2件

54
デフォルトの名無しさん[sage]   投稿日:2015/05/15 05:28:12  ID:X5a4op11.net
安定しないけど、Shellで起動してSendKeysとか

まあ俺ならコピペ前提ならそのままクリップボードにデータ入れるが

55
デフォルトの名無しさん[sage]   投稿日:2015/05/15 08:29:51  ID:OMVhwfYU.net
ちょっと編集してコピーするとかもできるからメモ帳に吐くのはありだと思う
SendKey はいい思い出がないから >52 に一票

56
デフォルトの名無しさん[sage]   投稿日:2015/05/15 17:08:00  ID:SCDI1Wkq.net
>53
log用シート追加して、そこに吐くんじゃダメなの?
そのシート残したくなければクローズ時に削除すればいいかと。
そんな単純じゃない話?

57
デフォルトの名無しさん[sage]   投稿日:2015/05/15 17:16:38  ID:VZDZSKvz.net
ユーザーフォームのテキストボックスに表示するとか?

58
デフォルトの名無しさん[sage]   投稿日:2015/05/16 21:51:20  ID:jUu32I5W.net
vbaにパスワード掛けても簡単に破られるじゃあないですか?
vbaで開発したものを有料の製品として販売している人や会社は、パスワードを破られてしまうとノウハウを簡単に盗まれてしまうという事ですよね。
それって、何か対策は有るんですか?

59
デフォルトの名無しさん[]   投稿日:2015/05/16 22:15:03  ID:Yi4ECWX2.net(2)
どうやってパスワードを見破るんですか?

60
デフォルトの名無しさん[sage]   投稿日:2015/05/16 23:23:55  ID:HH6fpt1X.net
同じVBAを使う者としてとても心が痛むが、
できてしまう以上はその誘惑に勝てない。

61
デフォルトの名無しさん[]   投稿日:2015/05/16 23:40:40  ID:Yi4ECWX2.net(2)
そのやりかたを聞いておるのだ
コメント1件

62
デフォルトの名無しさん[sage]   投稿日:2015/05/17 00:29:03  ID:TXM5pNIr.net
>53
Linuxには、メモリ上だけに存在するファイルシステム、tmpfs とか、

tmp ディレクトリに、ファイルを作って書き込めば、
システム終了時に自動的に、
作ったファイルを消してくれる、などの機能がある

Win にはそういう機能は無いの?

63
デフォルトの名無しさん[sage]   投稿日:2015/05/17 00:34:12  ID:prFKBwN9.net
>61
Google先生に聞いてね。
78とか76とか、いろいろめんどうだけどね。

64
デフォルトの名無しさん[sage]   投稿日:2015/05/17 16:21:48  ID:B0Fe1+FI.net(2)
VBAで : が使われる場所って、
文字列の中を除くとあとは
GOTO Label:
くらいでしょうか?
コメント2件

65
デフォルトの名無しさん[sage]   投稿日:2015/05/17 16:50:07  ID:nnFlbvVf.net
>64
名前付き引数の指定で使う

http://www.relief.jp/itnote/archives/001014.php
引数の指定方法には、標準引数と名前付き引数という2種類の方法があります。

▼標準引数を使った例
WorkSheets.Add ,,5

▼名前付き引数を使った例
WorkSheets.Add Count:=5
コメント1件

66
デフォルトの名無しさん[sage]   投稿日:2015/05/17 16:53:28  ID:lnYJDjFz.net
なぁ、ぼちぼち前スレに移動してくれないか?

Excel VBA 質問スレ Part36 [転載禁止]©2ch.net・
Excel VBA 質問スレ Part36

67
デフォルトの名無しさん[sage]   投稿日:2015/05/17 19:14:25  ID:fv8Y2qXy.net
>64
マルチステートメント(の区切り)に使う
コメント1件

68
デフォルトの名無しさん[sage]   投稿日:2015/05/17 20:20:17  ID:B0Fe1+FI.net(2)
>65>67
詳しい解説、有難うございました。
この2例以外にはもう無いでしょうか?

69
デフォルトの名無しさん[sage]   投稿日:2015/05/19 12:05:13  ID:NTe3EXZz.net
Excel x97m_sugar.dの作り方を教えてください。

70
デフォルトの名無しさん[]   投稿日:2015/05/19 23:05:06  ID:Y2eIQ7MR.net
Excelのx97m_sugar.dの作り方は教えてあげないでください。

71
デフォルトの名無しさん[sage]   投稿日:2015/05/20 00:01:24  ID:HCLyDu6k.net
Excelのx97m_sugar.dの作り方が教えてあげられません。

72
デフォルトの名無しさん[]   投稿日:2015/05/30 00:10:11  ID:uAz+OfzT.net
VLOOKUPの列入力で質問です。

一つのセルに「=(VLOOKUP($検索値,$範囲,列,FALSE)+(VLOOKUP($検索値,$範囲,列,FALSE)+(VLOOKUP($検索値,$範囲,列,FALSE))」と入れてるのですが、列を連続で入れたいです。

A1セルに=(VLOOKUP(検索値,範囲,1,FALSE)+(VLOOKUP(検索値,範囲,2,FALSE)+(VLOOKUP(検索値,範囲,3,FALSE))」
A2セルに=(VLOOKUP(検索値,範囲,4,FALSE)+(VLOOKUP(検索値,範囲,5,FALSE)+(VLOOKUP(検索値,範囲,6,FALSE))」
A3セルに=(VLOOKUP(検索値,範囲,7,FALSE)+(VLOOKUP(検索値,範囲,8,FALSE)+(VLOOKUP(検索値,範囲,9,FALSE))」..............と自動入力したいです。

COLMUN関数を列に入れてみましたが、そうすると
A1セルの列が、1,2,3
A2セルの列が、2,3,4
A3セルの列が、3,4,5と希望通りになりませんでした。

お助け下さい。
コメント2件

73
デフォルトの名無しさん[sage]   投稿日:2015/05/30 00:17:17  ID:mU8J0Ylc.net
ここは VBAのスレですよ?

74
デフォルトの名無しさん[sage]   投稿日:2015/05/30 00:24:06  ID:4IPDAfwH.net
>72
ROW()*3-2+COLUMN()

75
デフォルトの名無しさん[]   投稿日:2015/06/02 23:40:59  ID:iC0H3P5x.net
Application.EnableEvents = Falseで、
別のブックのイベントを停止させることはできるの?

どうもできないように思うのだが。
コメント1件

76
デフォルトの名無しさん[sage]   投稿日:2015/06/03 04:24:08  ID:+cwo1qGY.net(2)
>75
2007で試してみたが
普通にやると複数ブック開いてもExcelのプロセスは一つなので
全てのブックのイベントが停止するっぽい

別プロセスで開いたブックでなら
そのプロセスに対応するApplicationで指定すれば
そのブックだけ停止出来てるようだ

Dim ap As Application
Dim wb As Workbook
Set ap = New Excel.Application
ap.Visible = True
Set wb = ap.Workbooks.Open("w:\book1.xlsm")
wb.Application.EnableEvents = False
こんな感じでテストしてみた
コメント1件

77
75[]   投稿日:2015/06/03 14:31:44  ID:fXq4Zk1N.net
>76
Resありがとう。
確かにExcel2010で複数のExcelファイルを同じWindowで開いたら、
1個のブックでApplication.EnableEvents = False とすれば、
全てのブックのイベントが停止すると思う。

しかし、複数のExcelファイルを別のWindowで開いたら、
1個のブックでApplication.EnableEvents = False としても、
別のWindowのブックのイベントを停止できないのです。

なお、Excel2010で別のWindowで開く方法は、
新たにExcelブックを立上げ、そこにExcelファイルをDrug&Dropするのです。
Excel2013はDefaultで別のWindowで立ち上がりますが、
2010や2007は同じWindowで立ち上がります。
コメント1件

78
デフォルトの名無しさん[]   投稿日:2015/06/03 20:08:13  ID:ZKJDLKuD.net
Sheet2に編集済みの文字列はform上に張り付けたコンボックスで下記のコードで読めたしシートの書き込みができた。
でも問題はformを利用せずSheet1に張り付けたコンボックスまたはリスト
で同じSheet1に編集済みの文字列A1:B1を複数表示選択して同じSheet1の
セルA10:A11に書き込みたいが、どうしてもオブジェクトエラーになる。
シート上でのコンボックスまたはリスト利用は制限がでるのですかね?
'form上からコンボックスでセル参照
Private Sub UserForm_Initialize()

Dim lRow As Long
With Worksheets("Sheet2")
lRow = .Range("A" & Rows.count).End(xlUp).Row
End With
With ComboBox1
.ColumnCount = 3
.ColumnWidths = "50;50;50"
.RowSource = "Sheet2!A18:B" & "A24"
End With
End Sub
'シートに連続書き込み
Sub test(kazu As Integer, mode As Integer)
’前処理コード
Do
  bs.LineStyle = xlContinuous
bs.Weight = xlThick
Range(Mid(W_Right, 1, 1) & CStr(count)).Value = UserForm1.ComboBox1.List(ListNo, 0)
Range(Mid(W_RightPlas, 1, 1) & CStr(count)).Value = UserForm1.ComboBox1.List(ListNo, 1)

count = count + 1

Loop Until count = count_end
end sub

79
デフォルトの名無しさん[sage]   投稿日:2015/06/03 20:18:44  ID:+cwo1qGY.net(2)
>77
いやだから、別のプロセスで開いたらその対応するApplication操作しろって言ってるんだが
問題はどうやってそのブックへの参照を得るかだが、自分で立ち上げるなら実例は示した
2013でどうなってるか知らんが、あとは自分で考えろ

あとWindowとプロセスの区別ついてないっぽいけど
Windowが別だからってプロセスが別だとは限らんぞ

2013からMDI廃止らしいけど、プロセスも別なのがデフォになったのかねぇ

80
デフォルトの名無しさん[sage]   投稿日:2015/06/03 22:56:11  ID:ZxJD2qlU.net
Office 2013ではWordもExcelもSDIに
http://www.relief.jp/itnote/archives/018148.php

便利なのか不便なのか分からん。
ブック間の不作為なリンクを避けられるなら仕方ないが、勝手にリンクする上にApplicationを取得しないと別のブックが見えないとかだったら嫌だな。

81
デフォルトの名無しさん[sage]   投稿日:2015/06/06 00:01:08  ID:JzYI2Rbi.net(2)
Applicationて名前なのにWindowが別だと別物とかとんでもない罠だな
Excel作ってる人はバカなのかな
コメント1件

82
デフォルトの名無しさん[sage]   投稿日:2015/06/06 08:30:57  ID:nnpJvQGY.net
>81
少なくともお前よりは頭いいよ

83
デフォルトの名無しさん[sage]   投稿日:2015/06/06 09:03:14  ID:JzYI2Rbi.net(2)
Excel作ってる人いたwww

84
デフォルトの名無しさん[sage]   投稿日:2015/06/12 11:53:50  ID:P3g0DnhS.net(5)
997 デフォルトの名無しさん sage 2015/06/12(金) 03:53:05.71 ID:V1caHJYS
>988
後ろゼロ埋めして長さ揃えてソートして、その順に元の文字連結する

それ題意に合ってない。
例えば 3 < 31 になっちゃう

85
デフォルトの名無しさん[sage]   投稿日:2015/06/12 13:22:48  ID:3WPnrkkp.net
ゼロで埋めずにその数字の最後の桁の数で埋めればいいんじゃね?
たとえば
72 と 568 だったら 72 を722 にするの
コメント1件

86
デフォルトの名無しさん[sage]   投稿日:2015/06/12 14:55:54  ID:nFg05tfI.net
文字列にして降順ソートで
コメント2件

87
デフォルトの名無しさん[sage]   投稿日:2015/06/12 17:29:03  ID:9iuD3EDL.net
>86
正解

88
デフォルトの名無しさん[sage]   投稿日:2015/06/12 17:36:58  ID:P3g0DnhS.net(5)
>86
だからそれだと 3 < 31 になっちゃうんじゃないの?

89
デフォルトの名無しさん[sage]   投稿日:2015/06/12 20:29:11  ID:aMl82aru.net(3)
>85
多分それで上手く行くと思う。

90
デフォルトの名無しさん[sage]   投稿日:2015/06/12 21:00:11  ID:P3g0DnhS.net(5)
最初に全体をなめて桁数の上限を求めんとあかんの?
コメント1件

91
デフォルトの名無しさん[sage]   投稿日:2015/06/12 21:03:00  ID:P3g0DnhS.net(5)

92
デフォルトの名無しさん[sage]   投稿日:2015/06/12 21:03:54  ID:aMl82aru.net(3)
>90
そこは本題の論点じゃなさそうだから、どっちでもいいんじゃない?

93
デフォルトの名無しさん[sage]   投稿日:2015/06/12 21:10:46  ID:aMl82aru.net(3)
>91
すまん、じじいだから英語分からんし、VBAしか分からん。
VBAのスレだからVBAに直して教えてくれ。
コメント1件

94
デフォルトの名無しさん[sage]   投稿日:2015/06/12 21:25:28  ID:P3g0DnhS.net(5)
>93
おれは多分あんたよりずっとじじいだと推測するが教えよう。
aとbが数値型だとして、このふたつを比較するのに、 CStr(a) & CS
tr(b) と CStr(b) & CStr(a) の比較に帰着させようってことだ

コメント1件

95
デフォルトの名無しさん[sage]   投稿日:2015/06/12 22:03:15  ID:hZ3veipK.net
>94
なるほどね。どっちの方が効率いいんだろうな。

96
デフォルトの名無しさん[sage]   投稿日:2015/06/13 04:27:57  ID:ds8D2Sdy.net
>91のURLが見れないんだが

97
デフォルトの名無しさん[]   投稿日:2015/06/13 10:20:57  ID:YcieRO9y.net(2)
あれれ?おかしいですよ。

Dim i as Integer = 5

みたいに宣言と代入を同時にできなかった?
コメント1件

98
デフォルトの名無しさん[sage]   投稿日:2015/06/13 10:51:54  ID:P6q2Jefi.net
もしかしてだけど?(´・ω・`)
as じゃなくて As じゃないかな?(´・ω・`)
コメント1件

99
デフォルトの名無しさん[]   投稿日:2015/06/13 10:54:17  ID:YcieRO9y.net(2)
>98
それは関係ないみたいですよ

100
デフォルトの名無しさん[sage]   投稿日:2015/06/13 10:55:47  ID:aBb0zzsM.net
できない
constだと宣言と同時に代入できるってか代入が必須

101
デフォルトの名無しさん[sage]   投稿日:2015/06/13 10:56:07  ID:yb+K2D/k.net(2)
Const j as Integer = 5 みたいに定数宣言ではできるけど

http://www.dotup.org/uploda/www.dotup.org365418.jpg

コンパイルエラー

102
デフォルトの名無しさん[sage]   投稿日:2015/06/13 10:58:11  ID:5fbKckS6.net(2)
VB.NETでは出来るけどVBAでは出来ないんだよな。
っていうかVBSとVBAとVB.NETでは仕様が違うから平行して使うと混乱する。

103
デフォルトの名無しさん[sage]   投稿日:2015/06/13 13:09:18  ID:EK7iCI9D.net(2)
>97
Dim i as Intger :i=5
じゃなくて?
コメント1件

104
デフォルトの名無しさん[sage]   投稿日:2015/06/13 13:11:08  ID:EK7iCI9D.net(2)
Integer

105
デフォルトの名無しさん[sage]   投稿日:2015/06/13 13:59:15  ID:ZT8kHOu5.net
>103
それ、2つの命令を1行に書いてるだけじゃん

106
デフォルトの名無しさん[sage]   投稿日:2015/06/13 14:56:58  ID:xAuM0Ioe.net(2)
インタプリタとコンパイラの違いをまずは勉強した方が良いと思うよ。
今の人って逆ポーランド記法とかも知らないだろうなぁ。
コメント1件

107
デフォルトの名無しさん[sage]   投稿日:2015/06/13 15:05:13  ID:5fbKckS6.net(2)
記法なんてコンパイラの胸三寸じゃねぇか。
コメント1件

108
デフォルトの名無しさん[sage]   投稿日:2015/06/13 15:10:58  ID:FxAuvF7G.net
いきなりなんの話だ?

109
デフォルトの名無しさん[sage]   投稿日:2015/06/13 16:36:33  ID:DqJYPwIz.net(3)
また面倒なのが出てきた

110
デフォルトの名無しさん[sage]   投稿日:2015/06/13 16:46:02  ID:rvHURxqt.net
宣言と初期化が同時にできるのは間違いなく良いことだし、それができないのはVBAの困った点。
コメント1件

111
デフォルトの名無しさん[sage]   投稿日:2015/06/13 16:57:27  ID:DqJYPwIz.net(3)
そりゃ昔からの言語なんだから色々あるさ。

112
デフォルトの名無しさん[sage]   投稿日:2015/06/13 16:59:19  ID:7lUoI+DV.net
初歩的な書式設定レベルのツールを開発しました。
その仕様書を作成するよう言われたのですが、書き方が分かりません。
仕様書・設計書の書き方で、初心者用のオススメ本とかありますか?
コメント1件

113
デフォルトの名無しさん[sage]   投稿日:2015/06/13 17:08:42  ID:yb+K2D/k.net(2)
サンプルが同じ部署の中に転がってんでしょ。それを参考にし作れば良いのでは
コメント1件

114
デフォルトの名無しさん[sage]   投稿日:2015/06/13 21:23:10  ID:DqJYPwIz.net(3)
>112
書き方が分からないのは分かった。

どう言った立場でどんなシチュエーションで言われたのかで答えが変わる質問っぽいな。

もう現場で実際に使うようなものであれば、>113が言ってるように、
周りにサンプルが転がってるんじゃないか?

研修中と言うなら取り敢えず何のためにどんな仕様書が必要なのか洗い出して、
それぞれどうすれば自分の伝えたいことが伝わり易いのかを考えれば必然的にどう作成するか見えてくるはず。

例えば何を目的として作成されたツールなのか、画面にはどんな項目があるのか、
ボタンを押したらどんな処理が走るのか、とかね。

ま、仕事で分からない人にいきなりレクチャーも無しに作れと言うのは少し考え辛いな。

分からなければ取り敢えず上の人に聞いた方がいいと思うよ。

115
デフォルトの名無しさん[sage]   投稿日:2015/06/13 21:55:36  ID:FQeTzdta.net
>110
今さらそんな些細なこと言われても...
VBA は初期値が決まってるから、Fortran とか C/C++ と違って単体テストちゃんとやれば大丈夫だしね

116
デフォルトの名無しさん[sage]   投稿日:2015/06/13 23:50:09  ID:xAuM0Ioe.net(2)
直接的な仕事の話なら、先輩か上司に聞けよ。
分からないなら、分からないとちゃんと伝えないと、手取り足取りでは教えてもらえない。
適切な質問を適切なタイミングで行うことで、
コミュニケーションが深まり、信頼されるようになっていくんだから。
新人のうちは、作業を依頼されたら、
「何を/何時までに/どのように」
が、頭に浮かばない状態では、受けちゃだめ。
分からないところは、ちゃんと質問しろ。
で、2割できたと思った時に、それを説明して確認して方向性が間違ってないか聞け。
そして8割できたと思った時に、もう一度確認しろ。
その状態でOKがでたら、その作業は完了として、次の作業に移れば良い。
もう少し、といわれたら10割まで進めろ。

「やります」って約束してから初心者本を探すようでは、失格だよ。
コメント1件

117
デフォルトの名無しさん[sage]   投稿日:2015/06/14 08:07:46  ID:XH+fyzBI.net
>106
インタプリタとコンパイラの関係については
ここではあまり関係がある話とは思えないなぁ。

VBAとVB.Netでは、VBAはエラーになるし、VB.Netでは動く。

中間コードがPコードかILかって違いはあるけど、どっちもインタプリタの
要素を含んだコンパイラっていう形式であることは変わらないし。

逆ポーランド記法なんて中間コードを挟まない場合や、
直で中間コードを弄る場合には今でも使うし、
そうでなければ昔でも使わない。

結局のところ、>107の人が言ってることが正解ってことになるんだろうなぁ。
コメント1件

118
デフォルトの名無しさん[sage]   投稿日:2015/06/14 11:42:28  ID:gLTCEjdN.net
>117
>116 もそうだけど、誤爆でなきゃ話の流れに関係なく自分の思い付いたことを語り始めるアレな人みたいなので、相手しない方がいい

119
デフォルトの名無しさん[sage]   投稿日:2015/06/14 12:46:31  ID:inpQDwIg.net(2)
文字列を分割するユーザー定義関数を作ろうとしているのですが、
下記のコードだと関数の結果がvalueになってしまいます。
途中のMsbBoxでは思い通りの結果が表示されるのですが、
何を直せばよいか教えてください
よろしくお願いします。

Function spr(ByRef 対象セル As Range, Optional 分割文字 As String = " ", Optional N番目 As Long = 1) As Variant
'セルの文字列を分割し、N番目を参照する関数
Application.Volatile

Dim 分割文字列 As Variant

分割文字列 = Split(対象セル.Item(1).Text, 分割文字)

MsgBox 分割文字列(0)
MsgBox 分割文字列(1)
MsgBox 分割文字列(2)

spr = 分割文字列(N番目 - 1)

End Function
コメント1件

120
デフォルトの名無しさん[sage]   投稿日:2015/06/14 13:34:47  ID:pyKjCLa1.net(2)
Function AnySplit(TargetRange As Range, Optional SplitStr As String = " ", Optional PutNum As Long = 1) As String
Dim Spstr() As String
Spstr = Split(TargetRange.Value, SplitStr)

AnySplit = Spstr(PutNum)
End Function

121
デフォルトの名無しさん[sage]   投稿日:2015/06/14 13:47:46  ID:9sCLitNc.net(2)
>119
そのままコピペして、別に問題なく動いてるけど
あえて言うなら、MsgBoxは全部削除かコメントアウトした?
コメント1件

122
デフォルトの名無しさん[sage]   投稿日:2015/06/14 13:53:29  ID:pyKjCLa1.net(2)
修正ついでにこっちの方が面白いかな。

Function AnySplit(TargetRange As Range, Optional SplitStr As String = " ", Optional PutNum As Long = 1) As String
Dim str As String
Dim Spstr() As String
Dim c As Range

str = TargetRange(1).Value

If TargetRange.Count > 1 Then
For Each c In Range(TargetRange(2), TargetRange(TargetRange.Count))
str = str & SplitStr & c.Value
Next
End If

Spstr = Split(str, SplitStr)

AnySplit = Spstr(PutNum - 1)
End Function

123
デフォルトの名無しさん[sage]   投稿日:2015/06/14 14:06:12  ID:inpQDwIg.net(2)
>121
原因分かりませんがもともと自分で作ったものでも動きました(汗
なにか勘違いしていたみたいです

修正案作ってくれった方々も有難うございます。
コメント2件

124
デフォルトの名無しさん[sage]   投稿日:2015/06/14 16:28:13  ID:aLL1Dt0J.net
糞テンプレ捏造の重複スレより転載
>22 :デフォルトの名無しさん:2015/06/14(日) 14:14:40.48 ID:Qy/1/K9E
>非表示のシートをselectするとエラーが出るのですが仕様ですか

仕様みたいよ
Activateを使えばエラーでないらしい
http://d.hatena.ne.jp/paz3/20090824/1251086123

125
デフォルトの名無しさん[sage]   投稿日:2015/06/14 21:09:14  ID:1Cglll13.net(4)
>123
書いてみたので載せときましたw
よかったらご参考にしてくださいw
あと、N番目は関数を呼び出す前には分かっているようなので、引数から
外してみました。あしからずw

Function spr(ByRef 対象セル As Range, Optional 分割文字 As String = " ") As Variant
'セルの文字列を分割文字で分割し配列を返す。

Application.Volatile
spr = Split(対象セル.Text, 分割文字)
If UBound(spr) < 0 Then
spr = Array() '分割できなかった時の戻り値
End If
End Function

Sub test()
'、N番目を参照する関数
MsgBox spr(Sheet1.Range("B2"))(0)
MsgBox spr(Sheet1.Range("B2"))(1)
MsgBox spr(Sheet1.Range("B2"))(2)
End Sub

126
デフォルトの名無しさん[sage]   投稿日:2015/06/14 21:41:53  ID:1Cglll13.net(4)
なんかバグ見つけたので書き直しました。
もう見てないかもしれませんがどうぞ。

Function spr(文字列 As String, _
Optional 分割文字 As String = " ", _
Optional N番目 As Integer = 1) As String
'文字列を分割文字で配列に変換し、N番目の値を返す。
Dim arr As Variant

spr = ""

If N番目 >= 1 Then
arr = Split(文字列, 分割文字)
If UBound(arr) <> -1 And UBound(arr) >= N番目 - 1 Then
spr = arr(N番目 - 1)
End If
End If
End Function

Sub test()
Application.Volatile
MsgBox spr(Sheet1.Range("B2").Text, , 1)
MsgBox spr(Sheet1.Range("B2").Text, , 2)
MsgBox spr(Sheet1.Range("B2").Text, , 3)
End Sub

127
デフォルトの名無しさん[sage]   投稿日:2015/06/14 21:47:43  ID:9sCLitNc.net(2)
>123
配列を1回しか使わないなら、いちいち変数に代入しなくても直接取り出せる

Function spr(ByRef 対象セル As Range, Optional 分割文字 As String = " ", Optional N番目 As Long = 1) As Variant
  Application.Volatile
  spr = Split(対象セル.Item(1).Text, 分割文字)(N番目 - 1)
End Function

128
デフォルトの名無しさん[sage]   投稿日:2015/06/14 22:42:59  ID:1Cglll13.net(4)
>29
詳しくはありませんが、
チェックデジットが最後で値が違うからじゃないですかねぇ。
以下の部分がおかしいのかなぁ。
s = s + Mid(Cells(1, 1), Len(Cells(1, 1)) - 1 - i, 1) * (i Mod 6 + 2)

129
デフォルトの名無しさん[sage]   投稿日:2015/06/14 22:59:58  ID:1Cglll13.net(4)
>72
こんな感じですかね?
あとはカスタマイズしてみてくださいな。
Sub test()
Sheet1.Range("D2").Value = "=VLOOKUP(""d"",A1:B7,B:B,TRUE)"
End Sub

130
デフォルトの名無しさん[sage]   投稿日:2015/06/16 20:01:33  ID:/YX6SlcO.net(2)
zipの中身(csvのファイルが百個超入ってる)を直接閲覧する方法ってないかな。

ネットを調べてみた限りだと解凍する方法しか出てこないから、やっぱ一時ファイルに中身を出して読み込むまでを自動化して、
あたかもzipを直接読んでいるかの様に振る舞うくらいしか方法ないのかな。
コメント1件

131
デフォルトの名無しさん[sage]   投稿日:2015/06/16 20:07:11  ID:bDVKNfTy.net(2)
>130
Windowsのエクスプローラーなら(あたかも)解凍せずにフォルダのように見る機能がついてるじゃん
コメント1件

132
デフォルトの名無しさん[sage]   投稿日:2015/06/16 20:09:36  ID:OQMU+FkQ.net
むしろ最近のWindowsはダブルクリックで解凍してくれなくて困る。
コメント1件

133
デフォルトの名無しさん[sage]   投稿日:2015/06/16 20:10:52  ID:/YX6SlcO.net(2)
>131
あ、ごめん。閲覧って書いたけど本当は読み込みだ。
エクセルが閲覧する≒内部情報を読み込んでいる。という発想から閲覧と書いてしまった。

134
デフォルトの名無しさん[sage]   投稿日:2015/06/16 20:25:01  ID:bDVKNfTy.net(2)
>132
解凍アプリ入れて関連付けするだけの簡単なお仕事で解決ですよ

135
デフォルトの名無しさん[sage]   投稿日:2015/06/16 23:33:39  ID:CTMSSCrl.net
解凍ソフト入れるくらいなら
右クリックですべて展開の方が好きだな

136
デフォルトの名無しさん[]   投稿日:2015/06/20 12:47:52  ID:0iDXtIw3.net(2)
windows7
excel2010

「wsock32.dll」を使用したいのですが
参照設定になにを追加したらいいのかわかりません。
ご教授お願い致します。
コメント1件

137
デフォルトの名無しさん[sage]   投稿日:2015/06/20 12:49:24  ID:ICg+mTIe.net(2)
>136
VBAでDeclare Functionで宣言して使うんなら参照設定は必用ない
コメント1件

138
デフォルトの名無しさん[sage]   投稿日:2015/06/20 12:55:09  ID:0iDXtIw3.net(2)
>137
そうなんですね!ありがとうございます!
勉強不足で申し訳ありません。

139
デフォルトの名無しさん[sage]   投稿日:2015/06/20 13:37:12  ID:GrEUy4+j.net(2)
予め形式の分かっている差分データを取り込む際に、日付の書いてある範囲や合計欄、個別に集計するエリアなどを設定したいのですが、
シート単位またはセル単位で設定ができ、かつエクセルの通常画面からは見えない様な設定の仕方はありませんか?

IDというメンバ変数を見つけたのですが、保存する時に消えてしまうのでシート単位で個別に保存して運用する可能性があって使えません。
XPathやSmartTagsが自由に設定できれば使えそうなんですが、これは何か形式が決まっているんでしょうか?
コメント2件

140
デフォルトの名無しさん[sage]   投稿日:2015/06/20 13:49:23  ID:ICg+mTIe.net(2)
>139
シートを非表示にする
コメント1件

141
デフォルトの名無しさん[sage]   投稿日:2015/06/20 16:01:17  ID:VnYjkKK/.net(2)
>139
シート非表示で良いと思う。
但し、表示されちゃうとまずいから
VBA側でVeryHiddenにしとく

142
デフォルトの名無しさん[sage]   投稿日:2015/06/20 18:25:10  ID:GrEUy4+j.net(2)
>140-141
やっぱりそういう方法しかないんですね。

直接読み込ませるのではなく、各ファイルが自分でバッチファイルを生成して元のデータベースに統合する形にしたいと思います。
ありがとうございました。
コメント1件

143
デフォルトの名無しさん[sage]   投稿日:2015/06/20 23:34:52  ID:VnYjkKK/.net(2)
>142
そこまで大掛かりにするならExcelにやらせるのではなく
.Netフレームワークとかでシステム作ってそっちにやらせた方が楽かも知れないよ。

それ用のテンプレートファイル作って
そこに展開するようにしておけば、
隠しシート仕込まないことも視野に入れられるし。

144
デフォルトの名無しさん[sage]   投稿日:2015/06/21 12:05:02  ID:QrPate9Z.net(3)
Excel2010(64bit)ですが画面描画を繰り返していると途中で描画が止まってしまいます。

縦×横がそれぞれ数10レベルの配列とセル領域(固定)に対する出力なんですが、
最初に Application.EnableEvents = False したあと、ループ内で
1. 配列の値を再計算
2. 配列をセルに貼り付け(毎回同じ場所)
3. カウンタを表示(特定セル)
4. Application.ScreenUpdating = True
とやってます。(一種のアニメーションです。)
だいたいカウンタが50くらいまでは順調に表示を更新するんですが、そのあと砂時計となって表示が固まります。
その間も計算はしてるようなんですが、最後に一気に飛んだ状態でカウンタが表示されます。
計算モードはずっと xlCalculationManual で、個々の値は長さ1の文字列です。
ずっと表示し続けるにはどうすればいいでしょうか?
コメント1件

145
デフォルトの名無しさん[sage]   投稿日:2015/06/21 12:06:24  ID:8nB0S4aH.net
>144
5. DoEvents
コメント1件

146
デフォルトの名無しさん[sage]   投稿日:2015/06/21 12:06:37  ID:QrPate9Z.net(3)
まちがい

× 最初にApplication.EnableEvents = False したあと、ループ内で
〇 最初にApplication.ScreenUpdating = False したあと、ループ内で

147
デフォルトの名無しさん[sage]   投稿日:2015/06/21 12:08:02  ID:QrPate9Z.net(3)
>145
うお!一瞬で解決しました!

148
デフォルトの名無しさん[sage]   投稿日:2015/06/21 14:33:38  ID:c2TFF1xN.net(3)
2シートのセルに書かれた時刻を比較し、同時刻かどうかを判別させたいです。

Dim ws1 As Worksheet
Dim ws2 As Worksheet
Dim i As Integer
Dim j As Integer
Dim m As Integer
Dim time1 As Date
Dim time2 As Date
Set ws1 = Worksheets("Sheet1")
Set ws2 = Worksheets("Sheet2")
ws1.Activate
ws2.Activate
For i = 2 To 100
For j = 2 To 100
If ws1.Cells(j, 1).Value = ws2.Cells(i, 1).Value And ws2.Cells(i, 1).Value <> "" Then
For m = 2 To 20
time1 = ws1.Cells(j, 2).Value
time2 = ws2.Cells(1, m).Value
If time1 = time2 Then
MsgBox ("Insert" & time1 & "," & time2)
ws2.Cells(i, m).Value = 1
End If
Next m
End If
Next j
Next i

これで一致判別ができません。何故かtime1=time2=9:30:00の時だけは一致判別できます…
コメント2件

149
デフォルトの名無しさん[sage]   投稿日:2015/06/21 14:43:05  ID:c2TFF1xN.net(3)
http://imgur.com/oLGlGUU

↑の画像のsheet1に記載されたデータをsheet2に反映させて、簡単なシフト表を作りたいと思っています。

150
デフォルトの名無しさん[sage]   投稿日:2015/06/21 14:57:40  ID:KB1pzFAk.net(3)
>148
たぶんここ

正 ws2.Cells(j, m).Value = 1
誤 ws2.Cells(i, m).Value = 1

だと思うけど、それ以外にもおかしいところがたくさんありすぎて、突っ込んでいいのかどうか迷うところ
コメント2件

151
デフォルトの名無しさん[sage]   投稿日:2015/06/21 15:18:00  ID:KB1pzFAk.net(3)
>148
>150は間違い。これで動いた
シリアル値を別シートから持って来ると小数誤差が出るのってExcelの仕様なのかな
こりゃ初心者にはわからんわ

time1 = ws1.Cells(j, 2).Text
time2 = ws2.Cells(1, m).Text
コメント2件

152
デフォルトの名無しさん[sage]   投稿日:2015/06/21 15:30:19  ID:c2TFF1xN.net(3)
>150
>151

time1,2をstringに変え、.textでの比較に変えたら動きました!ありがとうございました。

お察しの通りVBAは超初心者、プログラムも大学の授業でCを学んだ程度です。

153
デフォルトの名無しさん[sage]   投稿日:2015/06/21 16:47:35  ID:nnV9xOPw.net(2)
>151
浮動小数点なんで誤差が出ないわけではないが、たぶん誤差じゃなくて
実際に違うシリアル値なんだが表示上同じに見えてるだけ だと思われ
単純な比較で「誤差」はでないから、一度セルの表示形式変えて確認してみたら
コメント1件

154
デフォルトの名無しさん[sage]   投稿日:2015/06/21 17:17:11  ID:KB1pzFAk.net(3)
>153
新規ブックで、どっちのシートもセルの書式もデフォルト(@標準)のまま手作業で打ち込んだのに、
比較すると異なるとか罠以外の何者でもないと思う

自動判断と隣のセルの書式に影響される機能のせいだと思うんだけど
コメント1件

155
デフォルトの名無しさん[sage]   投稿日:2015/06/21 18:21:49  ID:nnV9xOPw.net(2)
>154
同じものを打ちこめば、表示形式が違っても同じと判断されるはずだがなぁ...
どんな入力でどんな表示になってるんだ?

156
◇◇[sage]   投稿日:2015/06/21 18:27:30  ID:RGV/Ctvq.net(2)
テスト
◇◆◇◆◇◆◇◆◇◆

157
◇◇◇◇◇◇◇◇◇◇◇◇[sage]   投稿日:2015/06/21 18:28:21  ID:RGV/Ctvq.net(2)
本文が空です!

158
デフォルトの名無しさん[sage]   投稿日:2015/06/21 19:53:56  ID:2F73xJXZ.net
cells(y,x)=1 をyが10にまでやって11からはxをインクリメントして右に並べるみたいな
マクロを書く場合、最初にyをリセットしてループしますが
y=y+1を先に書きますか?
それとも処理のあとに書きますか?
どちらが一般的なんでしょうか?
コメント1件

159
デフォルトの名無しさん[sage]   投稿日:2015/06/21 22:17:42  ID:ApDmoctC.net
>158
処理に整合が取れていれば見やすい、あるいは扱い易い方で良い。

ケースバイケースになるので、どちらが一般的ということはない。

160
デフォルトの名無しさん[sage]   投稿日:2015/06/22 00:49:07  ID:oXOTOpou.net
cells(y,x)の並びの方が気になるw

161
デフォルトの名無しさん[sage]   投稿日:2015/06/22 06:14:25  ID:0q8cyi70.net
俺も最初は(y, x)と書いてた
気持ちはわかる
今は素直に(r, c)にしてるけど
コメント1件

162
デフォルトの名無しさん[]   投稿日:2015/06/22 11:05:48  ID:8PARE+E6.net(2)
コラ「Excel VBAによるOffice連携プログラミング」の本がAmazon中古で安くなったからさっき買おうと思ったが
その安い値段のが売り切れてまた数万円の価格に戻ってるじゃないか。

誰だ買ったのは?
コメント1件

163
デフォルトの名無しさん[sage]   投稿日:2015/06/22 19:22:55  ID:r2iC/9tS.net
>162
コラって怒る前に数万円で買ってくれ


読み終わったら売ってね❤️

164
デフォルトの名無しさん[]   投稿日:2015/06/22 20:34:37  ID:8PARE+E6.net(2)
コラ

165
デフォルトの名無しさん[sage]   投稿日:2015/06/22 22:00:35  ID:gH+fd3zN.net
この本そんなに凄いのか?

166
デフォルトの名無しさん[sage]   投稿日:2015/06/22 23:49:49  ID:QLWOuCWb.net
>161
変数1文字命名派?

167
デフォルトの名無しさん[sage]   投稿日:2015/06/23 15:25:42  ID:kPbxmHHZ.net(2)
yyyy/mm/dd hh:mm
の形式で入ってるセルはFindで検索しても該当なしになっちゃう
検索できないものなのかな(´・ω・`)
エクセル2013を使用しています
コメント1件

168
デフォルトの名無しさん[sage]   投稿日:2015/06/23 16:47:54  ID:vVXy/YjI.net(4)
>167
とりあえずこの辺の内容を理解して
http://officetanaka.net/excel/vba/tips/tips131.htm
コメント1件

169
デフォルトの名無しさん[sage]   投稿日:2015/06/23 17:51:09  ID:kPbxmHHZ.net(2)
>168
やっぱりシリアル値取らないとダメですか
ありがとうございます やってみます
コメント1件

170
デフォルトの名無しさん[sage]   投稿日:2015/06/23 18:14:50  ID:WNvMOvej.net
直値で検索することはできる。
Range("A:A").Find(#6/23/2015#)
「日付」として値が入力されているなら、
Range("A:A").Find(DateValue("2015/6/23"))
文字列なら、
Range("A:A").Find("2015/06/23")

171
デフォルトの名無しさん[sage]   投稿日:2015/06/23 19:08:58  ID:vVXy/YjI.net(4)
時刻入るとたしかにうまくいかないときあるな
Excel側とVBAでシリアル値の内部フォーマットに違いあるのかもしれん
コメント1件

172
デフォルトの名無しさん[sage]   投稿日:2015/06/23 19:25:51  ID:vVXy/YjI.net(4)
2003以降でどうなってるかわからんが、こんな情報見つけた
https://support.microsoft.com/ja-jp/kb/416317/ja

>この現象は Excel の仕様による動作になります。
仕様だったら2003以降もそのままのはずだが
原因はっきり示さないのに仕様で押しとおされてもなぁ

時刻 0:00:00ですら合わないんだから、それ以外でも合わない事はありそうだし

173
デフォルトの名無しさん[sage]   投稿日:2015/06/23 20:03:13  ID:Yra6/pdr.net
浮動小数だから = で比較するなんて

って思う俺がおかしいのか...
コメント1件

174
デフォルトの名無しさん[sage]   投稿日:2015/06/23 23:20:34  ID:vVXy/YjI.net(4)
まあ、浮動小数点には正規化の問題もあるにはあるけど
同じ型での(代入と)比較だけなら問題ないはずだろ
演算すると誤差が問題になるだけで
コメント1件

175
デフォルトの名無しさん[sage]   投稿日:2015/06/24 06:05:16  ID:Dt+PoWxm.net(2)
>173
浮動小数点数を浮動小数って思うお前がおかしい
コメント1件

176
デフォルトの名無しさん[sage]   投稿日:2015/06/24 07:43:50  ID:mSDBMbUW.net(2)
>174
何をもって問題ないって言ってるのかよくわからんが、入力時点から既に種々の演算がされてるんだけどな

>175
なにか突っ込みたかったことはわかった
次はもう少し内容に突っ込めるようになろうな w
コメント1件

177
デフォルトの名無しさん[sage]   投稿日:2015/06/24 08:02:11  ID:Dt+PoWxm.net(2)
>176
なにか反論したいのかな?
それじゃ誰にも何も伝わらんよ意識高い系君
コメント1件

178
デフォルトの名無しさん[sage]   投稿日:2015/06/24 08:26:33  ID:mSDBMbUW.net(2)
>177
やはり内容には突っ込めませんでしたね w

179
デフォルトの名無しさん[sage]   投稿日:2015/06/24 08:41:15  ID:BjoO3mYW.net
>169
20年前からの常識ですよ。
lookup系の関数じゃないんだから。

180
デフォルトの名無しさん[sage]   投稿日:2015/06/24 09:08:06  ID:4zqa0pLf.net(2)
>171
シリアル値の内部形式は同じだよ
問題があるのはワークシート側の書式の自動解釈(自動変換)のアルゴリズムで、これは簡単に検証できる

シリアル値で誤差が出る例
同じデータを入力したつもりなのに、比較すると違っている
別板リンク(UploaderAnime)source/1435071846.png

これの理由がわかってれば、どこで誤差が出たかもわかるはず
コメント2件

181
デフォルトの名無しさん[sage]   投稿日:2015/06/24 09:12:46  ID:4zqa0pLf.net(2)
自分で確かめてみたい人用
>180の検証に使ったブック
別板リンク(UploaderSmall)source/1435072251.xlsx

182
デフォルトの名無しさん[sage]   投稿日:2015/06/24 16:33:23  ID:RGIhvJyS.net
>1

はいざんねーん
Excel VBA 質問スレ Part37

183
デフォルトの名無しさん[sage]   投稿日:2015/06/24 19:47:23  ID:JvkNGhgS.net
見た目上の値で検索したい場合はFindのLookIn引数にxlValuesを設定すればいいはず。
長らく使ってないからちょっと自信ないけど。

184
デフォルトの名無しさん[sage]   投稿日:2015/06/24 20:47:09  ID:THF2Ta19.net
>180-181
これどうやって「入力」したのか教えて欲しいんだが
どうも連続データで作ったんじゃないかと思うが、それだったら
連続データを計算するときの計算誤差だと思うが

すくなくとも表示形式を変えて確認する限り
FALSE判定のところは別のシリアル値になってるが
これのどこが書式の自動解釈アルゴリズムの問題なのか教えてくれ

185
デフォルトの名無しさん[sage]   投稿日:2015/06/25 01:07:53  ID:xC+7jf1V.net
エクセル2010使ってるんですけど
どなたかキッチンタイマー作ってくれませんか?
コメント2件

186
デフォルトの名無しさん[sage]   投稿日:2015/06/25 03:59:08  ID:xvRMitSK.net
>185
高いよ!

百均で買った方が1/100以下で済むんだが

187
デフォルトの名無しさん[sage]   投稿日:2015/06/25 06:38:29  ID:vom2QN3t.net
>185
そんなもん何に使うんだ?
エクセルやりながら料理するのか??

188
デフォルトの名無しさん[sage]   投稿日:2015/06/25 06:45:51  ID:O+p39R1b.net
自分でやれよ、怠慢だな!…タイマーだけにw

189
デフォルトの名無しさん[sage]   投稿日:2015/06/25 07:20:44  ID:jos0XzUP.net
おおかた授業か研修の宿題だろう

これは丸投げする前に自分でちょっと調べるなり考えるなりしてからやって欲しいところだな

190
デフォルトの名無しさん[sage]   投稿日:2015/06/25 12:01:24  ID:eg4063Fk.net(2)
マクロでキッチンタイマー・・
スマホアプリで作れば?
と思う。

191
デフォルトの名無しさん[]   投稿日:2015/06/25 12:24:55  ID:/nf6gI0I.net(6)
スマホでアプリ作るには
どういう開発環境が必要ですか?

ExcelVBAならExcel立ち上げてALT+F11押すだけでいいけど。
コメント1件

192
デフォルトの名無しさん[sage]   投稿日:2015/06/25 12:25:48  ID:Aa2Tx6yB.net
スマホアプリならダウンロードすればいいだけ

193
デフォルトの名無しさん[sage]   投稿日:2015/06/25 13:04:29  ID:eg4063Fk.net(2)
AndroidならAndroidStudioかeclipse入れる。
iosは知らん。

最初は自分の端末にハローワールドするのでもけっこう大変かな。
まあ󾠓、興味あれば別スレみてくれ。
コメント1件

194
デフォルトの名無しさん[]   投稿日:2015/06/25 13:08:20  ID:/nf6gI0I.net(6)
>193
大変なのですねあきらめます

195
デフォルトの名無しさん[]   投稿日:2015/06/25 13:13:25  ID:/nf6gI0I.net(6)
ExcelじゃなくWordなのですがそのスレがないのでここで質問です。

Wordの文書にいっぱい写真が貼り付けてあります。
各写真について
(1)何ページに貼りついているか
(2)どの段落にくっついているか(Word用語でAnchorしてあるか)
(3)その写真の幅と高さ
(4)そのページ内での位置情報(写真の左上の場所が左上余白から数えてどのくらい右/下にあるか
の情報を取ってきたいのですが、どういうコードを書けばいいですか?

ExcelでいえばFor Eachで全シートや全ブックを取得する方法で
Wordの写真を取得する方法もありそうですが。
そしてもし取得できればExcelと同様、各オブジェクトの情報もそのプロパティをみれば簡単にできそうですが。
コメント1件

196
デフォルトの名無しさん[sage]   投稿日:2015/06/25 13:46:08  ID:/IyRWZfA.net
>191
> スマホでアプリ作るには
> どういう開発環境が必要ですか?
Visual Studio 2015があれば、iOSアプリもAndroidアプリも作れるよ。
http://blogs.msdn.com/b/visualstudio_jpn/archive/2015/06/23/visual-...
やったことないけど、多分ひな形のプロジェクトビルドしたら、Hello, World!的なアプリができるんじゃないかな。
コメント2件

197
デフォルトの名無しさん[]   投稿日:2015/06/25 17:23:14  ID:It1tnYUr.net(2)
VBA タイマーでググればいくらでもでてくるわな
http://ateitexe.com/count-down-timer/

198
デフォルトの名無しさん[sage]   投稿日:2015/06/25 20:03:34  ID:D6HVq1fH.net
>195
shapeをFor Eachで回す
コメント1件

199
デフォルトの名無しさん[]   投稿日:2015/06/25 21:29:48  ID:/nf6gI0I.net(6)
>196
そんなことができるようになってましたか。
すごいですね。
いつかためしてみます。

>198
そんなことは知ってて聞いたのですが。
特にshapeの具体的にどのプロパティを見て
(1)ページ数
(2)所属段落
(3)大きさ
(4)位置
を知ることができるのですか?

200
デフォルトの名無しさん[sage]   投稿日:2015/06/25 21:46:32  ID:3cfr+YD9.net(2)
オブジェクトブラウザ使えよ猿
コメント1件

201
デフォルトの名無しさん[]   投稿日:2015/06/25 21:53:11  ID:/nf6gI0I.net(6)
>200
じゃページ数は?
コメント1件

202
デフォルトの名無しさん[]   投稿日:2015/06/25 22:03:42  ID:It1tnYUr.net(2)
anchorプロパティとRangeオブジェクトとInformationプロパティでわかるな

203
デフォルトの名無しさん[sage]   投稿日:2015/06/25 22:08:34  ID:3cfr+YD9.net(2)
>201
オブジェクトブラウザ使えよ猿
コメント1件

204
デフォルトの名無しさん[]   投稿日:2015/06/25 22:15:11  ID:/nf6gI0I.net(6)
>203
うるさいハゲ

205
デフォルトの名無しさん[sage]   投稿日:2015/06/25 22:58:36  ID:4a2fuGbQ.net
また髪の話してる

206
デフォルトの名無しさん[sage]   投稿日:2015/06/26 02:03:05  ID:rHu+vvV1.net
>196
これは興味深いな。

今までJavaが嫌いでiOSはMAC買わないとiiPhoneの開発厳しいから手が出せなかった俺にはぴったりだ。

やっぱりこれから勉強するならC#だな。WindowsPhoneはC#の後、VB.Netにも対応されたけど、
どうせ文法以外大して変わらないし、良いとこ取りと言われているC#で間違いないだろう。

C++?元々VBやVBAやってた俺の肌には合わないな。あれはあれで良いところあるんだろうが
以前入門書ちょっとだけ読んで肌に合わなくてそっ閉じだった。
コメント1件

207
デフォルトの名無しさん[sage]   投稿日:2015/06/26 03:20:29  ID:EJ0mDEW7.net
>206
C#でやる場合、別途mac上でobj-cなりswiftなり使ってUI作ら無いといけないんじゃないの
コメント1件

208
デフォルトの名無しさん[sage]   投稿日:2015/06/26 07:15:07  ID:4k0f5kGN.net
>207
本当だ。これは後のざまりんフォームとやらに期待するしかないな。

209
デフォルトの名無しさん[sage]   投稿日:2015/06/26 07:58:14  ID:YNfE8rZU.net(9)
参照型と値型を峻別するのって変だよね
コメント2件

210
デフォルトの名無しさん[sage]   投稿日:2015/06/26 08:10:34  ID:6WgjR2Fv.net(8)
>209
えー何で。
ちゃんとどう言うものか知って使いどころを分けるもんじゃないの?
コメント1件

211
デフォルトの名無しさん[sage]   投稿日:2015/06/26 08:24:22  ID:YNfE8rZU.net(9)
>210
あらゆる型どうしの間で使いどころを分けるべきっていうのはその通りだけど、参照型と値型なんて一線を引いて区別することに意味はないですよね?
コメント3件

212
デフォルトの名無しさん[sage]   投稿日:2015/06/26 11:05:38  ID:vRL8h3oN.net(2)
別々のファイルにそれぞれ macro1 と macro2 を作り、同じショートカットキーを割り当てたところ、
それらのファイルを両方開いてからキーを押すとmacro1 と macro2が両方実行されてしまいます。

これを回避する方法はありますか?
作業性の面から、ファイルは同時に起動しておきたく、
またショートカットキーも割り当ての種類をこれ以上増やしたくないと思っています
(上記の例では2つですが、実際にはファイルが数個あり、マクロも複数あるためです)
コメント1件

213
デフォルトの名無しさん[sage]   投稿日:2015/06/26 11:21:37  ID:cSb2GBc3.net(3)
>212
マクロの最初にActiveWindowで自分がアクティブかどうか調べる
コメント1件

214
デフォルトの名無しさん[sage]   投稿日:2015/06/26 11:22:44  ID:t/kzaQZM.net
アクティブじゃないシートのも実行されるんだっけ?
そんな仕様だったかなぁ。

215
デフォルトの名無しさん[sage]   投稿日:2015/06/26 11:35:28  ID:cSb2GBc3.net(3)
複数のブックを開いて、ショートカットがバッティングしている場合は、
ウィンドウがアクティブかどうか関係なく先に開いた方が実行される

216
デフォルトの名無しさん[sage]   投稿日:2015/06/26 13:29:25  ID:vRL8h3oN.net(2)
>213
なるほど!
それなら上手く捌けそうですね、ありがとうございました!

217
デフォルトの名無しさん[sage]   投稿日:2015/06/26 18:30:00  ID:6WgjR2Fv.net(8)
>211
何でそう思うの?

218
デフォルトの名無しさん[sage]   投稿日:2015/06/26 18:49:28  ID:o/Regl21.net(2)
>211
引数にしてそれを変更したときに差がでるから、その時は意識しないとダメ
コメント1件

219
デフォルトの名無しさん[sage]   投稿日:2015/06/26 19:24:10  ID:YNfE8rZU.net(9)
>218
参照と値の区別じゃなくて、参照になれる型とそうでない型を区別することを言ってるんです。
クラス型と基本型を峻別するみたいな。
コメント2件

220
デフォルトの名無しさん[sage]   投稿日:2015/06/26 19:28:17  ID:6WgjR2Fv.net(8)
>219
だからなんでそう思うの?
コメント1件

221
デフォルトの名無しさん[sage]   投稿日:2015/06/26 19:31:54  ID:YNfE8rZU.net(9)
>220
分けることで対称性というか統一性ががなくなるでしょ。
Integer とMyClass型に何か本質的な違いがあるかっていうと無いですよね?
コメント2件

222
デフォルトの名無しさん[sage]   投稿日:2015/06/26 20:02:48  ID:6WgjR2Fv.net(8)
>221
本質的に違うよ。

なんか根本的なところの理解が抜けてるような気がするな。
コメント2件

223
デフォルトの名無しさん[sage]   投稿日:2015/06/26 20:10:16  ID:o/Regl21.net(2)
>219
いやだから、参照型か値型の話で、参照渡し/値渡しの話じゃないよ

224
デフォルトの名無しさん[sage]   投稿日:2015/06/26 20:22:29  ID:3miAOepO.net
何の話なんだ?

Type MyRecord
   [...]
End Type

みたいな形で宣言したヤツを引数として渡せなかったり関数の戻り値として戻せなかったりしてイラついた事あるけどそういう事?

225
デフォルトの名無しさん[sage]   投稿日:2015/06/26 20:36:56  ID:YNfE8rZU.net(9)
>222
VBAでは違うとかJavaでは違うとかいうのは理解できる。
でもそれは「根本的なところの理解」とは違うでしょ?
コメント5件

226
デフォルトの名無しさん[sage]   投稿日:2015/06/26 20:43:49  ID:6WgjR2Fv.net(8)
>225
「根本的なところの理解が抜けてる」で合ってると思うよ。
コメント3件

227
デフォルトの名無しさん[sage]   投稿日:2015/06/26 20:52:09  ID:YNfE8rZU.net(9)
>226
ふむ、そこまで言うなら基本型とクラス型とを峻別する本質的な違いというものを教えてよ。

228
デフォルトの名無しさん[sage]   投稿日:2015/06/26 20:56:41  ID:YNfE8rZU.net(9)
補足すると、
IntegerとBooleanを区別する、
MyClassAとMyClassBを区別する、
というものを超えてIntegerとMyClassAを峻別すべきだ、というあたなたの主張の根拠をね。
コメント1件

229
デフォルトの名無しさん[sage]   投稿日:2015/06/26 21:02:35  ID:6WgjR2Fv.net(8)
>228
自信満々だね。当然、そこまで言うからには何故参照型と値型に分かれているのか、それぞれどう言った用途で使うのか知ってるって認識でいいんだよね?
コメント1件

230
デフォルトの名無しさん[sage]   投稿日:2015/06/26 21:07:27  ID:YNfE8rZU.net(9)
>229
いや、そうではない。素直に受け取ってくれ。
そのふたつを峻別する言語に不便を感じているから聞いてるんだ。
コメント1件

231
デフォルトの名無しさん[sage]   投稿日:2015/06/26 21:37:55  ID:PNhnKrNT.net(2)
そんな高度な質問すんなやハゲ。VBAスレやでここ。

232
デフォルトの名無しさん[sage]   投稿日:2015/06/26 21:40:32  ID:cSb2GBc3.net(3)
また髪の話してる

233
デフォルトの名無しさん[sage]   投稿日:2015/06/26 21:50:53  ID:6WgjR2Fv.net(8)
>230
メモリ上には3つの領域が存在しているのはご存知だろうか。

変数の値や関数の戻りアドレス、インスタンスの入ったアドレスなどを格納しているスタック領域、
標準モジュールの内容やクラスの型を格納しているスタティック領域、
クラスのインスタンスを格納しているヒープ領域の3つ。

この内、スタック領域は頻繁に値のやり取りが行われる場所であり、大きな容量を扱うものには向いていない。
頻繁にやり取りが行われるその領域にそれだけ負担が掛かるからだ。
属に言う値型のものがここに格納される。
つまり、比較的大きなクラスで扱うようなものはこの領域には向かないということだね。

では参照型はというと、そのインスタンスの参照先のみをスタック領域に保持し、インスタンスそのものはヒープ領域に展開される。
つまり、大きいのはそんなに頻繁にアクセスするようなとこに置いとくなよと言うこと。

だから、構造体を持つような言語ではMSDNでもよく小さいのは構造体で、ある程度大きいのはクラスで作れと書いてある。
どの程度の大きさだったかは忘れたけど。

そもそも論として、参照型と値型の峻別を付ける付けないではなく、そう言った根本的な違いがあるので、
設計するとき対象物をどちらで作るかの
峻別が必要になると言うこと。

多分、C++などはその辺を考慮したかたちになっておらず、作り手の判断に委ねられているんだろうな。

だからより高度な判断が必要で、逆に言えば理解が無ければ処理が無駄に遅くなるコードを組むことになる。
コメント5件

234
デフォルトの名無しさん[sage]   投稿日:2015/06/26 22:19:34  ID:PNhnKrNT.net(2)
そんなレベルの低い話やないと思うでハゲ

235
デフォルトの名無しさん[sage]   投稿日:2015/06/26 22:27:36  ID:YNfE8rZU.net(9)
上野にGH9というビルがあってな、ゲーハーナインと読むんだが、オーナーがハゲで9階建てなんだと。

236
デフォルトの名無しさん[sage]   投稿日:2015/06/26 22:51:03  ID:JS2Oq9WD.net
話しについて行けない。そもそも「峻別」の読み方が分からない。悲しい。
コメント3件

237
デフォルトの名無しさん[sage]   投稿日:2015/06/26 23:03:05  ID:6WgjR2Fv.net(8)
>236
「しゅんべつ」で、物事にきっちり区別を付けるような意味だったはず。

238
デフォルトの名無しさん[sage]   投稿日:2015/06/27 08:37:06  ID:AVtNDrad.net(2)
>236
読み方がわからない?
お前の目の前にある物体は素敵なオブジェですか?検索することも
わからんような奴がなんでここにいるわけ?www

239
デフォルトの名無しさん[sage]   投稿日:2015/06/27 08:40:33  ID:Q5FOX3Kq.net(3)
検索する労力をひり出す事すら億劫になるほど下らない話題だったって事だろ
コメント1件

240
デフォルトの名無しさん[sage]   投稿日:2015/06/27 12:39:07  ID:zOIiCC8H.net
おじいちゃんかよw

241
デフォルトの名無しさん[sage]   投稿日:2015/06/27 12:43:18  ID:AVtNDrad.net(2)
>239
そのうち、息するのも面倒くさいとか言い始めるだろう。

242
デフォルトの名無しさん[sage]   投稿日:2015/06/27 13:33:09  ID:IT1CkKd8.net
冗談によくそこまで噛みつけるなぁ
逆に感心するよ
コメント1件

243
デフォルトの名無しさん[sage]   投稿日:2015/06/27 13:47:41  ID:z31C3xpF.net
アスペだから冗談と理解できないんだろ

244
デフォルトの名無しさん[sage]   投稿日:2015/06/27 14:05:59  ID:RNAxIVzO.net
>242
冷やかし・噛みつき目的で質問スレに来ている人には
>236のような軟弱なレスは格好の餌だから仕方ないね
2ちゃんはそういうところだ

245
デフォルトの名無しさん[sage]   投稿日:2015/06/27 14:30:57  ID:GuUT6nNb.net(7)
で、片付いたんだっけ?
コメント1件

246
デフォルトの名無しさん[]   投稿日:2015/06/27 20:12:32  ID:qGo9dR/B.net
>247
うるさいハゲ

247
デフォルトの名無しさん[sage]   投稿日:2015/06/27 20:16:45  ID:Q5FOX3Kq.net(3)
ルイズ!ルイズ!ルイズ!ルイズぅぅうううわぁああああああああああああああああああああああん!!!
あぁああああ…ああ…あっあっー!あぁああああああ!!!ルイズルイズルイズぅううぁわぁああああ!!!
あぁクンカクンカ!クンカクンカ!スーハースーハー!スーハースーハー!いい匂いだなぁ…くんくん
んはぁっ!ルイズ・フランソワーズたんの桃色ブロンドの髪をクンカクンカしたいお!クンカクンカ!あぁあ!!
間違えた!モフモフしたいお!モフモフ!モフモフ!髪髪モフモフ!カリカリモフモフ…きゅんきゅんきゅい!!
小説12巻のルイズたんかわいかったよぅ!!あぁぁああ…あああ…あっあぁああああ!!ふぁぁあああんんっ!!
アニメ2期放送されて良かったねルイズたん!あぁあああああ!かわいい!ルイズたん!かわいい!あっああぁああ!
コミック2巻も発売されて嬉し…いやぁああああああ!!!にゃああああああああん!!ぎゃああああああああ!!
ぐあああああああああああ!!!コミックなんて現実じゃない!!!!あ…小説もアニメもよく考えたら…
ル イ ズ ち ゃ ん は 現実 じ ゃ な い?にゃあああああああああああああん!!うぁああああああああああ!!
そんなぁああああああ!!いやぁぁぁあああああああああ!!はぁああああああん!!ハルケギニアぁああああ!!
この!ちきしょー!やめてやる!!現実なんかやめ…て…え!?見…てる?表紙絵のルイズちゃんが僕を見てる?
表紙絵のルイズちゃんが僕を見てるぞ!ルイズちゃんが僕を見てるぞ!挿絵のルイズちゃんが僕を見てるぞ!!
アニメのルイズちゃんが僕に話しかけてるぞ!!!よかった…世の中まだまだ捨てたモンじゃないんだねっ!
いやっほぉおおおおおおお!!!僕にはルイズちゃんがいる!!やったよケティ!!ひとりでできるもん!!!
あ、コミックのルイズちゃああああああああああああああん!!いやぁあああああああああああああああ!!!!
あっあんああっああんあアン様ぁあ!!シ、シエスター!!アンリエッタぁああああああ!!!タバサァぁあああ!!
ううっうぅうう!!俺の想いよルイズへ届け!!ハルゲニアのルイズへ届け!
コメント1件

248
デフォルトの名無しさん[sage]   投稿日:2015/06/27 21:53:55  ID:wYPgFXnx.net(4)
>245
どうかなぁ。10を聞いて1を知る人には全く理解出来ないだろうし、
1を聞いて1を知る人なら言ってることくらいは理解するだろうし、
1を聞いて10を知る人なら、同じような理由で標準モジュールのモジュールレベルで
変数の定義を多用してはいけないくらいまで理解するだろうけど、
聞いてきた本人がその後分かったとも何とも言ってこないし、
ハゲに夢中になってるからなぁ。

ま、質問の内容からして、前戻り値に参照型が返せない言語は糞だと言ってたC++使いだと俺は思ってるけど、
今回はいつも一緒に登場するコード厨キャラが出て来てないからそこは何とも言えないかな。

249
デフォルトの名無しさん[sage]   投稿日:2015/06/27 22:11:34  ID:GuUT6nNb.net(7)
1を聞いて10を知るのは大体思い込みの激しいジジイに過ぎないのでは?
コメント1件

250
デフォルトの名無しさん[sage]   投稿日:2015/06/27 22:19:16  ID:wYPgFXnx.net(4)
>249
いや、むしろ俺みたいなじじいの方が頭が堅くて呑み込み悪いし応用も効かない。

基本若い奴の方が多少先走る感はあるものの、理解も早いし応用力もあるよ。
コメント1件

251
デフォルトの名無しさん[sage]   投稿日:2015/06/27 22:37:46  ID:GuUT6nNb.net(7)
>250
1を聞いて10を知るなんて、単に潜在的にわかっていたことを初めて意識しましたって現象か、もしくは分かってないのに分かったと思い込むジジイ。
それはともかく、能いは値、参照は参照なんで、型とは直交する概念。
コメント2件

252
デフォルトの名無しさん[sage]   投稿日:2015/06/27 22:39:12  ID:GuUT6nNb.net(7)
あれ、
× 能いは値
○ 値は値

253
デフォルトの名無しさん[sage]   投稿日:2015/06/27 22:42:40  ID:pIBbDm3i.net(3)
健全でない言葉が含まれているため表示しません 内容を確認する

254
デフォルトの名無しさん[sage]   投稿日:2015/06/27 22:44:12  ID:WGuYPvoX.net(3)
>251
ちょっと何言ってるか分かりませんね
コメント1件

255
デフォルトの名無しさん[sage]   投稿日:2015/06/27 22:54:13  ID:GuUT6nNb.net(7)
>254
直交もわからないの?

256
デフォルトの名無しさん[sage]   投稿日:2015/06/27 22:56:12  ID:pIBbDm3i.net(3)
直交を知る男現わる!

257
デフォルトの名無しさん[sage]   投稿日:2015/06/27 22:56:24  ID:WGuYPvoX.net(3)
直交が分からないんじゃなくてそれはともかく以降の文章の意味が分からない
コメント1件

258
デフォルトの名無しさん[sage]   投稿日:2015/06/27 23:06:36  ID:GuUT6nNb.net(7)
>257

型Aに対してAの値の型とAへの参照の型両方がある。Aが何であっても同じ
と言ってる。
それに対して、AがIntegerのような基本型の場合とクラス型との場合では本質的に違うんだ、
と主張してる人たちがいる。しかも言語によらずそうだと思っている模様。
コメント2件

259
デフォルトの名無しさん[sage]   投稿日:2015/06/27 23:09:00  ID:wYPgFXnx.net(4)
>258
で、どっちだと思う?
コメント1件

260
デフォルトの名無しさん[sage]   投稿日:2015/06/27 23:14:56  ID:WGuYPvoX.net(3)
>251
>それはともかく、値は値、参照は参照なんで、型とは直交する概念。

なんかそれと>258で言ってる今まで色々言われて来たことって、
関係あるように見えてリンクしてないんで何が言いたいかよく分からないんですケド?

結局何が言いたかったの?

261
デフォルトの名無しさん[sage]   投稿日:2015/06/27 23:15:44  ID:GuUT6nNb.net(7)
>259
任意の型に値と参照の両方があるというのは単に事実だから何も「思う」ことはない。
問題は後者の主張に根拠が出てこないこと。>233は悪いけどトンチンカン過ぎ。
コメント2件

262
デフォルトの名無しさん[sage]   投稿日:2015/06/27 23:35:18  ID:pIBbDm3i.net(3)
おまえが直交とか言いだすから悪いんやで

263
デフォルトの名無しさん[sage]   投稿日:2015/06/27 23:39:55  ID:wYPgFXnx.net(4)
>261
ごめん、俺もあなたが何を言いたいのか、何をどこまで理解してるのか分からなくなった。

任意の型に値と参照の両方があるってどういうこと?
例えばインスタンスの生成を行わないString型やInteger型は値型、インスタンスは参照型って
どちらかになるんであって、任意の型一つで両方の特性をもつ型は少なくとも俺は知らない。どの型?

あと>233の領域の話に関してトンチンカンだと言うのであれば、
もう少しコンピューター自体の本を読むなりネットで調べるなりしてパソコンの基礎知識自体を身につけた方がいいと思うよ。

特にスタック領域なんてハード、ソフトどちらで制御してるにしても概念的には同じだし、
遠い昔のパソコンどころか、ファミコンにすらある概念だからね。ていうか載ってないの見たこと無いし。
コメント1件

264
デフォルトの名無しさん[sage]   投稿日:2015/06/27 23:57:22  ID:Q5FOX3Kq.net(3)
Dim A as Integer
Dim B as MyClass

Aを読み出す時はimmをEAXに格納して返し、
Bを読み出す時はフェッチして実行した結果をEAXに格納して返すから即値と関数じゃ扱いが違って当然なんだけど、
そういう認識がすっぽ抜けてるって事でいいの?
コメント2件

265
デフォルトの名無しさん[sage]   投稿日:2015/06/27 23:57:39  ID:PyizvsFG.net
>261
「値は値、参照は参照なんで、型と直交する概念」なのに、
「任意の型に値と参照の両方があるのは単に事実」って、
言ってることが支離滅裂じゃない?

1を聞いて10を分かったと思いこんじゃった?
コメント1件

266
デフォルトの名無しさん[sage]   投稿日:2015/06/28 00:03:41  ID:wBeyl/iu.net(11)
>263
もともとは参照に「なれる」型とそうでない型との区別の話だったんだよ。
ひとつの型で値と参照の両方の特性を持つわけじゃない。
>233はこの話に無関係だがらトンチンカンと言ってるんで、スタックだのヒープだの先刻承知だよ。
>233はまずクラス型がスタックに置くのが憚られるほど「大きい」なんて前提を置いてるみたいだけど、データインスタンスかなんかとごっちゃになってるんじゃない?
普通クラスのインスタンスなんてせいぜい数十バイトのものだろ。
コメント1件

267
デフォルトの名無しさん[sage]   投稿日:2015/06/28 00:05:26  ID:ljCE11NJ.net(4)
>264
フェッチと言うと意味が広域になるから判断付け難いけど、
アセンブラやCで言う間接参照だと言うならほぼそれで合ってる。

268
デフォルトの名無しさん[sage]   投稿日:2015/06/28 00:07:38  ID:wBeyl/iu.net(11)
>264
それは特定の言語固有の仕様でしょ。
そういうのは初めから認めている。
>225-226 を読んでくれ。>226氏は言語に関係なく基本型とクラス型とで「本質的な違いがある」と主張しているのでは?

269
デフォルトの名無しさん[sage]   投稿日:2015/06/28 00:12:01  ID:wBeyl/iu.net(11)
>265
任意の型Aに対して、Aそのものの型とAへの参照型があると言っているだけ。
intに対してintそのものとint&がある、
それを「両方ある」と表現した。
コメント1件

270
デフォルトの名無しさん[sage]   投稿日:2015/06/28 00:18:49  ID:F7aWi8CN.net(7)
>269
VBAにintなんて型は存在しないんですが、それは・・・

271
デフォルトの名無しさん[sage]   投稿日:2015/06/28 00:45:52  ID:ljCE11NJ.net(4)
>266

>もともとは参照に「なれる」型とそうでない型との区別の話だったんだよ。

だから参照に「なれる」型って何?
型はその時の気分で参照型になれたり値型になれたりするものだと思ってるの?
何の言語?ひょっとしてまたC++か!

後、容量の話は前後逆になっている。
例えばクラスと構造体の場合、他にも制約は色々あるが、容量は16バイト未満のクラスは、構造体にすることを検討しろとMicrosoftも言っている。
つまり、用途で使い道を分けろと言ってる訳だ。

https://msdn.microsoft.com/ja-jp/library/ms229017(v=vs.100).aspx

別にそれを無視して小さなクラス作ろうが、大きな配列や構造体作ろうが、
それで処理が重くなろうがどうなろうが、そんなのはそっちの勝手だ。
こっちは峻別する必要があるか聞かれたから答えただけだ。後は勝手にしろ。

ヒープエリアとか知っているとか言ってたくせに、根拠が無いとか、いちゃもん付けてるようにしか見えない。

これだからC++やっててここに来てる奴って嫌なんだ。
聞いてきた癖に教えると、絶対「分かった」とは言わない。無視するか否定するかのどちらか。人としてちょっとどうなんだろうと思うよ。
コメント2件

272
デフォルトの名無しさん[sage]   投稿日:2015/06/28 00:46:00  ID:IJkReOHB.net(4)
何の議論をしたかったのかしらんが、アセンブラやCのレベルでの参照と
VBA(やVBやC#)での参照型とを同じに語るとか議論にならん

元の質問者はまだいるのか?
論議したかったのはVBAの言語仕様の思想なのか?
コメント1件

273
デフォルトの名無しさん[sage]   投稿日:2015/06/28 01:01:18  ID:Lt0oVZOg.net(19)
>272
別にお前さんが議論のその部分に参加する必要はない。
〜のようなことなんじゃないの?という例えにたまたま俺の方に知識があったから
それに答えただけだ。
VBAではそもそも参照型と値型できっちり別れているんだから議論の余地などない。

274
デフォルトの名無しさん[sage]   投稿日:2015/06/28 01:10:50  ID:wBeyl/iu.net(11)
>271
俺が何を聞いたというのだ?
俺が元々言ったのは>209>211>225だ。初めからVBAのことは理解した上で、でも「変だよね」「意味ないよね」と文句を言っている。それ自体はいいだろ?
それを>222とか>226が「理解」の話にすりかえた。
コメント3件

275
デフォルトの名無しさん[sage]   投稿日:2015/06/28 01:16:05  ID:F7aWi8CN.net(7)
>274
とりあえず値型と参照型っていうのが何なのかがネックになってるんで、
その辺りの宣言なり実装なりをVBAのコードで見せてくれませんかね。

276
デフォルトの名無しさん[sage]   投稿日:2015/06/28 01:23:19  ID:ljCE11NJ.net(4)
>274
だから変だし意味があるって言ってる。
根本的な理解がすっぽ抜けてたのも確かだし、
それについての説明を求めて来たのもそっちだ。
説明受けた後で知ってるのどうのと後出ししてきて、結局のところ
どう言う仕組みになっててどう言う用途の場合、どう使うものなのか、
全て説明して、だから使い方を峻別するべきだと結論まで出しても
現時点で理解出来ない上に話をそらしているとか訳の分からないことを言い出す。

一体何がしたいんだ?
コメント1件

277
デフォルトの名無しさん[sage]   投稿日:2015/06/28 01:31:10  ID:IJkReOHB.net(4)
>274
>初めからVBAのことは理解した上で
もしお前がちゃんとVBAでの違いと使い分けをちゃんと理解した上で、なぜその二つがあるのか聞きたかったのなら
ちゃんとそう書くべきだった(このスレが適切だったかどうかも疑問ではあるが)
すくなくともお前の書き方では、違いや使い分けが理解できてるとは思えないから「理解」の話になったわけで
議論をすり替えたわけではないと思うぞ

278
デフォルトの名無しさん[sage]   投稿日:2015/06/28 01:36:07  ID:wBeyl/iu.net(11)
>276
どこの理解がすっぽ抜けているんだ?ぜんぜん的はずれだよ。
実際出てきた説明も「峻別すべき」理由付けには全然なっていない。
現時点で峻別されていることを知った上で文句を言っている。単純に不便だからだ。
コメント1件

279
デフォルトの名無しさん[sage]   投稿日:2015/06/28 01:43:23  ID:wBeyl/iu.net(11)
なによりも俺は>225で「VBAとかJavaでは違うというのは理解できる。」と断っている。
それなのに「根本的なところの理解ができていない」と貶されたら、言語や環境を越えた原則があってそれを破っている、と言われたようにしか思えなかった。
コメント1件

280
デフォルトの名無しさん[sage]   投稿日:2015/06/28 01:48:52  ID:F7aWi8CN.net(7)
もしかして全ての言語に共通する仕様としてC++のint&に当たるものがあると考えてる?
コメント1件

281
デフォルトの名無しさん[sage]   投稿日:2015/06/28 02:02:11  ID:wBeyl/iu.net(11)
>280
無いから不便だ、って不平だ。
参照を返せないんだよ。
コメント2件

282
デフォルトの名無しさん[sage]   投稿日:2015/06/28 02:06:09  ID:F7aWi8CN.net(7)
>281
参照を返せないってどういう事?
ByRefで参照渡しすれば中身を変更した変数やクラスが呼び出し元で手に入るよね?

283
デフォルトの名無しさん[sage]   投稿日:2015/06/28 02:11:12  ID:IJkReOHB.net(4)
>279
>なによりも俺は>225で「VBAとかJavaでは違うというのは理解できる。」と断っている。
あの流れで、もとになってる>221が Integer とMyClass型に ってのがなぁ
値型と参照型の区別がついてないと思われても仕方ないと思うぞ
せめてそこで値型と参照型にって言っとくべきだったな

で、なんで違うかは言語の設計思想と実装の都合上の問題だと思うが
大きくは
 パフォーマンス
 リソース(主にメモリ)の利用効率
 互換性
の3点だろ
これ以上はマイクロソフトの中の人でもないと何とも言えんのじゃないかね

そろそろこの話題終わりにしてくれ

284
デフォルトの名無しさん[sage]   投稿日:2015/06/28 02:22:00  ID:IJkReOHB.net(4)
>281-282
別スレか前スレだったか?
その流れは飽きたからやめて欲しい
思わせぶりな事言うだけだった奴もいたな

285
デフォルトの名無しさん[sage]   投稿日:2015/06/28 02:25:17  ID:Lt0oVZOg.net(19)
>278
どこの理解がすっぽ抜けてるか説明するとどうせまた話そらしてるとか的はずれだとか言い出すんだろ?全く意味がないよ。

最初に話した通り、普段頻繁に使われているところにそう言った大きいものをしまわない。これは昔からある概念。

そのため、後々になってヒープエリアという概念が出来てインスタンスをヒープエリアに持っていってる訳で、
インスタンスならクラスからいくらでも生成される可能性がある訳で。
それを役割の違う基本型と同じに考えて扱おうというのは理解出来てないとしか言いようがない。

そうなると、あなたみたいにちゃんと理解出来てない人が適当なところにしまっちゃったりするから
C++からC#に移行したときにも、取り入れられたのかもと俺は思ってる。

ま、もういいや。納得行かないなら峻別しないで使えばいいさ。
コメント2件

286
デフォルトの名無しさん[sage]   投稿日:2015/06/28 05:31:47  ID:OeLQkQMR.net(3)
一体全体何が原因でこんな流れに成っているんだ?
コメント1件

287
デフォルトの名無しさん[sage]   投稿日:2015/06/28 07:59:50  ID:VTU14O1b.net(7)
参照型を覚えたばかりの的はずれな説明をしたがる人が話をややこしくしてる

288
デフォルトの名無しさん[sage]   投稿日:2015/06/28 08:18:07  ID:Lt0oVZOg.net(19)
>286

これまでのあらすじ

「C++って値型とか参照型なんて無駄なもん持ってなくて、
変数なら何でも値と参照が取れちゃうスゲー言語なんだぜ、VBAにはそんなのねーだろw」

と、自慢したかったCプラプラーが鼻っ柱へし折られて悔しくて暴れまわってる。

次回予告

「C++って参照先に参照もたせたりできるスゲー言語なんだぜ、VBAにはそんなのねーだろw」と自慢しにやってくる

289
デフォルトの名無しさん[sage]   投稿日:2015/06/28 08:35:55  ID:VTU14O1b.net(7)
話をすればいつでもすぐに現われる頓珍漢w

290
デフォルトの名無しさん[sage]   投稿日:2015/06/28 08:37:50  ID:X2j1Txu9.net
どうでもよすぎこの流れ
VBA関係無いじゃん
よそでやれ

291
デフォルトの名無しさん[sage]   投稿日:2015/06/28 08:38:39  ID:Lt0oVZOg.net(19)
頓珍漢。

いい響きだな。昭和のニオイがプンプンするw

292
デフォルトの名無しさん[sage]   投稿日:2015/06/28 08:45:23  ID:6HPl6VuL.net(4)
>271
> https://msdn.microsoft.com/ja-jp/library/ms229017(v=vs.100).aspx
それ C# の話
C++ は構造体とクラスはほとんど違いがなくて、クラスのインスタンスをスタック上に作成することもできる
>233 は標準モジュール云々と書いたり色々突っ込みどころが多すぎなのでスルーでいいと思う
コメント1件

293
デフォルトの名無しさん[sage]   投稿日:2015/06/28 09:05:56  ID:Lt0oVZOg.net(19)
>292
アホか?
VBAなら静的クラスは標準モジュールが該当するだろ。
ここはVBAのスレなのになんでC++目線で説明しなけりゃならないんだよ。
その時点ではまだ相手がCプラプラーだと確証だって持てないだろ。

つまり、Cプラプラーはアレか、VBAスレでも俺のために最初から全てC++目線で書いとけってことか。

ならそう言うスレ立ててそこでやってくれよ。
コメント1件

294
デフォルトの名無しさん[sage]   投稿日:2015/06/28 09:13:23  ID:OeLQkQMR.net(3)
どうでもいいけど、
C++とVBAを比較して議論して何が得られるんだ?
何を期待しているんだ?
オラにはサッパリ分からん。まあ、好きにしてくれ
コメント1件

295
デフォルトの名無しさん[sage]   投稿日:2015/06/28 09:16:27  ID:cPvRhGo9.net(2)
>293
だから VBA の話と C# の話混ぜて話すなよってこと
まあ、本人もよく理解できてないんだろうけど
コメント1件

296
デフォルトの名無しさん[sage]   投稿日:2015/06/28 09:21:41  ID:Lt0oVZOg.net(19)
>294
そりゃそうさ。
前から「VBAに出来ないこんなことが出来るC++SUGEEE」って暗に言いたいのが見え見えなんだもの。

特にそれが分かることが目的じゃないんであればそうなるよ。

297
デフォルトの名無しさん[sage]   投稿日:2015/06/28 09:27:55  ID:Lt0oVZOg.net(19)
>295
はい?
それを言うなら「VBA」と「C#」じゃなくて
「VBA」と「.Netフレームワーク」だろ?
そこ、なんのページだと思ってるの?

とてもC++の考え方ばかりで語ってる奴の言う事とは思えないなw
コメント1件

298
デフォルトの名無しさん[sage]   投稿日:2015/06/28 09:34:12  ID:SnEMphd5.net(5)
>285
>そう言った大きいものをしまわない

自分はその容量の話はすこし疑問に感じた。
スタックを逼迫させるような大きなオブジェクトっていう点。せいぜい数十バイトだというのは例の彼が言ってる通りだから。
コメント1件

299
デフォルトの名無しさん[sage]   投稿日:2015/06/28 09:34:20  ID:Lt0oVZOg.net(19)
Cプラプラーが言うことはデタラメばっかりだな。
前も

645 名前:デフォルトの名無しさん :2015/05/05(火) 08:03:11.47 ID:Gy6WgfTU
それならエクセルが直接コントロールできるC++14でいいじゃないか

とか言ってて、結局COM介在させなかったら出来なかったりするしな。
コメント3件

300
デフォルトの名無しさん[sage]   投稿日:2015/06/28 09:38:31  ID:VTU14O1b.net(7)
>299
はっきり言おう。お前が頓珍漢なだけだ。
コメント1件

301
デフォルトの名無しさん[sage]   投稿日:2015/06/28 09:40:36  ID:Lt0oVZOg.net(19)
>298
で、どうしまうの?
その>285でも書いたけど、インスタンスはクラスがあれば幾らでも生成出来るんだけど。
生成する度にスタックエリアに実体を詰め込むの?
コメント3件

302
デフォルトの名無しさん[sage]   投稿日:2015/06/28 09:46:55  ID:SnEMphd5.net(5)
>301
たとえばDoubleと同じ8バイトのクラスがあるとして、
Dim a As Double, b As Double, c As Double...と生成していくのと、
クラスのインスタンスを x,y,z,...と生成するのではスタックエリアに対する負荷って違うの?

303
デフォルトの名無しさん[sage]   投稿日:2015/06/28 09:47:09  ID:cPvRhGo9.net(2)
>297
ああ、.NET Framework だったな
で? それがどうかしたのか?
VBA に関係ないことには変わりないと思うけど?

304
デフォルトの名無しさん[sage]   投稿日:2015/06/28 09:48:23  ID:Lt0oVZOg.net(19)
>300
なら>299のどこが頓珍漢なんだか言えるか?

にしても、Cプラプラーって妙に「頓珍漢」って言葉乱発するな。

普段、言われてるんだろな。
コメント1件

305
デフォルトの名無しさん[sage]   投稿日:2015/06/28 10:20:04  ID:VTU14O1b.net(7)
>304
どこもクソもCプラプラーガーとか今の話題には一切関係ない。
そういうズレたやつの事を頓珍漢て言うんだぜ。

ちなみに、スタックガーとかヒープガーも元の話題とは金輪際関係ない。
コメント1件

306
デフォルトの名無しさん[sage]   投稿日:2015/06/28 10:30:02  ID:Lt0oVZOg.net(19)
>305
別に末尾に「ガー」なんて付けた覚えはないが、どこかの思想が偏っているスレに常駐でもしてんの?

参照型、値型の話で、格納される場所によって挙動が変わるのに関係ないとか、
本当に頓珍漢が好きなCプラプラーさんは、頓珍漢なこと言うのも大好きなんですね。
コメント2件

307
デフォルトの名無しさん[sage]   投稿日:2015/06/28 10:33:06  ID:VTU14O1b.net(7)
>306
元々お前の理解の範疇を越えた話なんだから、無理矢理くちばし突っこまなくてもいいんだよ。
コメント1件

308
デフォルトの名無しさん[sage]   投稿日:2015/06/28 10:37:46  ID:wBeyl/iu.net(11)
>301
>インスタンスはクラスがあれば幾らでも生成出来るんだけど。

基本型だって宣言のたびにスタックかヒープに生成されるんだから、それはおかしな主張だな。
コメント1件

309
デフォルトの名無しさん[sage]   投稿日:2015/06/28 10:41:09  ID:Lt0oVZOg.net(19)
>307
もう既に論理的な話も出来ないんですね。
頓珍漢のCプラプラーさんw

ほら、早く304にも答えないと、頓珍漢ってただの逃げ口上だってバレちゃいますよw

310
デフォルトの名無しさん[sage]   投稿日:2015/06/28 10:41:20  ID:wBeyl/iu.net(11)
Dim i As Integer はスタック上だし、
Dim arr() As Integer の中身はヒープに取られるだろう。
コメント1件

311
デフォルトの名無しさん[sage]   投稿日:2015/06/28 10:45:52  ID:Lt0oVZOg.net(19)
>308
うわ、終いには宣言と生成まで一緒くただよw

流石頓珍漢さん。考えることが違いますね。
コメント1件

312
デフォルトの名無しさん[sage]   投稿日:2015/06/28 10:48:00  ID:Lt0oVZOg.net(19)
>310
何の言語の話をしてるんです?
またC++か!w

313
デフォルトの名無しさん[sage]   投稿日:2015/06/28 10:49:07  ID:wBeyl/iu.net(11)
さすがにバカ過ぎて相手をするのが疲れる。
コメント1件

314
デフォルトの名無しさん[sage]   投稿日:2015/06/28 10:55:36  ID:Lt0oVZOg.net(19)
>313
何でVBAのIntegerの配列がクラスに配置されることもなしにヒープエリアに展開されるのか教えてくれよw
コメント3件

315
デフォルトの名無しさん[sage]   投稿日:2015/06/28 11:17:18  ID:6HPl6VuL.net(4)
>306
> 参照型、値型の話で、格納される場所によって挙動が変わる
VBA の用語でなにがどう違うのか書いてみてよ
コメント1件

316
デフォルトの名無しさん[sage]   投稿日:2015/06/28 11:29:33  ID:SnEMphd5.net(5)
>314
Integerの配列の中身はSafeArrayCreate関数で領域確保されるけど、MSDNでは
allocates and initializes the data for the array
と書かれているから、ヒープに取られるんじゃないですかね?
https://msdn.microsoft.com/en-us/library/windows/desktop/ms221234(v=vs.85).aspx
コメント1件

317
デフォルトの名無しさん[sage]   投稿日:2015/06/28 12:20:12  ID:wBeyl/iu.net(11)
>311
基本型なら宣言すればデフォルト値で生成されるだろ。厳密なタイミングは知らんが。
Dim i As Long
とすれば4バイトスタックにLongのインスタンスが発生する。
それとも使わなきゃ最適化で消えるとかそういう主張か?
コメント1件

318
デフォルトの名無しさん[sage]   投稿日:2015/06/28 12:23:50  ID:z6q4unEs.net(4)
参照とか面倒臭いからruby使おうぜ
コメント1件

319
デフォルトの名無しさん[sage]   投稿日:2015/06/28 12:38:55  ID:VTU14O1b.net(7)
VBAみたいな初心者用言語に値だの参照だの、くだらない型の区別をとり入れてしまったおかげで
ID:Lt0oVZOg のような可哀想なバカが大量生産されてしまった事は確かだろうな
これは、プログラミング界の悲劇と言ってもいいだろう。
コメント1件

320
デフォルトの名無しさん[sage]   投稿日:2015/06/28 13:19:19  ID:F7aWi8CN.net(7)
VBAに値と参照を区別した型宣言なんてあったっけ?
コメント2件

321
デフォルトの名無しさん[sage]   投稿日:2015/06/28 13:24:19  ID:Lt0oVZOg.net(19)
>317
なんか言ってる意味が相変わらず訳分からないんだけど、生成って言葉、なんだか分かって使ってる?大丈夫?

>基本型なら宣言すればデフォルト値で生成されるだろ。

エリアに使う部分の領域が確保されて、そこにデフォルト値が設定されると言うなら分からんでもないけど、
ここで何でいきなり「生成される」の?

は?

322
デフォルトの名無しさん[sage]   投稿日:2015/06/28 13:28:34  ID:Lt0oVZOg.net(19)
>320
ないと思うよ。

というか、インスタンスを生成させる奴が参照型、させないのが値型になると思うけど。
コメント4件

323
デフォルトの名無しさん[sage]   投稿日:2015/06/28 13:31:27  ID:Lt0oVZOg.net(19)
>319
はいはい、頭のいい頓珍漢Cプラプラーさんは
そんな頭の悪い人達のところに来ないでC++スレに引きこもってて下さいね〜

324
デフォルトの名無しさん[sage]   投稿日:2015/06/28 13:44:30  ID:6HPl6VuL.net(4)
>320
引数の宣言の ByRef, ByVal の話かと思ったけど違うみたいだし >315 の質問もスルーしてるし
生半可な知識で語って自爆してるだけにしか見えない
誰とは言わないけど w

325
デフォルトの名無しさん[sage]   投稿日:2015/06/28 13:57:25  ID:F7aWi8CN.net(7)
>322
機械語レベルでの仕組みの話をしてるのかと思えば「特定の言語の仕様でしょ」とか言われるし、
ヒープだのスタックだのでも話が違うって言われるから、ならVBA上での見え方の問題だと推測できるんだけど、
値渡しでも参照渡しでも無く、ただひたすら「値と参照」なるものが「峻別」されていると主張し続ける。

まず意識合わせしないと話がかみ合わないんだけど、「値と参照」に具体的に突っ込むと無視されるんだよな。
コメント1件

326
デフォルトの名無しさん[sage]   投稿日:2015/06/28 14:10:13  ID:VTU14O1b.net(7)
>322
まだやってんのかよ。お前には羞恥心という物がないのか?
まずインスタンスの意味調べてこいよw
コメント1件

327
デフォルトの名無しさん[sage]   投稿日:2015/06/28 14:26:23  ID:Lt0oVZOg.net(19)
>325
VBAでは値渡しや参照渡しとは無関係じゃないけど、他に値型と参照型と言うものが型によって振り分けられ、決められるんだよ。

それを組み合わせて引数では値型の値渡し、値型の参照渡し、参照型の値渡し、参照型の参照渡しとなるんだけど、
戻り値は値渡ししか使えないって、この間Cプラプラーが騒いでたので、
なら、参照型使えばいいんじゃないのと教えてあげたら、
今回「参照型と値型を峻別するのって変だよね」とか言い出してるから、
何で参照型と値型が存在するのか、どう言う用途で使うのか、何で峻別されているのか、
全て答えたら、話をそらしているだの、全くの検討違いだの言い出してるけど、
結局何が検討違いなのかも言わないし、終いにはバカだの罵る始末。

ようは、VBAを卑下したいだけみたいだよ。

コード厨キャラも出したし、>326みたいな煽りもくれてるし、
まあいつものCプラプラーだから負けず嫌いなのは分かってるけどね。
コメント2件

328
デフォルトの名無しさん[sage]   投稿日:2015/06/28 14:29:16  ID:T3lgZQh9.net
VBAを使う理由
「だって便利なんだもん」

329
デフォルトの名無しさん[sage]   投稿日:2015/06/28 14:32:50  ID:ljCE11NJ.net(4)
そもそもさ、VBAのスレでC++の話で引っ掻き回すやつって頭おかしくね?

330
デフォルトの名無しさん[sage]   投稿日:2015/06/28 14:41:47  ID:OeLQkQMR.net(3)
vba vs c++論争したい奴は、今c++スレにも変なのが湧いているから
そいつと好きなだけ議論して来いよ!
コメント1件

331
デフォルトの名無しさん[sage]   投稿日:2015/06/28 14:45:43  ID:7wl/BqXR.net(2)
>330
うえぇ・・・
こんなのがいっぱいいるのかなぁ

332
デフォルトの名無しさん[sage]   投稿日:2015/06/28 15:01:10  ID:F7aWi8CN.net(7)
コンパイル言語がどういうものなのかを理解してないと「あっちの言語は高尚で、こっちの言語は低俗」みたいな与太話を真に受けがちだよな。

>327
値型と参照型っていう呼び方は初めて知ったわ。検索しなきゃいけなかったな。

そして一連の話は、あくまで関数の戻り値として使えないって話なのか。確かにC言語ならアドレスを返す事が出来るからなぁ。
でもそれならVBAだと値型を返してるんじゃなくて値型の値を戻り値に代入してるわけだから実装上は参照型と同じ手順を踏んでるよなぁ。

333
デフォルトの名無しさん[sage]   投稿日:2015/06/28 16:04:03  ID:URqhXen8.net(3)
>322
インスタンスを生成しない型ってなんだよ?お前はそういうところが根本的に理解できてないんだよ。
値型といわれるIntegerだって、変数宣言して値を代入して使えばそこにIntegerのインスタンスが発生しているんだよ。
コメント3件

334
デフォルトの名無しさん[sage]   投稿日:2015/06/28 16:19:31  ID:3j8PstlS.net
どうでもいい議論してるマヌケは死ぬといいよ。
ここはお前らウジ虫の議論する場ではないからwww
三流プログラマってギークフリークにこういうくだらない論争するn好きだよねぇwww

それしか誇れるものないのはよくわかったから、秋葉にでm繰り出してこいよクソども

335
デフォルトの名無しさん[sage]   投稿日:2015/06/28 16:29:45  ID:SnEMphd5.net(5)
>333
それはそうだし、別にヒープ上にnewして作るものだけがオブジェクトと法律で決まってるわけじゃない。
スタック上にクラスインスタンス作ってもいいけど、寿命はそのスコープに限られるよね。
VBAとかはそういうスコープ管理はプログラマの自由に委ねない言語だから。

336
デフォルトの名無しさん[sage]   投稿日:2015/06/28 16:52:07  ID:7wl/BqXR.net(2)
>333
ぼちぼちよそでやった方がいいよ



気持ち悪いし

337
デフォルトの名無しさん[sage]   投稿日:2015/06/28 16:55:35  ID:SnEMphd5.net(5)
ところで>314氏は自分の説明わかってくれたのかな...

338
デフォルトの名無しさん[sage]   投稿日:2015/06/28 17:03:11  ID:z6q4unEs.net(4)
ところで早く死なないかな

339
デフォルトの名無しさん[sage]   投稿日:2015/06/28 17:58:10  ID:6HPl6VuL.net(4)
>327
> 他に値型と参照型と言うものが型によって振り分けられ、決められるんだよ。
VB.NET の話じゃないんだよね?
MSDN のどこかに書いてあるの?
コメント1件

340
デフォルトの名無しさん[sage]   投稿日:2015/06/28 18:06:49  ID:URqhXen8.net(3)
>318
ずっと昔のことだけど、MATZ氏がスタック上のオブジェクトのことについてコメントしてたのを思い出した。たしか公式サイト上だった。
いま検索しても出てこない。

341
デフォルトの名無しさん[]   投稿日:2015/06/28 20:44:03  ID:hAVUrhR0.net(6)
あるセル範囲の中で
一番出現頻度が高い文字列を返す関数を作っていただけますか?

引数=Range
返り値=String

処理速度が一番短い人にはなにかプレゼントも考えています。
コメント1件

342
デフォルトの名無しさん[]   投稿日:2015/06/28 20:45:27  ID:hAVUrhR0.net(6)
健全でない言葉が含まれているため表示しません 内容を確認する

343
デフォルトの名無しさん[]   投稿日:2015/06/28 20:54:16  ID:/nDPxHEX.net
>341
できた 簡単やろ
プレゼントが決まり次第公開するよ

344
デフォルトの名無しさん[sage]   投稿日:2015/06/28 21:03:42  ID:z6q4unEs.net(4)
VBAでも余裕だしワークシート関数だだけでも余裕だな
プレゼント何

345
デフォルトの名無しさん[]   投稿日:2015/06/28 22:01:01  ID:hAVUrhR0.net(6)
まずは回答をお聞きしましょうか。
試さないとどれが一番処理速度が速いかわからないので。
コメント2件

346
デフォルトの名無しさん[sage]   投稿日:2015/06/28 22:19:53  ID:RJYMt8ab.net
Function しっこ()
  しっこ = "しっこ"
End Function

これより速くしっこを返す関数を作るのは不可能
コメント1件

347
デフォルトの名無しさん[sage]   投稿日:2015/06/28 22:28:57  ID:URqhXen8.net(3)
>345
もうちょっと条件を付けてよ。
ループの使用禁止とか、ドSなやつ。
コメント1件

348
デフォルトの名無しさん[]   投稿日:2015/06/28 22:52:28  ID:hAVUrhR0.net(6)
>346
こら0点だ。

349
デフォルトの名無しさん[sage]   投稿日:2015/06/28 22:53:06  ID:dOcFp/SG.net

350
デフォルトの名無しさん[]   投稿日:2015/06/28 22:54:35  ID:hAVUrhR0.net(6)
>347
お、スキルのあるっぽいかた登場かな
条件はないですよ、どんなことしてもokです。
コメント1件

351
デフォルトの名無しさん[]   投稿日:2015/06/28 22:56:41  ID:hAVUrhR0.net(6)
健全でない言葉が含まれているため表示しません 内容を確認する

352
デフォルトの名無しさん[sage]   投稿日:2015/06/28 23:23:25  ID:z6q4unEs.net(4)
>350
ほらよ

require 'win32ole'
def mode(range)
range.Value.flatten.group_by{|x|x}.max_by{|k,v|v.size}.first
end
app = WIN32OLE.connect('Excel.Application')
mode(app.Selection)

353
デフォルトの名無しさん[sage]   投稿日:2015/06/29 00:17:51  ID:QSQZKtdk.net(2)
>333
VBAでIntegerにインスタンスが出来るって初めて聞いた
.Netなら全ての型はObject型を継承してるから分かるけど
どこかに載ってる?
コメント1件

354
デフォルトの名無しさん[sage]   投稿日:2015/06/29 01:39:35  ID:RWXntF+6.net(2)
>353
>299と同じようにいつものデタラメだと思うよ。悔しまぎれの。

或いはこのプラプラーはVBAのスレだろうがなんだろうがC++の考えで全て押し通せると思ってるアスペか。

逆にちゃんと載ってるところ晒せたら大したもんだと思うわ。
コメント1件

355
デフォルトの名無しさん[sage]   投稿日:2015/06/29 06:37:01  ID:EM+B505w.net
ここってインスタンスとか生成とか用語を定義しないまま言い争う遊び?

356
デフォルトの名無しさん[sage]   投稿日:2015/06/29 06:56:22  ID:QSQZKtdk.net(2)
VBAのスレなんだからVBAで言うところのインスタンスだと思うけど
普通に考えて
コメント2件

357
デフォルトの名無しさん[sage]   投稿日:2015/06/29 07:14:49  ID:bvi+oDiY.net
>301 >322でのLt0oVZOgの考え方が奇妙だ

358
デフォルトの名無しさん[sage]   投稿日:2015/06/29 07:19:17  ID:RWXntF+6.net(2)
>356
無駄だよ。結局>354で言ってた後者に該当して、
一生懸命誤魔化すために定義をすり替えようとしてるの見え見えじゃん。
いつものようになんだかんだ御託を付けて煙に巻こうとする
それがCプラプラークオリティ。
コメント1件

359
デフォルトの名無しさん[sage]   投稿日:2015/06/29 08:01:33  ID:s7kCM2zI.net(7)
>356
定義あったんか

360
デフォルトの名無しさん[sage]   投稿日:2015/06/29 08:06:21  ID:2N/zEhbN.net(2)
>358
お前は馬鹿なんだから黙ってろってw

361
デフォルトの名無しさん[sage]   投稿日:2015/06/29 08:28:14  ID:TRRTpdMk.net(2)
少なくとも >339 への回答がない間は、知ったか君がオレオレ定義で吹いてるだけにしか見えない
まあ、>316 みたいな具体的な回答をスルーしてることで実力はお察しレベルなんだろうけど
コメント1件

362
デフォルトの名無しさん[sage]   投稿日:2015/06/29 08:56:57  ID:s7kCM2zI.net(7)
ちょっと検索した感じじゃ特に定義された用語じゃなさそうだね。「インスタンス」
VBAもしープラプラも全面オブジェクト指向してないから、これの最初の段落のことしか言えなそう。
http://sp.e-words.jp/w/%E3%82%A4%E3%83%B3%E3%82%B9%E3%82%BF%E3%83%...
Wikipediaの解説の方は「問題点あり」になってる。
コメント1件

363
デフォルトの名無しさん[sage]   投稿日:2015/06/29 11:50:32  ID:s7kCM2zI.net(7)
>361
まあSafaArrayCreate 関数が、ってはその通りなんだけど、可変長のものをヒープ以外のところに確保できると思ってたのかねえ>314は。謎だ。
コメント1件

364
デフォルトの名無しさん[sage]   投稿日:2015/06/29 12:37:41  ID:TRRTpdMk.net(2)
>362
まあ、ヒープ上に作られた実体をインスタンスって言ってるんだと思うけど...
まあ、オレオレ定義でいいからちゃんと定義晒してもらわないとなんとも言えんわな

>363
実装方法知ってたらまずそこ思うよね

365
デフォルトの名無しさん[sage]   投稿日:2015/06/29 16:41:03  ID:s7kCM2zI.net(7)
師匠のライブラリ使えばある程度解決するんだよ
コメント1件

366
デフォルトの名無しさん[sage]   投稿日:2015/06/29 16:53:34  ID:ZS1C/3AC.net
>365
師匠って誰だよ?

367
デフォルトの名無しさん[sage]   投稿日:2015/06/29 18:13:06  ID:n/Ot7XJM.net
定義の話をするなら、そもそも
VBAの公式の資料で値型/参照型という用語をみたことがないんだが
コメント1件

368
デフォルトの名無しさん[sage]   投稿日:2015/06/29 19:16:29  ID:s7kCM2zI.net(7)
話は変わるけど64bitのExcel2010のイミディエイトペインで 2.5^ 2 とか巾乗計算するとExcelが落ちない?
2.5と^の間にスペースを挟めば大丈夫なんだけど、そうしないと落ちる。

369
デフォルトの名無しさん[sage]   投稿日:2015/06/29 19:53:15  ID:UcQNe/b5.net
>367
「VBA 値型」で検索したらMSDNで
https://msdn.microsoft.com/ja-jp/library/dd314344.aspx

が出てきたけどよく見たら.Netだった紛らわしい。
コメント1件

370
デフォルトの名無しさん[sage]   投稿日:2015/06/29 21:42:09  ID:/k/OkC/p.net
>369
それとか、
http://homepage1.nifty.com/rucio/main/dotnet/shokyu/standard34.htm
とか見て早とちりしたんだろうなって思う
このページも VBA 参照型 でヒットするくせに VB6/VB.NET が混在してて分かりにくいし

371
デフォルトの名無しさん[sage]   投稿日:2015/06/29 21:46:02  ID:2N/zEhbN.net(2)
話は変わるけど今何の話してるの?

372
デフォルトの名無しさん[sage]   投稿日:2015/06/29 22:10:14  ID:s7kCM2zI.net(7)
いままでに見た最も痛いVBAコードの話

373
デフォルトの名無しさん[sage]   投稿日:2015/06/29 22:22:02  ID:rq2QsCgv.net
・Option Expicitがない
・日本語で型指定なし変数宣言
・1サブプロシージャ1000行
・ボタンがたくさんあるのにModule1個
痛くはないけど、解析がとにかく辛かった

374
デフォルトの名無しさん[sage]   投稿日:2015/06/29 23:18:19  ID:s7kCM2zI.net(7)
ループカウンタはLongで、あとは全部Variant。だけどそうするしかないコード。

375
デフォルトの名無しさん[]   投稿日:2015/06/29 23:22:41  ID:3jcGZRUX.net
Integerはだめか?

376
デフォルトの名無しさん[sage]   投稿日:2015/06/30 00:08:24  ID:oheNslA5.net
intのほうが遅いという罠

377
デフォルトの名無しさん[sage]   投稿日:2015/06/30 07:51:30  ID:ZBtEU6fC.net
まじかよやっぱりVBA糞だわ

378
デフォルトの名無しさん[sage]   投稿日:2015/06/30 07:59:10  ID:cuvzrYNR.net
Variantは遅い、とかも含めて実用上の観点ではほとんど都市伝説の域ではないか。
コメント1件

379
デフォルトの名無しさん[sage]   投稿日:2015/06/30 08:15:01  ID:+uB1KRi8.net
>378
Cell とかのアクセスの方が全然遅いし、そもそも Variant で遅いとか言うほどデータ量でかいなら Access とか SQL-Server 使うべきだしね
地味にいまだに 64KB 制限あったりするし w
コメント1件

380
デフォルトの名無しさん[sage]   投稿日:2015/06/30 09:40:46  ID:GcuTOY9X.net
>379
「VBA 64kb制限」でぐぐってみたら、小学生並みの文章のgoo質問が出てきてすっかり萎えた。

381
デフォルトの名無しさん[sage]   投稿日:2015/06/30 19:46:24  ID:K4kCbRr+.net
アクセスって使えるのか?
エクセルと同じデータ持たせて何十倍ってデータ量になって実用に耐えないと感じた記憶しかないんだが。
コメント2件

382
デフォルトの名無しさん[sage]   投稿日:2015/06/30 20:22:54  ID:YayzGG6j.net
Excelでデータ管理してるよりはまだマシ
Excelだけじゃ集計処理とか大変だし
SQL使えないし、コード突き合わせもクエリで一発
自分だけ使う分ならAccessで十二分
ただし複数人共有で使うのは論外
コメント1件

383
デフォルトの名無しさん[sage]   投稿日:2015/06/30 21:10:44  ID:I4Ac0QOz.net
>381
Excel と同じデータで mdb が xls の何十倍になってるならなにか間違えてる

384
デフォルトの名無しさん[sage]   投稿日:2015/06/30 21:11:03  ID:Ws6hqNxp.net(2)
>381
確か1Mくらいまで使えたような

385
デフォルトの名無しさん[sage]   投稿日:2015/06/30 21:26:42  ID:QypIxxa4a
というかDBファイル用意してエクセルで読み書きすりゃいいじゃん

386
デフォルトの名無しさん[sage]   投稿日:2015/06/30 21:26:58  ID:Ws6hqNxp.net(2)
>382
アクセスと同じようにJet4.0使うならExcel のシートにもSQL投げられるよ。
それどころかフォーマットさえしっかりしていればCSVにだって投げられる。

387
デフォルトの名無しさん[sage]   投稿日:2015/06/30 22:16:11  ID:BiTNAw1o.net
そもそもデータの持ち方として、テーブル形式はもはや時代後れ。
xmlとかjsonとかが主流になるよ。
SQLは性能劣化とバグの温床だし。
SQLちょいと書き直すと処理能力10倍とかざらだから。
コメント1件

388
デフォルトの名無しさん[sage]   投稿日:2015/06/30 23:01:31  ID:fROSMXtx.net(3)
VBAでセルに数式を代入する場合、数式を文字列で代入すればよいですが、
連想配列をセルに代入する場合は、どのようにコードを書けばよいのわからず、ハマっています。
手で入力する場合の、Ctrl+Shit+Enterをどうやればいいのか...
VBAで連想配列処理を行うのではなく、連想配列式をVBAでセルに代入したいのですが、やり方がわからない。。
詳しい先輩方、ご指導くださいませ。

389
デフォルトの名無しさん[sage]   投稿日:2015/06/30 23:18:25  ID:fROSMXtx.net(3)
自己解決しまぢた。
FormulaArrayプロパティで設定するんですね。

失礼致しました。。
コメント1件

390
デフォルトの名無しさん[sage]   投稿日:2015/06/30 23:31:59  ID:tOsGp7lH.net(2)
>389
それ連想配列じゃなくて配列数式だろ?
連想配列ってmapとかのことだぜ。
コメント1件

391
デフォルトの名無しさん[sage]   投稿日:2015/06/30 23:46:00  ID:fROSMXtx.net(3)
>390
ですね。。
なんで検索しても引っかからなくて、質問しちゃったんですね。
"配列数式"って単語がウル覚えで、
検索したら"連想配列"がいっぱいでてくたもんで...

392
デフォルトの名無しさん[sage]   投稿日:2015/06/30 23:56:03  ID:tOsGp7lH.net(2)
VBA的にはDictionaryか

393
デフォルトの名無しさん[sage]   投稿日:2015/07/01 01:10:32  ID:jqNSI/h3.net(2)
>387
xamlは流行りませんかそうですか

394
デフォルトの名無しさん[sage]   投稿日:2015/07/01 07:04:49  ID:6h4b9tb7.net
SQLがバグの温床とかありえん。使う人の頭が悪いだけだよ。

395
デフォルトの名無しさん[sage]   投稿日:2015/07/01 07:53:05  ID:jqNSI/h3.net(2)
xmlは設定ファイルとかで使うことはあるけど、
データベースとして使うのに耐えうるものなの?
コメント1件

396
デフォルトの名無しさん[sage]   投稿日:2015/07/01 08:53:19  ID:D21eOTfg.net(2)
ステマっぽさある

397
デフォルトの名無しさん[sage]   投稿日:2015/07/01 11:52:06  ID:yoCegXat.net
なんだってそう  悪いのは相手 向こう 道具  おれはこれっぽっちも悪くない まちがってない!

398
デフォルトの名無しさん[sage]   投稿日:2015/07/01 12:03:15  ID:tJW6CsdE.net(2)
>395
全くと言っていいほど使い物にならないので、廃れましたよ。
完全敗北です。

いまじゃ、MongoDBのようなものも出てきていますしね。XMLDBが復権する
事はもうありませんよ。

399
デフォルトの名無しさん[sage]   投稿日:2015/07/01 12:04:30  ID:tJW6CsdE.net(2)
ちなみにXMLDBの遅さは、

第三形態になったフリーザ vs ベジータの戦いみたいなもの。
もちろんベジータがXMLDBだ。

400
デフォルトの名無しさん[sage]   投稿日:2015/07/01 12:17:10  ID:mPxMjEr/.net
XMLDB ってそのままの形で扱う訳じゃないでしょ
他のプログラムが出力した XML を読み込んで処理するためのものだと思ってたけど...
要するに CSV の代替じゃないのかな?
コメント2件

401
デフォルトの名無しさん[sage]   投稿日:2015/07/01 12:27:12  ID:iTWnMbVI.net
おいエクセルは?VBAは?!
コメント1件

402
デフォルトの名無しさん[sage]   投稿日:2015/07/01 12:33:07  ID:D21eOTfg.net(2)
>401
セル範囲に対して
範囲.Value ってやると2次元配列が取得できて便利だね!
だけど 矩形(長方形)じゃない飛び飛びの範囲だと思わぬ結果になって罠だね!

403
デフォルトの名無しさん[]   投稿日:2015/07/01 21:24:16  ID:G7iO5tSrE(2)
てす

404
デフォルトの名無しさん[]   投稿日:2015/07/01 21:28:50  ID:G7iO5tSrE(2)
セルをマウスオーバーした時に別セルの値を表示したい、って時どう実現します?
要件は、
セルに記載されているコードを元に別ブックのセルの値を参照してそのコードに紐づく名称をとりたいといったものです。
自分はFindで見つかった値をセルのコメントに登録して表示するようにしたのですが、どうもコメント登録時の赤いポチがお気に召さないようで、どうしたもんかと考えています。
まあ見た目だけなんで業務的にはどうってことないんですけど。

405
デフォルトの名無しさん[sage]   投稿日:2015/07/01 21:49:36  ID:r6P8NuLo.net(2)
>400
過去の歴史を勉強したまえよww
コメント2件

406
デフォルトの名無しさん[sage]   投稿日:2015/07/01 22:24:17  ID:huUe7xTB.net
>405
アホ晒して楽しいのか? w
コメント1件

407
デフォルトの名無しさん[sage]   投稿日:2015/07/01 22:25:12  ID:r6P8NuLo.net(2)
>406←アホの事例ですね。
コメント1件

408
デフォルトの名無しさん[sage]   投稿日:2015/07/01 23:43:00  ID:s4VVys9R.net
ワシはティンコを2本もっている
2本目はとっておきだ(´・ω・`)b

409
デフォルトの名無しさん[sage]   投稿日:2015/07/02 05:03:52  ID:D0UhKb7j.net
>407
具体的な内容を書けないなら無理にレスするなよ w
コメント1件

410
デフォルトの名無しさん[sage]   投稿日:2015/07/02 05:22:03  ID:9qb5cWlQ.net(4)
xml形式はその昔、「人が読めて、実装も簡単で、拡張性もあり、内容構造の変更も簡単」という利点を強調されてたな。
でも意味づけする為に修飾子が大量にくっついてくるわけだから大型のデータベースには向かないのは確かだろうな。

411
デフォルトの名無しさん[sage]   投稿日:2015/07/02 09:37:50  ID:CcSdJJgr.net
>409
おまえなんか具体的な事書いてんの?
コメント1件

412
デフォルトの名無しさん[sage]   投稿日:2015/07/02 09:54:01  ID:DnmQ2SBtS
xmlなんてどうでもいい
dxfつかってCADデータベース操作するような意味不明なことしてるやつとかいねえのか

413
デフォルトの名無しさん[sage]   投稿日:2015/07/02 20:19:18  ID:RENWNoB4.net(2)
シート毎(シート名は対象月)に翌月10日を指定し、指定日以降に対象シートを開いたら処理A を行う 
という動きをさせたいのですが、以下の式では、1月以降を指定月日としたシートを開くと、処理が実行されてしまいます。
(年を見ていないので当然ですが・・・)
これを回避するには、どのようにすればよいのでしょうか?

※指定月日を"年月日"にすれば回避できますが、毎年のメンテナンスが必要となるので、それは避けたいです。

Sub Sheetlock()
Dim MyMonth As String
Dim MyDate As Date '指定月日
MyMonth = ActiveSheet.Name

Select Case MyMonth
Case "4月度"
MyDate = "5/10"
Case "5月度"
MyDate = "6/10"
〜略〜
Case "12月度"
MyDate = "1/10"
Case "1月度"
MyDate = "2/10"
Case "2月度"
MyDate = "3/10"
Case Else
MyDate = "4/10"
End Select

If MyDate <= Date Then
処理A
End If
End Sub
コメント2件

414
デフォルトの名無しさん[sage]   投稿日:2015/07/02 20:26:36  ID:cgPWlYAt.net(3)
>413
指定日はDateと比べるんだから、指定日の年はDateの年を設定すればいい
指定日は終了日だけじゃなくて開始日も必要だろう
コメント1件

415
デフォルトの名無しさん[sage]   投稿日:2015/07/02 20:49:29  ID:RENWNoB4.net(2)
>414

5/10から12/10まで MyDate = year(Date)&"月日"
1/10から4/10まで MyDate = year(Date)+1&"月日" とせよ、
という理解であっておりますでしょうか?

その場合、例えば2016/1/10に"12月度"のシートを開いても、
指定日が2016+1 /1/10 となってしまい、処理は実行されないと思うのですが、、、
コメント2件

416
デフォルトの名無しさん[sage]   投稿日:2015/07/02 20:50:31  ID:9qb5cWlQ.net(4)
>413
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Dim oMonth As Byte, oYear As Integer, oDate As Date

oMonth = CByte(Left(Sh.Name, Len(Sh.Name) - 2)) + 1
oYear = Year(Date)

If oMonth > 12 Then
oMonth = 1
oYear = oYear + 1
End If

oDate = CDate(oYear & "/" & oMonth & "/" & 10)

If oDate <= Date Then
MsgBox "処理A"
End If
End Sub

ThisWorkbookに貼り付け。

417
デフォルトの名無しさん[sage]   投稿日:2015/07/02 21:01:08  ID:9qb5cWlQ.net(4)
>415を読んで「確かにそうだわ」と思って書き直し。

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Dim oMonth As Byte
Dim f As Boolean

oMonth = CByte(Left(Sh.Name, Len(Sh.Name) - 2)) + 1
If oMonth > 12 Then oMonth = 1

If oMonth < Month(Date) Then
f = True
ElseIf oMonth = Month(Date) Then
If Day(Date) >= 1 Then f = True
End If

If f Then
MsgBox "処理A"
End If
End Sub

12月度が反応しちゃうけど「いつまで反応し続けるか」が条件にないし、年度管理しないとそんなもんかなぁ。
コメント1件

418
デフォルトの名無しさん[sage]   投稿日:2015/07/02 21:04:45  ID:9qb5cWlQ.net(4)
>417
あ、Dayの指定をテスト状態から戻して無かったわ。
下から6行目の所、

If Day(Date) >= 10 then f = True

にしといて。

419
デフォルトの名無しさん[sage]   投稿日:2015/07/02 21:28:54  ID:cgPWlYAt.net(3)
>415
12月ってのは、当年のなのか?前年または翌年なのか?
当年の12月なら、2016/1/10において12月度(2016/12/11-2017/1/10)はまだ到達してないから
処理が実行されないのは正常だよね
当年度の12月というのであれば、当日が4/1以降かどうかで当年か前年か切り替えないとダメだろう(年度切り替えが4/1だとして)

420
デフォルトの名無しさん[sage]   投稿日:2015/07/02 21:39:28  ID:R9hbfqH1.net(2)
ブックに対象年度の情報がなければ正確な処理は論理的に不可能です
コメント2件

421
デフォルトの名無しさん[sage]   投稿日:2015/07/02 21:59:38  ID:cgPWlYAt.net(3)
>420
対象の年度が何らかの方法で確定できるなら、ブックに対象年度が無くても理論的には可能です
たとえば
対象の年度は現在の年度とし、現在の年度はPCの操作時の日付より確定できるときとかな
まあ、対象年度の情報はいらないが、年度に関する何らかの情報は必要かもしれんが
年度確定のための情報(年度開始日)とかな

つか俺VBAの話一切してないなw
コメント1件

422
デフォルトの名無しさん[sage]   投稿日:2015/07/02 22:22:25  ID:R9hbfqH1.net(2)
>421
それはまた随分非論理的な理論ですね。
どこかで発表されているのでしょうか、その理論は?

423
デフォルトの名無しさん[sage]   投稿日:2015/07/02 23:49:36  ID:PhnYLcQw.net
>420
うん。俺も無理だと思った。
頭が決まってないんだから、何をもって年が始まったばかりなのか、
1周して来たのかを確定出来ないと思う。

424
デフォルトの名無しさん[sage]   投稿日:2015/07/03 00:18:24  ID:xQFZnjt9.net
どうせbook名に2015とかついてるだろうからそこから取得すれば?
コメント2件

425
デフォルトの名無しさん[sage]   投稿日:2015/07/03 08:21:48  ID:zaw8UGxR.net(2)
>424
もうそういう反吐の出るような作り方してる奴は無視でいいよ。

426
デフォルトの名無しさん[sage]   投稿日:2015/07/03 10:14:07  ID:bMlB0lVi.net(2)
>424
そういう解決法はありありだと思うけどなぁ。
シート名に情報入れといて抜き出すとかも。
コメント2件

427
デフォルトの名無しさん[sage]   投稿日:2015/07/03 10:48:31  ID:tIDo5nwi.net
マクロと一緒のディレクトリにテキストファイル置いて
「2015」とか書いて読み取るとか。
コメント1件

428
デフォルトの名無しさん[sage]   投稿日:2015/07/03 11:10:15  ID:zaw8UGxR.net(2)
>426
ドキュメントプロパティを使えよ・・・ブック名なんていい加減なもの使わないで。
コメント2件

429
デフォルトの名無しさん[sage]   投稿日:2015/07/03 12:22:12  ID:xJ8vVgP9.net
ファイル名は確実なアイデンティティだぞ

430
デフォルトの名無しさん[sage]   投稿日:2015/07/03 12:26:17  ID:vPK10GoB.net
別なページに「2015」って年度入れると、
その年度の月度毎のテーブル作るようにしといて、
他のページはそこを参照させるとかなら簡単、というかメンテしやすい

まあ、ページ開くとマクロ実行なんてオレは実装しないんで良いけど

431
デフォルトの名無しさん[sage]   投稿日:2015/07/03 13:20:39  ID:bMlB0lVi.net(2)
>428
ドキュメントプロパティの読み込みは時間かかるからね。
例えば、1000ファイルの中の処理対象100ファイルを特定するのに、Dir.glob()系の機能で
探した方が高速でしょ。

ドキュメントプロパティにしか情報が無いと、全ファイルをオープンしないと、処理対象が
わからない。

それと、hoge_2015.xlsxというファイルをコピーして2016年用のファイルを作るとき、大抵の
人ならhoge_2016.xlsxというファイル名にするはず。
ドキュメントプロパティに設定しないといけないなんて、思いつく人はほとんどいない。

ただ、ドキュメントファイル内のメタデータを活用できるツールを使ってるなら、ドキュメント
プロパティは積極的に使うのがいいと思う。

432
デフォルトの名無しさん[sage]   投稿日:2015/07/03 14:04:17  ID:R//i/7GN.net(2)
>426
同意
ただし、速度とかじゃなくて、大抵の利用者にとってその方が簡単で、分かりやすくて、間違いにくいから
データ量が多いなら >427 とかもあるけど年号程度ならファイル名で充分
ドキュメントプロパティとか言ってる奴は自称℃玄人の臭いがする w
ユーザーに触らせないちょっとした設定とかを置くにはいいんだけどね

433
デフォルトの名無しさん[sage]   投稿日:2015/07/03 14:05:48  ID:R//i/7GN.net(2)
>411
>405 に比べれば >400 の方がより具体的だろ?

434
デフォルトの名無しさん[sage]   投稿日:2015/07/03 17:34:55  ID:KcmFW5ogi
データベース関数つかえば大抵のことはできるもよう(データベースとして使えるとはいってない)

435
デフォルトの名無しさん[sage]   投稿日:2015/07/04 13:21:08  ID:U38uGtdG.net
しょうもないけど分かりやすいソリューションは生き残る

436
デフォルトの名無しさん[sage]   投稿日:2015/07/04 14:34:10  ID:WvwJxr10.net
>428
次にお前は「コピペしたままプロパティ修正漏れの犯人誰だ!? コロセ」という

437
デフォルトの名無しさん[sage]   投稿日:2015/07/04 14:47:41  ID:n+Lf90L5.net
コピペしたままプロパティ修正漏れの犯人誰だ!? コロセ


はっ!!

438
デフォルトの名無しさん[sage]   投稿日:2015/07/04 19:49:31  ID:CDSb/b0p.net
居たぞ!あいつだ!
撃てー!!

439
デフォルトの名無しさん[sage]   投稿日:2015/07/05 01:16:07  ID:YU79Y+KK.net(2)
Dim myCell As Range
myCell = ThisWorkbook.Worksheets("Sheet1").Range("A1")

このような記述の後は、その都度ブック名やワークシート名を明記しなくても、
myCellがThisWorkbookのSheet1のA1セルであることは保証されますか?
つまりブック名やワークシート名を省略しても大丈夫でしょうか?

440
デフォルトの名無しさん[]   投稿日:2015/07/05 01:42:12  ID:SLIL1g2F.net
Dim myCell As Range
Set myCell = ThisWorkbook.Worksheets("Sheet1").Range("A1")
これで大丈夫
コメント2件

441
デフォルトの名無しさん[sage]   投稿日:2015/07/05 03:20:04  ID:YU79Y+KK.net(2)
>440
ありがとうございました。

442
デフォルトの名無しさん[]   投稿日:2015/07/05 09:04:41  ID:vbphD8dy.net(4)
あるアプリケーションソフトで
データファイルを与えたらそれを分析して画像ファイルとして出力してくれるものがあるのですが
これらの操作をVBAのコードで書いて自動化することはできますか?

443
デフォルトの名無しさん[]   投稿日:2015/07/05 09:08:34  ID:vbphD8dy.net(4)
「データファイルを与えたらそれを分析して画像ファイルとして出力」の部分は
本来ならそのアプリケーションを立ち上げた状態で
ファイル(F)→開くで開いて、そのアプリに特有な操作(といってもツール→出力みたいな操作)をしないといけません。

444
デフォルトの名無しさん[]   投稿日:2015/07/05 09:09:42  ID:vbphD8dy.net(4)
つまりVBAで
・あるアプリを開く
・そのアプリを操作する (メニューバーからの選択だけのわりと単純)
のコードは書けますか?
コメント1件

445
デフォルトの名無しさん[sage]   投稿日:2015/07/05 09:28:22  ID:ayYTjQLc.net
>444
コマンドラインからの操作ならWScriptを介せば出来る。ただそのソフトからの出力を直接受け付ける事は出来ない。
コメント1件

446
デフォルトの名無しさん[]   投稿日:2015/07/05 09:50:10  ID:vbphD8dy.net(4)
>445
ありがとうございます。
ところでWScriptとはなんでしょうか?
出力はそのソフトが勝手にファイルを作ってくれるなら大丈夫でしょうか?

447
デフォルトの名無しさん[sage]   投稿日:2015/07/05 11:30:21  ID:XIvEwRaJ.net
Windows Script Host (WSH)

VBScript (VB)か、JScript (JavaScript)で、
プログラミングする

448
デフォルトの名無しさん[sage]   投稿日:2015/07/05 14:55:03  ID:CZs4iz8t.net(2)
)))))))))))(´・ω・`)b

449
444[444]   投稿日:2015/07/05 14:55:29  ID:CZs4iz8t.net(2)
444げっち(´・ω・`)b

450
デフォルトの名無しさん[sage]   投稿日:2015/07/07 06:53:14  ID:N5IK5nOl.net
質問です

今VB6でExcelのシートを追加して一覧を作成する処理を作ってるんですが
BookやSheetを扱うときはBookやSheet用の変数を用意してそれを使って
最後に必ず解放しないとメモリにゴミが残ると聞きました

RangeやCellsもそうしないとだめですか?

451
デフォルトの名無しさん[sage]   投稿日:2015/07/07 08:28:55  ID:xJTxnmtV.net(2)
適当に解放は不要だと言ってみる

452
デフォルトの名無しさん[]   投稿日:2015/07/07 12:33:14  ID:L2fl7GI9.net(9)
>440
Sheet1.Range()ってやればいいのに、なんでworksheets()ってやる馬鹿が多いの?
シート名変えたら動かなくなっちゃうじゃん。
コメント1件

453
デフォルトの名無しさん[sage]   投稿日:2015/07/07 12:34:16  ID:IXfNO3Pf.net
シート変えても動くようにするためでしょ
コメント1件

454
デフォルトの名無しさん[sage]   投稿日:2015/07/07 12:35:47  ID:4626lywF.net(3)
>452
オブジェクト名変えたら動かなくなっちゃうじゃん
コメント1件

455
デフォルトの名無しさん[]   投稿日:2015/07/07 12:38:02  ID:L2fl7GI9.net(9)
>453
はw?
シート変えるなら
Sheet2って変えればいいだけでしょ、

コレクションで指定だと、存在しないシート指定してたら実行時までエラーがわからんぞ。
コンパイルで弾くようにしろって。

456
デフォルトの名無しさん[]   投稿日:2015/07/07 12:40:05  ID:L2fl7GI9.net(9)
>454
オブジェクト名変えたら動かなくていいんだよw
シート名変えて、コードないの変えるべきとこ変えないで動いてる方が問題だろw
コメント1件

457
デフォルトの名無しさん[]   投稿日:2015/07/07 12:41:29  ID:L2fl7GI9.net(9)
動的って条件がなかったな。
そういう条件があればそれでいいよ

458
デフォルトの名無しさん[]   投稿日:2015/07/07 12:42:58  ID:L2fl7GI9.net(9)
でも、この場合Sheet1をベタ打ちしてるんだからSheet1しか参照しないだろ

459
デフォルトの名無しさん[sage]   投稿日:2015/07/07 12:43:24  ID:4626lywF.net(3)
>456
落ち着いて自分のレス読み直してみろ
コメント1件

460
デフォルトの名無しさん[]   投稿日:2015/07/07 12:46:45  ID:L2fl7GI9.net(9)
>459
Sheet1って指定しときゃシート名変えても動くのしらなかった?
名前経由じゃなくてオブジェクトを直接参照してるって仕組みわかってる?
コメント1件

461
デフォルトの名無しさん[sage]   投稿日:2015/07/07 12:46:47  ID:4626lywF.net(3)
まあ、そんなもんはどっちでも良いんだよ。
本当に問題があるのは、こうでなければいけないっつー凝り固まった頭。
コメント1件

462
デフォルトの名無しさん[]   投稿日:2015/07/07 12:48:12  ID:L2fl7GI9.net(9)
>461
学習能力がないっていうんだよ。そういうの。
プログラムに関心がないならそう言えばいいじゃん。

463
デフォルトの名無しさん[sage]   投稿日:2015/07/07 13:48:16  ID:xJTxnmtV.net(2)
プログラムには関心があるのでMSの仕様は積極的に無視していこうぜ!

464
デフォルトの名無しさん[sage]   投稿日:2015/07/07 16:38:29  ID:qt5SIPya.net
そりゃ、Sheet1ってのはオブジェクト名であって、シート名じゃないからな
まあシートのオブジェクト名わざわざ変えるやつはそうそう居ないだろうけど
シートのオブジェクト名変えてもWorksheetsなら動くけど、Sheet1だと動かなくなるぞ
コメント1件

465
デフォルトの名無しさん[]   投稿日:2015/07/07 18:55:06  ID:L2fl7GI9.net(9)
>464
コンパイルエラーと実行時エラーを同じエラーで済ますのならこれ以上話すことはないです。

466
デフォルトの名無しさん[sage]   投稿日:2015/07/07 19:05:50  ID:PadiFETB.net
結局のところ、俺の中では
Worksheets(Sheet1.Name)って指定してやることで落ち着いた

467
デフォルトの名無しさん[sage]   投稿日:2015/07/07 19:14:05  ID:C/6MhKU5.net
thisworkbook以外のブックのsheet1オブジェクトってどうやって参照すんの
コメント1件

468
デフォルトの名無しさん[sage]   投稿日:2015/07/07 19:22:06  ID:kLzThONO.net(2)
エクセルのシートってマクロ実行中でもユーザーが削除出来ちゃうんだぜ
怖いよねこれ

469
デフォルトの名無しさん[sage]   投稿日:2015/07/07 21:04:00  ID:ng2chkeI.net
設定シートとか、原本シートならオブジェクト名分かりやすいのにいつも変えてるわ
それ消されたら、プログラム自体動かなくなるんだし
あとworksheets("名前")って自動メンバ表示されないよね
いっぱいworksheets("名前")って書いてあると、間違えたりしないのかなと気になる
書き方って人それぞれなんだとは思うけど

470
デフォルトの名無しさん[sage]   投稿日:2015/07/07 22:17:02  ID:kLzThONO.net(2)
シートを特定するコードはいっぱい書くものじゃないよ

471
デフォルトの名無しさん[sage]   投稿日:2015/07/07 22:18:48  ID:RkSJtY+g.net
>460
おれは知ってるけど
sheet1だの2だの連番だと分かりにくいから名前指定する派
オブジェクト名わざわざ変えるのもメンドイし

シート名を変えるとプログラム動かなくなるから
変えないでねって、禁止すればいいだけの話
ユーザーが勝手にシート名変えられると、
統一感無いシート名になるから嫌だ
パートのおばちゃんとか変なシート名つけるんだよ
全角半角混在とか
コメント2件

472
デフォルトの名無しさん[sage]   投稿日:2015/07/07 22:19:51  ID:XzarvOcj.net
>467
ThisWorkbookから別のブックを開いて参照するのなら以下の方法
手操作などで別途開いてあるブックを参照する方法はわからん

Dim bk1 as Workbook
Set bk1 = Workbooks.Open(ブックを開くための各種パラメータ)
これでブックを開く
あとは
bk1.Sheets("sheet1")で参照する

473
デフォルトの名無しさん[]   投稿日:2015/07/07 23:01:33  ID:L2fl7GI9.net(9)
>471
置換しろ。初心者か

474
デフォルトの名無しさん[sage]   投稿日:2015/07/07 23:37:06  ID:ZBt1Rm7d.net
>471
あなたの主張の本質と関係ないところで悪いけど、データじゃなくて名前だろ?
全角半角混在なんて何も悪いことはないと思うよ。
コメント1件

475
デフォルトの名無しさん[sage]   投稿日:2015/07/08 00:27:04  ID:MD3q7WpQ.net
コードのリファクタリングで置換とかそれマジで言ってるの

476
デフォルトの名無しさん[sage]   投稿日:2015/07/08 01:35:24  ID:Jtek8cfL.net(3)
そんなのリファクタリングと呼べるのか?

477
デフォルトの名無しさん[sage]   投稿日:2015/07/08 05:58:09  ID:dAdTeSHa.net(2)
VBA弄れるヤツじゃないと修正出来ない様なエラー出しても問題ない環境ならオブジェクト名を直に選択してもいいだろうけど、
普通、VBA使うような職場だったらメッセージ出して素人でも修正可能な状態に出来るWorksheets()を使うだろうなぁ。

478
デフォルトの名無しさん[sage]   投稿日:2015/07/08 06:36:39  ID:20FcS8oh.net(3)
>474
シート名も本質的にはデータだよ
コメント2件

479
デフォルトの名無しさん[sage]   投稿日:2015/07/08 06:48:28  ID:6TnygTyi.net
>478
であればデータ型は文字列なんだから文字列として許されるものならなんでもいい

480
デフォルトの名無しさん[sage]   投稿日:2015/07/08 06:57:00  ID:z3zUBBg1.net
>478
視覚的に認識しやすいから名前は重要だ
Sheet1って書いてあって何を示すのかはわからないだろ?
そりゃ名前つけたくなるだろ
パートのおばちゃんが正しい

Sheetの左隅にでもルール上の連番アンカ文字列つけて
それを見て判定する様な処理を追加すれば解決する
重複は検出してエラーではじく
コメント1件

481
デフォルトの名無しさん[sage]   投稿日:2015/07/08 07:19:46  ID:Jtek8cfL.net(3)
Sheet1と言うのは例えだと思うよ。

どんな作りにするかは、個人で組むなら何でもありだろうけど、
仕事なら社内での取り決めありきじゃないの?

シートの横っちょにアンカー文字付けてたって、
何のゴミだこれと思って消しちゃうパートのおばちゃんだっているかもよ。

482
デフォルトの名無しさん[sage]   投稿日:2015/07/08 07:27:05  ID:b3kmvtlv.net
ブックもシートもSetしてから使うもんだろ
基本中の基本
個人的には、小規模ならWithでも可としてる
コメント2件

483
デフォルトの名無しさん[sage]   投稿日:2015/07/08 07:55:49  ID:Jtek8cfL.net(3)
>482
なんで直接弄らないで変数に一度入れないといけないの?

基本中の基本が分からなくてごめん。
でも本当に分からないから教えて下され。

484
デフォルトの名無しさん[sage]   投稿日:2015/07/08 08:02:24  ID:20FcS8oh.net(3)
>480
そんな面倒なこと考えなくても重要なデータはプロテクトかければいいんだよ。

シート名は重要だからこそ、パートのおばちゃんにへんてこな名前に変えられないように
してあげるのが優しいやり方。
そもそも、基本的にマクロを含むエクセルファイルはプロテクトをかけるべきだね。

485
デフォルトの名無しさん[sage]   投稿日:2015/07/08 10:11:14  ID:G6HCaUBj.net
他人に使わせるという発想!

486
デフォルトの名無しさん[sage]   投稿日:2015/07/08 11:28:53  ID:NFLl29uw.net
至急!
Officeアップデートしたら使えなくなったよ。KB2596787かKB2920794だと思うけど。その後すぐにMicrosoft.NET Framework3.5.1の更新もあてて、最新状態だけど動かない。

「'CommandButton1'コントロールは作成されていないため、デザインモードを終了できません。」と出てきてvbaが動かないよ。

助けて
コメント1件

487
デフォルトの名無しさん[]   投稿日:2015/07/08 12:13:25  ID:Fjn1PRGp.net
>482
なぜ、Setするのが基本なの?

set ws = thisworkbook.worksheet(sheet1.name)

は 結局sheet1と等価なものなのに。
コメント2件

488
デフォルトの名無しさん[sage]   投稿日:2015/07/08 12:19:49  ID:HWq2i8Xl.net
ヨソ様に使って戴くという謙虚な慎み深さ!

489
デフォルトの名無しさん[sage]   投稿日:2015/07/08 15:53:22  ID:HMKJDSG5.net
>486
それ、最近まで有名になってた問題じゃんww

とっくに解決策でてるよ

490
デフォルトの名無しさん[sage]   投稿日:2015/07/08 18:53:12  ID:pxdeghu8.net
forguncyっていうアプリ気になるんだけど使ってる人いますかね
VBAでDBに接続して、出力するセルを指定して
既存の帳票にデータを表示するのが面倒臭くなってきたし
何よりweb化できるっていうのが気になる

491
デフォルトの名無しさん[sage]   投稿日:2015/07/08 19:44:47  ID:dAdTeSHa.net(2)
>487
Set WS = ThisWorkbook.Worksheets("Sheet1")

はSheet1と等価じゃないから。
というかこの話が分からないのはVBA触ったことないヤツだけだろ。
コメント4件

492
デフォルトの名無しさん[sage]   投稿日:2015/07/08 20:42:07  ID:20FcS8oh.net(3)
俺はどっちかというと等価派だな

493
デフォルトの名無しさん[sage]   投稿日:2015/07/08 20:46:23  ID:PAkk6Hqa.net
>491
等価でない理由を教えてちょーだぁ〜
コメント1件

494
デフォルトの名無しさん[sage]   投稿日:2015/07/08 21:35:47  ID:JmEjW40sv
セットしたら実行中にプロパティ格納するやん

495
デフォルトの名無しさん[sage]   投稿日:2015/07/08 22:13:57  ID:NCKypISk.net
質問。
小数点がピリオドじゃない言語圏で、小数を含む文字列を安全に数値に変換するとしたらどんな方法があるでしょうか。
同じソフトを流用したいのだけど、おフランスだと小数点がカンマなんだよね。。。
コメント2件

496
デフォルトの名無しさん[sage]   投稿日:2015/07/08 22:45:14  ID:85bEY6Fg.net
カンマをピリオドに置き換えちゃえばいいんでね?ダメかな?w
コメント1件

497
デフォルトの名無しさん[]   投稿日:2015/07/08 23:40:21  ID:FO1XXzvv.net
>495
オプションで小数点記号と桁記号を変更できるから
おフランス式に設定した後に
=value("123.456,789")
でいいんじゃないかい
コメント1件

498
デフォルトの名無しさん[sage]   投稿日:2015/07/08 23:43:19  ID:Czg0GgmD.net
>491
等価かわからないけど、こう書く派。
後から読んでわかりやすいから。

ま、書きたいようにかけ。
規約があるなら則れ。

499
デフォルトの名無しさん[sage]   投稿日:2015/07/08 23:52:44  ID:oZ2b660+.net
マジックナンバーや設定値は、プログラム中に書かずに、外部ファイルから読み出せよ。
おれは面倒だから、設定値記入用のワークシート(これだけは名前固定)を用意しているけどな。

500
489[sage]   投稿日:2015/07/09 00:41:06  ID:AOeRDpks.net(2)
ありがとうございます。

>496
じつは自分も最初そう思った。w
でももっと安全な方法もないかな〜とここで質問させて貰いました。
ケースが限定されているので、それでもたぶん大丈夫だとは思うんだけど。

>497
そんな設定があったのですね。
設定を変えてしまうと影響範囲が大きいかも知れないので、まずそっちを確認してみるです。
‥‥逆に、小数点の情報をプロパティから拾えれば、変換前に双方を置換で済ませられるかも。

501
デフォルトの名無しさん[]   投稿日:2015/07/09 02:54:43  ID:Vp2Vvxuo.net(2)
>491
=で比較してみろハゲ
コメント3件

502
デフォルトの名無しさん[sage]   投稿日:2015/07/09 03:35:26  ID:JlZfMmHC.net(3)
>495
試した事ないからちゃんと動くかどうかは知らんが
CCurとかのCxxx系の変換関数は、国別情報に従って変換するはず
コメント1件


503
デフォルトの名無しさん[sage]   投稿日:2015/07/09 03:43:39  ID:JlZfMmHC.net(3)
>501
=で何を比べろと?
Sheet1やWorksheetにデフォルトプロパティはなかったはずだけどなぁ
If Sheet1 = ws とかやれって言ってるの?
そもそもSetされてる変数は参照をもってるわけで
参照となにかが等価ってのがどういう状況の事を言ってるのかよくわからんが

ちなみに
Set ws = ThisWorkbook.Worksheets("Sheet1")
MsgBox ws Is Sheet1
だとTrueって表示されるんだが、これについてはどう思ってるの?
コメント1件

504
デフォルトの名無しさん[sage]   投稿日:2015/07/09 04:43:53  ID:IJ3FUG93.net
>493
Worksheetの名前がSheet1である事と、オブジェクト名がSheet1である事は保証されていないから。

特に複数ファイル読み込んでバッチ処理するような時にオブジェクト名を直に指定とかしてたら、
一つでも該当のオブジェクト名が無かったらその度に止まって使い物にならない。
シート名で指定するなら最初に目的のシート名がブック内にあるかどうか探せばエラーを回避できるんで、普通はWorksheets()を使う。

真面目に解説するのがアホらしくなるくらい基本中の基本。

というか今までの流れ見てるとシートに直接コード書いちゃうヤツが結構いるのか。
ワークシートはセルに情報を書いたり消したりする度に容量が増えるから定期的に新しいシート作ってコード全て移すメンテナンスが必要になるぞ。
コメント3件

505
デフォルトの名無しさん[sage]   投稿日:2015/07/09 06:09:50  ID:4VH0pnre.net(2)
>503
ああ、演算子の等値比較とか等価比較の事だと勘違いしちゃったんだね。
でも、今は言語のシンタックスを論じてる訳ではないからそういう区別はいらないよ。
普通は、等値=等価という意味で使って問題ない。
コメント1件

506
デフォルトの名無しさん[sage]   投稿日:2015/07/09 06:15:21  ID:0cZHnh39.net(3)
>504
>ブックもシートもSetしてから使うもんだろ

と、

>Worksheetの名前がSheet1である事と、オブジェクト名がSheet1である事は保証されていないから。

は、全然関係無さそうな気がするなぁ。どっちも変えられるのこそ当たり前の話だし。

そもそも直接Objectを設定したり、その名前を使うと言うのなら
Objectが無い時点でコンパイルエラー起こすからその場ですぐ判る訳だし。

そこを踏まえて何で基本中の基本なのかもう一度説明して欲しいなぁ。

507
デフォルトの名無しさん[sage]   投稿日:2015/07/09 06:32:59  ID:M1CA7AhU.net
>504
シートに直接コードを書くとはどういう意味ですか?
それがよくないのなら、どうすればよいですか?

508
デフォルトの名無しさん[sage]   投稿日:2015/07/09 06:58:14  ID:0cZHnh39.net(3)
シートのイベントって標準モジュール側でも拾えるんだっけ?
コメント1件

509
デフォルトの名無しさん[sage]   投稿日:2015/07/09 07:03:09  ID:yvZx6GXv.net(3)
>508
確かダメ

510
デフォルトの名無しさん[sage]   投稿日:2015/07/09 07:22:06  ID:0cZHnh39.net(3)
複数のブックを開いて対象のシートを処理するという流れなら確かにシート名から見た方がいいかもね。

でもObjectから指定する場合は自ブックひとつで纏まってるもので、
運用的にシートを削除してはいけない取り決めがあるものなら、
運用から「シート名を変えてはいけない」という規制を外すことができる。

だから最初の設計の時点でどっちにするか決めることで
その前に絶対どっちかに決まることじゃないと思うけどな。

もっともそれはSetを使うのが基本中の基本と言うのとは全く別の話。

Set使わなくてもシート名指定でもObject指定でも使えるからね。

511
デフォルトの名無しさん[]   投稿日:2015/07/09 08:09:53  ID:r4sommXw.net(3)
約5000ページあるwebページを、
30秒以内にすべてコピーペーストすることって技術的に可能ですか?
1ページずつやってたら、一回のコピーペーストで0.5秒くらいかかっちゃいますが
なので一遍にやる事って可能です?
もしくはコピーペーストじゃなくても、内容を更新の度にそのまま転送できる方法とかってあるんですか?

よくなんかの情報サイトとかで、
一分一秒で一気に更新されてる情報サイトとかありますよね。
ああいうのもプログラムで一遍にやってるわけですよね?


あとIQテストの問題みたいに、あるデータの中にある規則性を発見させる事って技術的に可能ですかね?
プログラムを書く自分が答えをわかってなくても、です。
人工知能の領域に入っちゃいますかね?

例えば
●●●?●●●

この?に入るものは何か(答えは●)
って時に
予めプログラムで●って入力してれば、この問題が出た時に●って入れるんでしょうけど
一切自分答えがわからなくても、コンピュータが自分で計算して●って答えを出してくれるような感じです。


例えば将棋のソフトなんて、作ってる人は将棋の初心者程度の実力しかなかったりっていいますよね。
にも関わらず、人間より強いソフトを作ったりしますよね。
チェスやオセロなんか、人間をはるかに超えてるわけじゃないですか。
コメント3件

512
デフォルトの名無しさん[sage]   投稿日:2015/07/09 08:34:48  ID:n0IdOdTN.net
シート名が変更されてるケースがあるから >491 が等価でないと言うのはわかるけど、>487 へレスしてる意図がわからん

513
デフォルトの名無しさん[]   投稿日:2015/07/09 08:39:00  ID:Vp2Vvxuo.net(2)
>504
コンパイルって機能しってますか?
基本中の基本ですよ

514
デフォルトの名無しさん[sage]   投稿日:2015/07/09 08:50:08  ID:yvZx6GXv.net(3)
>511
webページをコピペする速さと、更新する速さは別の作業を比較しているようで、意味無いんじゃあないのか?
コメント1件

515
デフォルトの名無しさん[sage]   投稿日:2015/07/09 09:39:12  ID:0zCUc4Y+.net
>511
機械学習の分野だなぁ
コメント1件

516
デフォルトの名無しさん[]   投稿日:2015/07/09 10:05:02  ID:r4sommXw.net(3)
>514
どういうことでしょうか?
例えば
http://www.chikuwachan.com/live/
これなんかはニコニコ生放送の何千とあるほぼすべての放送のコメント数をリアルタイムで表示しています。
こういうのはどうやってるんでしょうか?
一気に数千窓開いてコピーしたりっていう?

まあこんな感じで一気に数千のデータをリアルタイムで集めてエクセルに記録したいのですが。
可能なんですか?
どういう方法をやってるんでしょうか?

>515
エクセルのVBAでは無理がありますか?
コメント2件

517
デフォルトの名無しさん[sage]   投稿日:2015/07/09 10:08:15  ID:hn2NpzTq.net
Excelのwebクエリでできなきゃ諦めろん。

518
デフォルトの名無しさん[sage]   投稿日:2015/07/09 10:23:16  ID:yvZx6GXv.net(3)
>516
そのサイト開いて見たが、時事刻刻変化しているようには見えないが。

519
デフォルトの名無しさん[sage]   投稿日:2015/07/09 10:35:12  ID:SLWTmnwe.net
>511
> 約5000ページあるwebページを、
> 30秒以内にすべてコピーペーストすることって技術的に可能ですか?

対象が第三者のサーバなら、技術的に可能か不可能かの前に、それはやってはいけない。
常識的なアクセス頻度は1ページ/1secまで。
それを超えるとアタックと見なされる恐れがある。
コメント1件

520
デフォルトの名無しさん[sage]   投稿日:2015/07/09 12:01:20  ID:r4sommXw.net(3)
>519
何か方法ありませんか?
>516のページもダメなことしてるってことなんです?
違うページでもダメなんですか?
コメント1件

521
デフォルトの名無しさん[sage]   投稿日:2015/07/09 12:32:46  ID:/PjUCdQU.net
そのサイトのソース見ろ 下端あたりに概略書いてある
どうしてもExcelでやりたい? まずはHTMLでどうしてるか理解できないと移植はむつかしい

522
デフォルトの名無しさん[sage]   投稿日:2015/07/09 12:57:12  ID:mTsNKsHF.net
googleスプレッドシート上でgas取得して、Excel形式で保存料すればいいw

523
デフォルトの名無しさん[sage]   投稿日:2015/07/09 16:48:31  ID:JlZfMmHC.net(3)
>505
お前は>501なのか?
=で比較しろっていっておいて、シンタックスの問題じゃないってか
等値でも等価でも同一インスタンスでもいいけど、=で比較する方法教えろよ
コメント1件

524
デフォルトの名無しさん[sage]   投稿日:2015/07/09 17:10:23  ID:q31E9GObR
511
5000ソースまるっとtext出力して拡張子をhtmlにすればコピーしたことになるんじゃね
画像の保存とかはしらん

525
デフォルトの名無しさん[sage]   投稿日:2015/07/09 17:09:41  ID:I9vTAnY9.net
うざい

526
デフォルトの名無しさん[sage]   投稿日:2015/07/09 20:02:37  ID:3YNneEoi.net
>520
例えばニコ生のコメント数なんていちいち生放送のページ開かなくても、
検索結果やランキングを見れば50件ぐらいは一気に確認できる
更に言うと、そういう外部サービス向けに情報を利用しやすいようにAPIというものがある

Excelどうこう以前にお前には根本的に発想や知識が足りない

527
デフォルトの名無しさん[sage]   投稿日:2015/07/09 20:05:37  ID:rrX8SuEu.net
VBAに関係なさすぎだろ
馬鹿すぎ

528
デフォルトの名無しさん[sage]   投稿日:2015/07/09 20:15:01  ID:4VH0pnre.net(2)
>523
>501じゃないしうざい

529
デフォルトの名無しさん[sage]   投稿日:2015/07/09 22:59:57  ID:2ljVQkG8z
vbaでできることは全部vbaでいいんだよ
ハローワールドをバッチ出力してもいいんだよ

530
489[sage]   投稿日:2015/07/09 22:45:25  ID:AOeRDpks.net(2)
>502
ありがとう。
確認してみる。

531
デフォルトの名無しさん[]   投稿日:2015/07/10 14:36:27  ID:X6oggqUX.net(2)
IEでようけタブを開いてる時に
アクティブになっているタブをExcelVBAから取得するにはどうやればいいですか?

532
デフォルトの名無しさん[sage]   投稿日:2015/07/10 19:15:07  ID:jiYZdnGq.net(2)
ようけタブって何ですか?
コメント1件

533
デフォルトの名無しさん[]   投稿日:2015/07/10 19:31:25  ID:w5pjce7S.net
なんでもかんでもエクセルはんでやったらいいちゅーもんちゃうでホンマに

534
デフォルトの名無しさん[sage]   投稿日:2015/07/10 19:56:00  ID:E85QWjLb.net
いやホントExcelに何でもやらせようとする人多すぎ
あくまで表計算ソフトですからね?

535
デフォルトの名無しさん[]   投稿日:2015/07/10 20:35:34  ID:X6oggqUX.net(2)
>532
そんなんもわからんのか
たくさんタブ、という意味だ
コメント2件

536
デフォルトの名無しさん[sage]   投稿日:2015/07/10 20:38:09  ID:I8IKrBJT.net
>535
ようけ
ようさん
は同じですか?どう使い分けるんですか?

537
デフォルトの名無しさん[sage]   投稿日:2015/07/10 21:25:28  ID:jiYZdnGq.net(2)
>535
ごめんなさい。
ネットで調べて分かりました。方言なんですね。
茶受けの一種かと思ってしまいました。

538
デフォルトの名無しさん[sage]   投稿日:2015/07/10 23:12:56  ID:bM2M5Hwn.net
Undefined identifier: ようけタブ

539
デフォルトの名無しさん[sage]   投稿日:2015/07/12 04:10:07  ID:AZzVj68F.net
質問

フィルターかけたあと
最終行の1行下に文字を入力したい

例えば
1 あ
2 い
3 う
4 あ
5 え

として 「あ」にフィルターをかけると
1 あ
4 あ
となる

抽出結果が少なければ
offset(1,0)で組めばいいのですが
5 え 以下
大量に情報があればoffset(1,0)でやってしまうと
文字が上書きされてしまい、画面に表示されない場合があります。

フィルター抽出結果の見たままで
下に文字を入れたい場合
どうすればよいですか?

ググっても別シートに貼り付ける方法しかなく
やり方が見つからなく困ってます。
コメント5件

540
デフォルトの名無しさん[sage]   投稿日:2015/07/12 04:33:35  ID:CzmmcRK9.net
>539
Rows( ).Hiddenプロパティを順番に調べてくのが順当な方法なんだろうけど

最後にデータを追加するのが目的なら、まず最終行の次の空白に「あ」を入れといてからフィルターをかけて、
xlUpすれば追加した「あ」のセルに一発で飛ぶから、そこに目的のデータを入れればいいんでない?

541
デフォルトの名無しさん[sage]   投稿日:2015/07/12 08:19:33  ID:1BRWNEUl.net
>539
無理
フィルター結果はそれ一つで特別な固まりになってる
「フィルター結果の最終行の一つ下」という概念はExcelにはない
素直に別シートに貼り付けましょう

542
デフォルトの名無しさん[sage]   投稿日:2015/07/12 10:58:38  ID:J0UWBmidq
えっと、それ、フィルター関係ないよね?
すでに入ってるデータを上書きしたくないんなら、最終行に追加すりゃいいんだよね?
末尾の行番号取得すりゃいいじゃん

543
デフォルトの名無しさん[sage]   投稿日:2015/07/12 12:21:39  ID:kAinUgxG.net
>539
最終データの位置とかまじめに考えると結構むずかしい
オートフィルター対象になってる範囲とかならとれるから、それの下なら
With Sheet1.AutoFilter.Range
Set r = .Offset(.Rows.Count).Resize(1)
End With
r.Value = 設定する文字(配列)
見たいなコードでいけるんじゃね

544
デフォルトの名無しさん[]   投稿日:2015/07/12 14:53:58  ID:eG/EvVrG.net
>539
こういうのはどう

Sub テーブルの見出しを選択してから実行せよ()
ActiveCell.Offset(ActiveSheet.AutoFilter.Range.Rows.Count).Select
End Sub
コメント1件

545
デフォルトの名無しさん[sage]   投稿日:2015/07/12 20:53:56  ID:2hDUKmaR.net
>539のものです。

>544ありがとうございます。
更に一行下にする場合はCount+1で出来ました。
濡れました。

546
デフォルトの名無しさん[]   投稿日:2015/07/13 12:35:11  ID:/ic4VC8c.net(2)
分かる方お願いします。

顧客名簿があります。

A列に名前
B列に性別が書かれているとします。

ボタンを押すと
B列の性別をA列の名前のセルの頭に挿入することはできますか?
関数とかで参照とかはしたくない感じなのですが。
どういう風にすれば良いか教えてください。
コメント1件

547
デフォルトの名無しさん[sage]   投稿日:2015/07/13 14:08:29  ID:W8qekCen.net(3)
>546
「とか」ってなんやねんというツッコミをいれたい
B列の情報(性別)を一切「参照せずに」どうやって処理を実行できるのか
そんな方法があるならむしろこっちが教えてほしい
コメント1件

548
デフォルトの名無しさん[]   投稿日:2015/07/13 14:17:15  ID:/ic4VC8c.net(2)
>547
ごめんなさいね
おいちゃん他人のコードを見様見真似でやってるものであまり詳しくないものでね。

なんと言えばいいのか、、A列にはB列を参照する数式を入れたくないのです。
コメント1件

549
デフォルトの名無しさん[sage]   投稿日:2015/07/13 14:49:13  ID:Q4XdJ0tC.net(2)
A列のセル = B列のセル.Value & A列のセル.Value

こんな感じでいけるのでは
コメント1件

550
デフォルトの名無しさん[sage]   投稿日:2015/07/13 15:15:47  ID:W8qekCen.net(3)
>548

Sub test()
Dim i As Long
With ThisWorkbook.Sheets(1)
 For i = 1 To .Cells(1, 1).End(xlDown).Row
  .Cells(i, 1) = .Cells(i, 2) & .Cells(i, 1)
 Next i
End With
End Sub

ただし、実行するたびにノーチェックでB列の内容をA列の頭に付け加えるので
何度も実行すると
鈴木 男 の場合
男男男鈴木 男 とかになる
最初の一文字をチェックするとしても
苗字が「男」で始まるもの(男澤、男鹿、男谷、男山、など)や
「女」で始まるもの(女部田、女屋、女池、など)も実在するので
そういった場合はどうすんのってことにもなりかねない
コメント1件

551
デフォルトの名無しさん[sage]   投稿日:2015/07/13 15:23:41  ID:W8qekCen.net(3)
そもそも、性別と名前はまったく関連のない属性情報なんだから
顧客名簿として管理するなら
一緒のセルに入れるべきではない(入れてはいけない)っていうのが大前提だけどね

仮に名簿を元に何かの分析をするために
この二つを一緒に出力するとかいうことならまぁわからなくもないけど
コメント1件

552
デフォルトの名無しさん[sage]   投稿日:2015/07/13 15:38:21  ID:sRi+Sfog.net
>549
> A列のセル = B列のセル.Value & A列のセル.Value
自分自身を参照する計算式は設定はできないよ。

553
デフォルトの名無しさん[sage]   投稿日:2015/07/13 15:39:16  ID:DovdIZeB.net
VBA

554
デフォルトの名無しさん[]   投稿日:2015/07/13 18:14:54  ID:3PtJoPuU.net
>550>551
ああ、ごめん
ありがとう そうやればいいんですね!
実は先頭に挿入するのは性別ではないんです。

都道府県が入っていない住所録に郵便番号から都道府県を引っ張ってきて
都道府県を付与したかったんです
最初からそう書けば良かったですね。

ただ、都道府県が入ってるセルと入ってないセルが混在してるので分かり辛くなるかと思って

単にセルの先頭に代入する方法だけ知れればいいやと思って単純そうな性別の例で聞いてしまいました。
ありがとうございました。助かりました。
コメント1件

555
デフォルトの名無しさん[sage]   投稿日:2015/07/13 19:11:00  ID:Q4XdJ0tC.net(2)
>554
俺も回答したんだけど
俺は無視?
コメント1件

556
デフォルトの名無しさん[]   投稿日:2015/07/13 19:58:13  ID:CJJidPYg.net
>555
´ω`)ごめんよ
おいちゃん助かったよ
まだ家帰れてないから両方試してないけど・・。

557
デフォルトの名無しさん[sage]   投稿日:2015/07/13 21:07:44  ID:/p9n5st7.net
うっわw 強要されるのかよw
せんぱい! 退職されて一年過ぎましたが・・ 部署の連中一同 ほんっっっっ・・・と、、、、、  せいせいしてますw

558
デフォルトの名無しさん[sage]   投稿日:2015/07/13 23:21:50  ID:XFV6VzSY.net
住所録は都道府県名だけで1セル使った方が管理修正しやすいんじゃないかな
コメント1件

559
デフォルトの名無しさん[]   投稿日:2015/07/16 10:02:45  ID:ehB1EJEE.net(5)
Typeで定義したユーザ定義型の配列変数を作ってます。

Type PersonalData
ID as String
Name as String
Birthday as Date
・・・
End Type

Dim Person(100) as PersonalData

みたいな感じですわ。
これを配列内でソートするには、一番シンプルで速い方法はどんなものでしょうか?

ソートというのはたとえばBirthdayでソートするとPerson(1), Person(2)・・・・の順に生まれが早い順番に配列内で並べ替えたいんです。
コメント2件

560
デフォルトの名無しさん[sage]   投稿日:2015/07/16 11:18:38  ID:53Jo2ojE.net(2)
>559
> これを配列内でソートするには、一番シンプルで速い方法はどんなものでしょうか?
シートに書き出して、Excelの機能でソートして、シートの内容をデータに書き戻す。
コメント1件

561
デフォルトの名無しさん[]   投稿日:2015/07/16 11:27:39  ID:ehB1EJEE.net(5)
>560
それは邪道でしょう。
シートに書き出しは禁止しましょう。
コメント2件

562
デフォルトの名無しさん[sage]   投稿日:2015/07/16 11:38:20  ID:hFZ123Co.net(2)
クイックソート使え。
コメント1件

563
デフォルトの名無しさん[]   投稿日:2015/07/16 11:43:38  ID:ehB1EJEE.net(5)
>562
クイックソートってなんですか?

564
デフォルトの名無しさん[sage]   投稿日:2015/07/16 11:46:48  ID:hFZ123Co.net(2)
じゃあ、バブルソート使え。
コメント1件

565
デフォルトの名無しさん[]   投稿日:2015/07/16 12:06:45  ID:ehB1EJEE.net(5)
>564
バブルソートってなんですか?

566
デフォルトの名無しさん[]   投稿日:2015/07/16 12:07:40  ID:ehB1EJEE.net(5)
>558
ThredNumber(558).Message & "ってなんですか?"

567
デフォルトの名無しさん[sage]   投稿日:2015/07/16 13:13:18  ID:53Jo2ojE.net(2)
>561
バブルソートもクイックソートも、自分では実装できずググる気もないんだったら、
シートでソートするのが王道。

シートへの読み書きがわからんなら、もうソート不可能。

568
デフォルトの名無しさん[sage]   投稿日:2015/07/16 14:15:51  ID:J5o6Kg8h.net(2)
>561
じゃあVariant配列に書き出して、適当な配列ソートライブラリを使え。

569
デフォルトの名無しさん[sage]   投稿日:2015/07/16 15:23:47  ID:GEks0S8S.net
配列ソートは定期的にでてくる話たからネタとしか思えない。

570
デフォルトの名無しさん[sage]   投稿日:2015/07/16 15:32:16  ID:WG4jVMdb.net
>559
質問の内容にExcelが全く絡んでないからスレ違い

571
デフォルトの名無しさん[sage]   投稿日:2015/07/16 19:35:58  ID:J5o6Kg8h.net(2)
PersonalDataってユーザ定義型のうちキーとなるもの( たとえばBirthday )だけ取り出せばいいんだよね。
1列目にそれを入れて2列目に0〜Nの連番を入れた配列を作ってソートする。
そうすれば2列目にインデックスが出来上がるから、その順に並べかえればいいのさ。

572
デフォルトの名無しさん[sage]   投稿日:2015/07/16 20:32:27  ID:qYHM89ED.net
ちょっとググるだけでこんなん↓出てきたけど。

http://home.att.ne.jp/zeta/gen/excel/c04p41.htm

573
デフォルトの名無しさん[]   投稿日:2015/07/17 09:45:36  ID:oIBga42r.net(8)
Excelのいくつかのセルに入った文字列を
Wordにどんどん貼り付けたいのですが
すでに開いているWord文書のアクティブDocumentの末尾にどんどん追加していくにはどうすればいいですか?

CreateObject("Word.Application")を使うと新たに新規文書としてそれを作ってしまう。
いま現状で開いているWord文書の末尾に追加したいのですが

574
564[]   投稿日:2015/07/17 11:11:01  ID:oIBga42r.net(8)
できません。
助けてください!

GetObject("Word.Application")と、「GET」のほうですでに開いてるWordを取得できないのですか?

575
デフォルトの名無しさん[]   投稿日:2015/07/17 12:04:31  ID:oIBga42r.net(8)
ひょっとして
Set wd = GetObject(, "Word.Application")
として
wd.ActiveDocument.Content.InsertAfter ・・・
みたいにすればokか?

576
デフォルトの名無しさん[]   投稿日:2015/07/17 12:06:19  ID:oIBga42r.net(8)
↑そのようでした。

ところでWordがまだ開かれてなければCreateObjectを
Wordがすでに開かれていたらGetObjectを使いたいのですが
その場合分けのif文はどう書けばいいですか?
コメント2件

577
デフォルトの名無しさん[sage]   投稿日:2015/07/17 13:20:15  ID:id5On6lD.net
>576
ワードのことは知らんけどエクセルの場合だと
開かれてるワークブックはそのマクロを実行しているブック自身も含めて
Workbooksコレクションに入ってるから
Workbooks.countが2以上なら
自分自身以外のブックが既に開かれている事がわかる
ワードにもなんかそんなコレクションがあるんじゃないの?
コメント1件

578
デフォルトの名無しさん[]   投稿日:2015/07/17 13:57:42  ID:oIBga42r.net(8)
>577
開かれてなかったらDocumentsのコレクションは存在しないし
そもそもWordを参照するためのオブジェクトすら存在しないからできないんだよ。

579
デフォルトの名無しさん[]   投稿日:2015/07/17 17:41:07  ID:oIBga42r.net(8)
どなたかこのわたしのファンダメンタル(fundamental)な疑問にお答えできないでしょうか?

580
デフォルトの名無しさん[sage]   投稿日:2015/07/17 19:45:50  ID:/l5uRIt/.net
ググれ

581
デフォルトの名無しさん[sage]   投稿日:2015/07/17 20:33:19  ID:syB7WThG.net
>576
> Wordがすでに開かれていたらGetObjectを使いたいのですが
逆じゃね、GetObjectしないでどうやって既に開かれてるか知るつもりだよ。
コメント1件

582
デフォルトの名無しさん[]   投稿日:2015/07/17 20:37:41  ID:oIBga42r.net(8)
>581
開かれていない状態でGetObjecをするとエラーがでてしまうんだよ

583
デフォルトの名無しさん[sage]   投稿日:2015/07/17 20:39:06  ID:rBy1sMGX.net
オンエラー

584
デフォルトの名無しさん[]   投稿日:2015/07/17 20:47:16  ID:oIBga42r.net(8)
リズームネクスト

585
デフォルトの名無しさん[sage]   投稿日:2015/07/17 21:34:24  ID:/wl7lj/J.net
Resume Nextの意味 ・・・ 履歴書たらい回し

586
デフォルトの名無しさん[sage]   投稿日:2015/07/18 01:03:10  ID:vrPIhyd3.net(2)
コンボボックスを2行以上にするって、やっぱ無理でしょうか?
何がしたいかというと、ワードやOutlookのクイックパーツみたいなのを
作れればと便利かなと思ったのですが

他にはフォームにテキストボックスをずらりと並べて
ダブルクリックしたら選択中のセルに入力するとか・・・
くらいしか思いつかないです
コメント1件

587
デフォルトの名無しさん[sage]   投稿日:2015/07/18 05:35:55  ID:T5F58RSl.net
>586
クイックパーツと複数行のコンボボックスがどう関係してるのかさっぱりわからん

588
デフォルトの名無しさん[sage]   投稿日:2015/07/18 13:43:18  ID:vrPIhyd3.net(2)
クイックパーツのGUIがコンボボックスの各項目が複数行になったように見えるので、
コンボボックスの複数行が出来ればクイックパーツもどきが出来そう、という思いつきから
そういう発想になりました

朝からフォームにテキストボックス並べる方法で作ってみたところ、
イメージに近いものが出来たので、今はこれでいいかなと思ってます

589
デフォルトの名無しさん[]   投稿日:2015/07/19 01:12:52  ID:yGfbtuav.net(4)
下のサイトのコードで
Forループのカウンタ変数をループから抜けた後で値の比較に使ってますが、
Exit Forを使わずにForループを抜けた場合にカウンタ変数は最終値+Step値になる
というような事がVBAの仕様として決まってるんでしょうか?
それともたまたまそうなったから深く考えず記載してるだけでしょうか?
後者だとしたらちょっと気持ち悪いなぁ
http://www.moug.net/tech/exvba/0050065.html
コメント3件

590
デフォルトの名無しさん[sage]   投稿日:2015/07/19 01:20:46  ID:rAxj5bhn.net
>589
仕様かどうかは知らんけど経験則でそうなってるから俺も使ってる
少なくとも今後マイクロソフト側で変更しない限り
現行のものでは使えてるんだしそこまで気に病むことでもないと思う
コメント1件

591
デフォルトの名無しさん[sage]   投稿日:2015/07/19 01:28:01  ID:Pqkg92al.net(2)
>589
正確なVBAの言語仕様はみたことないけど、仕様としてそうなると思っていいんじゃね
たまたまではなくて、ヘルプ等で動作みるとそうならないとおかしい
保証はないかもしれんが、それで問題になった事はないし、そこに変更入るとも思えん

昔のFor Nextのヘルプ、思いっきり嘘書いてた時代もあるけどなw

592
デフォルトの名無しさん[sage]   投稿日:2015/07/19 01:29:58  ID:yGfbtuav.net(4)
自分だったらこういう場合do loopに変えるから
何か根拠があってやってるのかと思った

593
デフォルトの名無しさん[sage]   投稿日:2015/07/19 01:32:53  ID:yGfbtuav.net(4)
>590-591
結構いい加減な感じなのね
参考になりました

594
デフォルトの名無しさん[sage]   投稿日:2015/07/19 01:38:37  ID:Pqkg92al.net(2)
ああ、少なくとも2007のヘルプでも微妙な表現だな
For Nextは前判定するから、ループの最低実行回数は0回なんだが
あのヘルプの書き方だと後判定にしか読めん

昔は後判定でも誤動作しないように判断入れさせられたりしたなぁ

595
デフォルトの名無しさん[sage]   投稿日:2015/07/19 02:12:32  ID:OOt2nbBY.net(3)
ループの外でカウンタ参照なんてバグの元
普通はDo Loopなど変数の変化が確実に制御できる方法で置き換えるし、
あとで必用になる値ならリミットやステップは変数に入れておくべき
ドキュメント外の経験則なんて不確実な物に頼るのは三流以下

596
デフォルトの名無しさん[sage]   投稿日:2015/07/19 03:54:08  ID:yGfbtuav.net(4)
引継ぎのソースとかでこんな事やられてたら確かにぎょっとするな
つまり信用に関わるってこった

597
デフォルトの名無しさん[sage]   投稿日:2015/07/19 06:01:07  ID:mDVOiq6Z.net(2)
お、この辺の意見は皆一致してるな
動作に確証が持てるならそのままでもいいんじゃと
言い出す人もいるかと思ったのに

598
デフォルトの名無しさん[sage]   投稿日:2015/07/19 06:08:32  ID:eGN6omT4.net(2)
ドキュメントなんて当てにならんよ
間違いを放置していることも多々あるからな
俺は目の前の実装の動作を信じる派だ

599
デフォルトの名無しさん[sage]   投稿日:2015/07/19 06:43:14  ID:Unt8HnGc.net(2)
ループカウンタのスコープを意識してやってるなら無問題。
例えば5行10行の関数内でやるとかなら。
コメント1件

600
デフォルトの名無しさん[sage]   投稿日:2015/07/19 08:09:39  ID:mDVOiq6Z.net(2)
>599
同意
例え正しい動作で動くとしてもスコープは意識しておかないと
煩雑になる可能性があるもんな

601
デフォルトの名無しさん[sage]   投稿日:2015/07/19 08:40:06  ID:0azLbtwj.net(4)
つまりカウンタ変数のスコープがループより広いのだからループ後は最終値+Step値になる
それが仕様というもの

つーかループ抜けたらカウンタ変数使うなって誰が考えたんだろうか
仕様をよく理解してないから、こんなバカセオリーが作られていく

602
デフォルトの名無しさん[sage]   投稿日:2015/07/19 10:18:20  ID:EbO9p28sY
wordが開いているかはプロセスリスト奪って確認すりゃいいんじゃね

603
デフォルトの名無しさん[sage]   投稿日:2015/07/19 10:45:03  ID:gfc2emHi.net(2)
>589
どこかのヘルプかなんかでそう言う風な仕様って見たような気がする

604
デフォルトの名無しさん[sage]   投稿日:2015/07/19 11:06:50  ID:OOt2nbBY.net(3)
ループの終了判定には色々な方法があって、最後にもう1回Stepが足されるかどうかは処理系による
個人が趣味で書く「動けばいい」コードなら何やっても自由だけど、それを他人にも薦めるのは問題がある

実験して結果を確認とか、一番やっちゃいけないレベル
仕様書を見れば、いちいち実験なんかしなくても結果は予測できる

もちろん仕様書にもミスはあるけど、ミスを完全になくすのは不可能だから、
そのミスがきちんと認知されていれば問題ない
コメント1件

605
デフォルトの名無しさん[sage]   投稿日:2015/07/19 12:08:21  ID:4JrdJist.net
言ってることが中途半端
仕様書に書いてないものはダメと言いながら
仕様書のミスは認知されてればおkって
そんなのダブルスタンダードじゃん

だったらfor nextのカウンターの件だって
認知されてるんだからおkって話になっちゃうよ
コメント1件

606
デフォルトの名無しさん[sage]   投稿日:2015/07/19 12:16:27  ID:OOt2nbBY.net(3)
>605
「書いてない(保証されない)、意図していない」

「間違ったことが書いてある、開発側が意図した正解はちゃんとある」
ってのは別

この違い、わかる?
コメント1件

607
デフォルトの名無しさん[]   投稿日:2015/07/19 12:20:14  ID:gdmrFD6e.net(4)
>606
「書いてない、開発側が意図した正解はちゃんとある」
「間違ったことが書いてある、意図していない」

608
デフォルトの名無しさん[sage]   投稿日:2015/07/19 12:25:07  ID:0azLbtwj.net(4)
>604
所謂「処理系依存」て言葉を誤解してるな。
これは、独立して言語仕様が定められていて、開発者がその仕様に準じた実装をする場合に用いられる言葉。
この時、言語仕様として明確な定義がない動作は、処理系依存として開発者に委ねられる。
つまり、ANSI Cなんかでよく使われる言葉。

VBAのようなマイクロソフト一社が開発、実装をしている言語に処理系依存の動作はなく
実装が唯一の仕様になるんだよ。

609
デフォルトの名無しさん[sage]   投稿日:2015/07/19 12:25:45  ID:r330jZtM.net
仕様書が絶対なら仮にミスだったとしても従わなければならないし、
読み手側が適宜修正を挟めるなら仕様書に書いてあっても実験して結果を確かめる必要性がある。
コメント1件

610
デフォルトの名無しさん[sage]   投稿日:2015/07/19 12:29:40  ID:MA6NEEKT.net
>609
お前みたいなのを馬鹿丸出しっていうんですよwww

611
デフォルトの名無しさん[sage]   投稿日:2015/07/19 12:33:18  ID:WqS3++Gn.net
とりあえず公式にはStepはループの最後に足されると書いてあるんで、それを信じればいいと思うよ
https://msdn.microsoft.com/ja-jp/library/office/gg251601.aspx

でもStepの規定値が0とは知らんかった
てっきり1だと思ってた
コメント2件

612
デフォルトの名無しさん[]   投稿日:2015/07/19 12:38:35  ID:gdmrFD6e.net(4)
>611
英語の方はoneってなってた。oneを0に訳すってどんだけ・・・
https://msdn.microsoft.com/en-us/library/office/gg251601.aspx

613
デフォルトの名無しさん[]   投稿日:2015/07/19 12:41:03  ID:gdmrFD6e.net(4)
つまりだ、ID:OOt2nbBY は仕様書を見てないし実験もしてないし
想像だけで突っ走ってたってこと?

614
デフォルトの名無しさん[sage]   投稿日:2015/07/19 12:54:52  ID:eGN6omT4.net(2)
プログラミング系のスレによくいるタイプだよ
何かあるごとに俺ポリシーを唯一絶対の法則のごとく書き散らす
「一番やっちゃいけない」とかお前は何様かと

615
デフォルトの名無しさん[sage]   投稿日:2015/07/19 13:17:43  ID:UQShnz8E.net
確証が持てない、不安がある、ならより確実な手段で実装するってのは経験から得た教訓。
今回みたいな場合なら、こんな議論じみたことするの面倒だから別に変数を持たせて最後の比較時の値を残しておくことを考えるかな。


それはそれとして、ループカウンタって、現在値と指定された最大値とを比較してループの実行を決めると思ってたから
最後の step 数が加算されるかどうかが処理系によるってのは全く考えたことなかった。w ちょっと参考になった。
コメント1件

616
デフォルトの名無しさん[sage]   投稿日:2015/07/19 13:39:37  ID:0azLbtwj.net(4)
>615
処理系じゃなく言語仕様な。
ちなみにforループの仕様すらまともに決まってない言語仕様など見た事がない。
コメント2件

617
デフォルトの名無しさん[sage]   投稿日:2015/07/19 13:45:54  ID:bp/gXhOB.net(2)
>611
ひどい誤記だな
こういうのがあるからヘルプって信用できないよね!

ほかにも右と左を間違えるとか、ひどいよね
https://msdn.microsoft.com/ja-jp/library/dxs6hz0a.aspx
コメント2件

618
デフォルトの名無しさん[sage]   投稿日:2015/07/19 13:48:28  ID:bp/gXhOB.net(2)
>616
ループを抜けた後のカウンタ値ってforの仕様に含まれるっけ?
コメント1件

619
デフォルトの名無しさん[]   投稿日:2015/07/19 13:52:17  ID:gdmrFD6e.net(4)
>617
ふはは、めちゃくちゃやな

620
デフォルトの名無しさん[sage]   投稿日:2015/07/19 14:06:50  ID:Unt8HnGc.net(2)
Forカウンタに関しては仕様上と経験則もどっちの観点からも問題ないんだがら、ぐたぐだ言うこと自体が雑音。
曖昧なのは仕様じゃなくてそいつの知識。

621
デフォルトの名無しさん[sage]   投稿日:2015/07/19 14:14:40  ID:gfc2emHi.net(2)
>616
end の値がいつ評価されるかをちゃんと書いてあるドキュメント教えてくれ

>617
> こういうのがあるからヘルプって信用できないよね!

「日本語」ヘルプはって言ってくれ

622
デフォルトの名無しさん[sage]   投稿日:2015/07/19 14:58:37  ID:0azLbtwj.net(4)
>618
ループの仕様とかではなく、forで新たにスコープが作られる言語があって
そういう言語のバッドノウハウが、いつの間にか一人歩きしてるだけ。
VBAではスコープが同じなのでループ内での最後の値は変わらない。

623
デフォルトの名無しさん[sage]   投稿日:2015/07/19 15:14:49  ID:qsMi3+rD.net
for(int i = 0, i < 10, i++){}

C++では、forにスコープがあるから、
変数iは、for{}内のみで使える変数

var i = 0
for( , i < 10, i++){}

一方、JavaScriptでは、forにスコープが無いから、
for()内で変数宣言せずに、
for外で変数宣言した方が、誤解しない

624
デフォルトの名無しさん[sage]   投稿日:2015/07/19 16:56:05  ID:OryvopCI.net(2)
なんか荒れてると思ったら
またC++の人か
鬱陶しいな

625
デフォルトの名無しさん[sage]   投稿日:2015/07/19 16:56:51  ID:o2GoxnAV.net
ループカウンタとか使わなければいい
コメント1件

626
デフォルトの名無しさん[sage]   投稿日:2015/07/19 17:02:24  ID:OryvopCI.net(2)
>625
男には使いたくないと思っていても
使わなければならないときがある

627
デフォルトの名無しさん[]   投稿日:2015/07/19 17:12:38  ID:kvcDaKH1.net
じゃあ女になればいい。

628
デフォルトの名無しさん[sage]   投稿日:2015/07/19 18:12:50  ID:ZuB4UjID.net
画像ファイルの解像度を知りたいんですが
Set pic = LoadPicture(PicFile)
はば = pic.Width / 100
高さ = pic.Height / 100
で、単位mmで、それぞれサイズが出るようなんですが
解像度を求めることは、できないんでしょうか?。

629
デフォルトの名無しさん[sage]   投稿日:2015/07/20 19:12:04  ID:51dMWdzw.net
ActiveSheet.Protect で保護しても選択とグラフ挿入をしたいのですがどうすればいいですか

630
デフォルトの名無しさん[sage]   投稿日:2015/07/20 20:52:45  ID:NI++k4bU.net
その時だけunprotectする

631
デフォルトの名無しさん[]   投稿日:2015/07/20 21:46:50  ID:4iREVrk0.net(3)
健全でない言葉が含まれているため表示しません 内容を確認する

632
デフォルトの名無しさん[sage]   投稿日:2015/07/20 21:50:23  ID:HZ7E+BkF.net
ヤればいいけど感染症には気をつけてな
コメント2件

633
デフォルトの名無しさん[]   投稿日:2015/07/20 22:11:31  ID:4iREVrk0.net(3)
>632
わかりました

634
デフォルトの名無しさん[sage]   投稿日:2015/07/20 22:19:36  ID:VFsFABu1.net
どうやって気をつけるつもりだよ

635
デフォルトの名無しさん[]   投稿日:2015/07/20 22:29:25  ID:4iREVrk0.net(3)
>632
どうやって気をつければいいんだよ
コメント1件

636
デフォルトの名無しさん[sage]   投稿日:2015/07/20 23:15:10  ID:AGKnnOa8.net
>635
感染症になりそうなら素早く抜く

637
デフォルトの名無しさん[]   投稿日:2015/07/20 23:26:21  ID:dHG3/QFf.net
生じゃなきゃいいだろ
それよりもベッドが汚れるので必ずバスタオルを敷くこと

638
デフォルトの名無しさん[sage]   投稿日:2015/07/20 23:26:55  ID:th8mhDMf.net
健全でない言葉が含まれているため表示しません 内容を確認する

639
デフォルトの名無しさん[]   投稿日:2015/07/21 00:37:29  ID:s5SYmwNr.net(4)
ひさしぶりにVBAのツールを作るんで
コレクションの使い方を復習しようと
なにか通勤列車で読めるような中上級向けの本がないか探したが
なくない?

なぜ入門書ばかりなんだろう
あれば教えてください

640
デフォルトの名無しさん[sage]   投稿日:2015/07/21 04:27:12  ID:1F0zJxbf.net(2)
そもそもBASICが「Beginners’ All-purpose Symbolic Instruction Code」の略ですし。

というのはおいとくとしても、VBAは本買うより目的ごとに検索した方が早い。
コメント1件

641
デフォルトの名無しさん[]   投稿日:2015/07/21 11:03:54  ID:s5SYmwNr.net(4)
>640
そうですか。
不便ですね。
電車の中で本を読んで復習しようと思ったのに。

ところでVBAでクラスをつくるとき
わざわざsetterやgetterをつくるの面倒ではありませんか?
単にプロパティという読み書きできるようにできない?

642
デフォルトの名無しさん[]   投稿日:2015/07/21 11:04:33  ID:s5SYmwNr.net(4)
x プロパティという
o プロパティとして

643
デフォルトの名無しさん[sage]   投稿日:2015/07/21 15:47:35  ID:rmCqwoyN.net
パブリックフィールドでも使っとけや
コメント1件

644
デフォルトの名無しさん[]   投稿日:2015/07/21 15:58:52  ID:s5SYmwNr.net(4)
>643
できた。
なんだできるじゃん。
コメント1件

645
デフォルトの名無しさん[]   投稿日:2015/07/21 16:16:59  ID:8Y3JIaa7.net
ご丁寧にプロパティ作るとデバッグであっちこっち飛ばされてうざいよなー。

646
デフォルトの名無しさん[sage]   投稿日:2015/07/21 23:04:38  ID:nI7QiMxB.net
>644
VBAのプロパティは何故かLetとSetの使い分けがあるんだよね

あれ何で?
コメント4件

647
デフォルトの名無しさん[sage]   投稿日:2015/07/21 23:20:44  ID:1F0zJxbf.net(2)
>646
VBAでは任意のオーバーロードを作れないのと、ポインタを使えないという制約があるのと、
さらにポリモーフィズムも無いという環境のせいで、オブジェクトの代入を他のものと区別する為にあるんじゃないの?
コメント2件

648
デフォルトの名無しさん[sage]   投稿日:2015/07/22 00:26:31  ID:JGPtgvwf.net
>647
あれ?ポリモーフィズム無いんだっけ?

じゃインターフェースは何のためにあるの?

649
デフォルトの名無しさん[sage]   投稿日:2015/07/22 02:33:30  ID:vbbcVbHR.net(3)
>646
何故かって、VBAではSetとLetは別だから、区別があるのがむしろ当然

>647
オブジェクトの代入を区別できないのは、デフォルトプロパティのせいなんで
オーバーロードとかポインタとかポリモーフィズムとか直接無関係です

650
デフォルトの名無しさん[sage]   投稿日:2015/07/22 05:40:28  ID:E01nq8P+.net
代入でのSetの付け忘れはVBA上級者でもたまにハマる罠の一つ
あんなのなくても代入して欲しい
コメント1件

651
デフォルトの名無しさん[sage]   投稿日:2015/07/22 06:11:09  ID:hGLrxrN5.net
VBAだから今のVBに合わせてデリゲートの話が出てきてもここではおかしいけど
ポインタとかさらに意味不明だしね

652
デフォルトの名無しさん[sage]   投稿日:2015/07/22 06:56:36  ID:u4/X55np.net
ポインタを使う言語


あっ(察し)

653
デフォルトの名無しさん[sage]   投稿日:2015/07/22 08:05:56  ID:l4QssRUO.net(2)
>650
Set無しでおkにするとVariant型変数にセルの値を入れたいときに
ちょっと困る

Sub hoge()
Dim var As Variant
var = Range(A1:G5) 
Set var = Range(A1:G5) 
End Sub

上のコード、Set有りと無しでは挙動が変わるんだけど、こういう時どうすんの?
コメント2件

654
デフォルトの名無しさん[sage]   投稿日:2015/07/22 08:07:30  ID:l4QssRUO.net(2)
ごめん、""付け忘れてた

655
デフォルトの名無しさん[sage]   投稿日:2015/07/22 08:25:18  ID:maciFGiV.net
>653
Setありなしとは関係ないけど、上は
var = Range("A1:G5").Value
とValueを省略せず書くのがいいと思う。

656
デフォルトの名無しさん[]   投稿日:2015/07/22 08:27:54  ID:a/YZpM4j.net
>653
セットしないとただの配列になった気がする

657
デフォルトの名無しさん[sage]   投稿日:2015/07/22 14:00:12  ID:vbbcVbHR.net(3)
Letでオブジェクト(参照)の代入は出来ない
これはVBAのルール

ところでお前ら、Letって命令あるのちゃんと知ってるか?
常に省略可能な命令なんだぜw
コメント3件

658
デフォルトの名無しさん[]   投稿日:2015/07/22 14:27:07  ID:9uF/bA4u.net
>657
おまえはなw
文末に書いてるw
「w」を省略したほうがいいぜw

659
デフォルトの名無しさん[sage]   投稿日:2015/07/22 14:58:32  ID:1AHyolcG.net
>657
Call もあるし、別にどやるほどのネタじゃないぞ

660
デフォルトの名無しさん[sage]   投稿日:2015/07/22 16:04:40  ID:zA65uI1C.net
Letはオブジェクト以外の代入
動作の違いの確認

Sub test1()
  Range("A1").Value = "abc"

  Set v1 = Range("A1")
  Let v2 = Range("A1")

  Debug.Print TypeName(v1)
  Debug.Print TypeName(v2)
End Sub

661
デフォルトの名無しさん[sage]   投稿日:2015/07/22 17:34:18  ID:SOhZ1+VB.net
むしろLETが省略できないBASICってあるのか?
と思ったが、大昔のベーマガにはLETで代入してたソースがあった気もするな
コメント1件

662
デフォルトの名無しさん[sage]   投稿日:2015/07/22 19:25:17  ID:vbbcVbHR.net(3)
>661
機種によるけど、Then Let の場合、ThenかLetを省略できるので、Thenを省略してより短いLetを残すことがった
あとはLet省略しても、自動的に補完される機種もあったな

663
デフォルトの名無しさん[sage]   投稿日:2015/07/22 20:53:03  ID:h8BR7O6Q.net
昔すぎるのでは?
コメント1件

664
デフォルトの名無しさん[sage]   投稿日:2015/07/22 21:51:43  ID:JCiitdGg.net
>663
今時 Let とか言い出したアホに言ってくれよ
コメント1件

665
デフォルトの名無しさん[sage]   投稿日:2015/07/22 22:14:32  ID:f2fD5abO.net
Then Gotoの場合、ThenまたはGotoを省略できたのと同じか

666
デフォルトの名無しさん[sage]   投稿日:2015/07/22 23:16:34  ID:EIwMW7nu.net
文字列をカットする関数で、start,endを位置で指定する関数ってないんだっけ?
MID(文字列,開始位置,文字数)
じゃなくて、
関数(文字列,開始位置,終了位置)
で指定したいです
コメント2件

667
デフォルトの名無しさん[sage]   投稿日:2015/07/23 00:01:42  ID:a8nLYx9Z.net
function 関数(文字列,開始位置,終了位置)
関数 = mid(文字列,開始位置, 終了位置 - 開始位置)
end function
コメント6件

668
デフォルトの名無しさん[sage]   投稿日:2015/07/23 00:11:50  ID:FtGSRY1f.net(2)
>675
ありがとう
天才だな

669
デフォルトの名無しさん[sage]   投稿日:2015/07/23 00:19:40  ID:FtGSRY1f.net(2)
>667
ありがとう
天才だな

670
デフォルトの名無しさん[sage]   投稿日:2015/07/23 00:30:11  ID:fIFeUYpQ.net(4)
>664
もともとはSetとの対比でLetって話だったはずだが
コメント1件

671
デフォルトの名無しさん[sage]   投稿日:2015/07/23 05:50:04  ID:OfB5opuk.net(3)
>670
Let の省略 って書かんとわからんか
コメント1件

672
デフォルトの名無しさん[sage]   投稿日:2015/07/23 05:57:57  ID:CPvEDQbc.net(2)
>666-669
>667 だと一文字切れると思うよ
正しくは

function 関数(文字列,開始位置,終了位置)
関数 = mid(文字列,開始位置, 終了位置 - 開始位置 + 1)
end function

>671
それがそもそもsetとの対比の話題で出てきたんでしょ?
コメント6件

673
デフォルトの名無しさん[sage]   投稿日:2015/07/23 06:13:33  ID:OfB5opuk.net(3)
>672
省略とか言い出したのは >657
そもそも Let の話してるのに

> ところでお前ら、Letって命令あるのちゃんと知ってるか?

とか言い出したり、ちょっとアレな人なんだろうと思う
コメント1件

674
デフォルトの名無しさん[sage]   投稿日:2015/07/23 06:48:31  ID:H5D81+vI.net
>672
「終了位置」の定義によるだろう。
普通は、長さ = end - begin となるようにするから>667でいいと思うが。
コメント2件

675
デフォルトの名無しさん[sage]   投稿日:2015/07/23 07:14:32  ID:CPvEDQbc.net(2)
>674
>定義による
まさにその通りなんだけど、

たとえば、文字列 "あいうえお" から "うえ" を取り出したいときには
Midなら Mid("あいうえお", 3, 2)
となります

これの開始位置とはすなわち3文字目の "う" であり
終了位置は4文字目の "え" なわけですよ

そうするとこれを>667に適用するなら
関数 = Mid("あいうえお", 3, (4 - 3))
ではなく
関数 = Mid("あいうえお", 3, (4 - 3) + 1)
にしとかないとおかしいんじゃないの?

というのが>672の主張な訳です
こっちのほうが普通だと思いますね
コメント1件

676
デフォルトの名無しさん[sage]   投稿日:2015/07/23 07:20:09  ID:Vrk4ENFd.net(7)
>674
どんな普通だよ w
'あいうえお' の2文字目から4文字目って言われたら大抵の人は 'いうえ' って思うんじゃね?
コメント1件

677
デフォルトの名無しさん[sage]   投稿日:2015/07/23 07:21:49  ID:Vrk4ENFd.net(7)
>676
リロードしとらんかった...
例えが同じすぎて笑たわ

678
デフォルトの名無しさん[sage]   投稿日:2015/07/23 07:22:43  ID:Z5SWxUfX.net(5)
その場合>667でやるなら
関数("あいうえお", 3, 5)
とするわけだが、配列の長さは UBound - LBound + 1 だったりするから何が「普通」かは一概に言えない。

679
デフォルトの名無しさん[sage]   投稿日:2015/07/23 07:53:15  ID:h4tQPyFC.net(3)
配列ってここで何か関係あるの?

680
デフォルトの名無しさん[sage]   投稿日:2015/07/23 07:57:28  ID:Z5SWxUfX.net(5)
UBound +1を指定するところ。
つまり終了位置のひとつ先を引数に設定するのは「普通」のうちに含まれるという主張。
コメント1件

681
デフォルトの名無しさん[sage]   投稿日:2015/07/23 08:13:20  ID:h4tQPyFC.net(3)
よく分かんないけどそれってOption Base 1指定してもそうなの?
コメント1件

682
デフォルトの名無しさん[sage]   投稿日:2015/07/23 08:20:43  ID:Vrk4ENFd.net(7)
>680
むしろその +1 って >672 の +1 と同じだし

>681
下限は LBound で取れるので Option で指定しても成り立つ

683
デフォルトの名無しさん[sage]   投稿日:2015/07/23 09:36:32  ID:Z5SWxUfX.net(5)
"あいうえお"から"うえ"部分を取りたいとき、
>667 方式だと
関数("あいうえお", 3, 5) と指定する
>672方式だと
関数("あいうえお", 3, 4) と指定する

+1するってのは使う側が引数に+1するって意味だよ。
コメント2件

684
デフォルトの名無しさん[sage]   投稿日:2015/07/23 09:41:39  ID:P0N6qRSq.net
>683
こういう場合に+1する・しないで俺は昔からよく混乱する事があったんだが、最近では何も考えずに無の境地でプログラミングすると、一発で上手く行くようになったよ。
コメント1件

685
デフォルトの名無しさん[sage]   投稿日:2015/07/23 11:46:51  ID:SI8SSCXa.net
>683
誰がどう見ても>672の勝ちだな

686
デフォルトの名無しさん[sage]   投稿日:2015/07/23 11:54:13  ID:Z5SWxUfX.net(5)
そうかねえ?
俺は、[3, 5), [5, 9), [9, 11) みたいに漏れ重複なく区間を並べられる書き方が好み。
コメント1件

687
デフォルトの名無しさん[]   投稿日:2015/07/23 11:56:02  ID:dbj+2vsW.net
>684
InStrで「う」と「え」をサーチしたあとに取り出したいとかあるから
関数("あいうえお", 3, 4)
の方が使い勝手がいいと思う

それから「あいうえお」からこの関数をあえて使って「えお」を取り出すときに
関数("あいうえお", 4, 6) だとちょっと気持ち悪いというのもある

個人的な意見だけど

688
デフォルトの名無しさん[sage]   投稿日:2015/07/23 12:57:29  ID:Vrk4ENFd.net(7)
>686
書き方は色々あっていいけど、終了位置って普通最後の文字を指すでしょ

689
デフォルトの名無しさん[sage]   投稿日:2015/07/23 15:55:49  ID:fIFeUYpQ.net(4)
>673
Set有りと無しではとか言ってる人に、Letって知ってるかって言うのはおかしくないだろ
そこはSetとLetでって書くべきなんだから
コメント1件

690
デフォルトの名無しさん[sage]   投稿日:2015/07/23 16:12:59  ID:mmfWdiQl.net
終了位置じゃなくて長さ・個数にすれば迷う余地なし
コメント1件

691
デフォルトの名無しさん[sage]   投稿日:2015/07/23 16:53:53  ID:Vrk4ENFd.net(7)
>689
スレを辿ることもできないのかよ...
>646 からの話だぞ
コメント1件

692
デフォルトの名無しさん[sage]   投稿日:2015/07/23 17:05:15  ID:/G5SjU2IS
そういう処理必要なら、パターン文字列抜き出せば?

693
デフォルトの名無しさん[sage]   投稿日:2015/07/23 17:01:14  ID:Vrk4ENFd.net(7)
>690
(出川口調で)お前はバカか w ⇒ >666

694
デフォルトの名無しさん[sage]   投稿日:2015/07/23 17:44:01  ID:fIFeUYpQ.net(4)
>691
その流れがあるからこそ、SetのあるなしじゃなくてSetとLetだろって話なんだが
まあ話が通じないならもういいや
コメント1件

695
デフォルトの名無しさん[sage]   投稿日:2015/07/23 19:13:36  ID:Z5SWxUfX.net(5)
(終了位置、長さ)

(長さ、終了位置)
のどっちだったか思い出せなくて悩むはめになる。
コメント1件

696
デフォルトの名無しさん[sage]   投稿日:2015/07/23 19:23:54  ID:Vrk4ENFd.net(7)
>694
> SetとLetだろって話なんだが

Set と Let の話してる奴等に

>> ところでお前ら、Letって命令あるのちゃんと知ってるか?

とか言い出したアホがいるって話なんだけど...
コメント1件

697
デフォルトの名無しさん[sage]   投稿日:2015/07/23 19:24:52  ID:jdzUEZ4l.net(2)
そしたらコメントで…なんて書くと、またコメントがどうたらこうたらで荒れるんだな w
コメント1件

698
デフォルトの名無しさん[sage]   投稿日:2015/07/23 19:25:27  ID:jdzUEZ4l.net(2)
>697>695に対してね

699
デフォルトの名無しさん[sage]   投稿日:2015/07/23 21:34:40  ID:fIFeUYpQ.net(4)
>696
Setのあるなしじゃなくて って所を外してるのは、わざとですか?
そこが重要だと理解できてないのですか?
コメント1件

700
デフォルトの名無しさん[sage]   投稿日:2015/07/23 23:17:13  ID:OfB5opuk.net(3)
>699
わざとです
論点はあくまでも >646 ですから

701
636[sage]   投稿日:2015/07/23 23:55:08  ID:h4tQPyFC.net(3)
いやあテレるなぁ

702
デフォルトの名無しさん[sage]   投稿日:2015/07/26 02:05:49  ID:PMtslnm/.net(2)
コンボボックスの選択完了された値ではなくて
選択中の値・・・ドロップダウンリストが表示された状態で
マウスカーソルがあわさっている値を取得、なんてできますか?

703
デフォルトの名無しさん[sage]   投稿日:2015/07/26 02:31:29  ID:2OSSYxBC.net
基本的にWindowsのコントロールはサブクラス化すれば何でもできると思っていいよ


704
デフォルトの名無しさん[sage]   投稿日:2015/07/26 11:51:18  ID:PMtslnm/.net(2)
やはり難しいですよね
リストボックスにしてみます

705
デフォルトの名無しさん[sage]   投稿日:2015/07/29 22:52:06  ID:P4eNlM/m.net(2)
workbook.sheets(1).copyで新しく作られたbookをactiveworkbookを使わずに取得する方法はありますか?

706
デフォルトの名無しさん[sage]   投稿日:2015/07/29 22:54:37  ID:c3o2n8R7.net(2)
activeworkbookを使いたくない理由を聞きたいわ。
コメント1件

707
デフォルトの名無しさん[sage]   投稿日:2015/07/29 23:36:18  ID:P4eNlM/m.net(2)
>706
何かのタイミングでactiveが変わってしまったら危ないんじゃないかと思ったんですが、そういう事は起こり得ないんですか?
コメント1件

708
デフォルトの名無しさん[sage]   投稿日:2015/07/29 23:50:54  ID:c3o2n8R7.net(2)
>707
"Book1 - copy.xlsx"
みたいになると思うので、その名前を使えば良いんじゃないの?
コメント1件

709
デフォルトの名無しさん[sage]   投稿日:2015/07/29 23:59:24  ID:HfzTZxWN.net
自分で新規ブックをつくってそこにコピーすれば良いだけじゃ

710
デフォルトの名無しさん[sage]   投稿日:2015/07/29 23:59:46  ID:hQM1TMMz.net
その名前が既にあったらどうするんだ
コメント2件

711
デフォルトの名無しさん[sage]   投稿日:2015/07/30 00:00:27  ID:ds/Apgk5.net(2)
>708
名前もその時の状況で変わるので使いづらいです

自分が書いたコードではworkbookオブジェクトを新しく作ってからそこにシートコピーしてるのでactiveworkbookはつかってないんですが、
workbook.sheets(1).copyからもactiveworkbookを使わずオブジェクトを取得できたら楽かなぁと思って質問した次第です

712
デフォルトの名無しさん[sage]   投稿日:2015/07/30 00:15:11  ID:AfvBuYEQ.net
>710
事前にチェックすれば良いだけだろハゲ

713
デフォルトの名無しさん[]   投稿日:2015/07/30 01:58:48  ID:iv9Zs1qn.net
Sub こんなんどないや()
Worksheets(1).Copy
Set mybook = Workbooks(Workbooks.Count)
mybook.Sheets(1).Range("A1") = "ABC"
End Sub

714
デフォルトの名無しさん[sage]   投稿日:2015/07/30 04:18:29  ID:3TLsFD+R.net
Sub NewSheet(Name As String, ByVal cnt As Long)
Dim WS As Worksheet, f As Boolean
Dim NameCnt As String

If cnt Then NameCnt = Name & cnt Else NameCnt = Name

For Each WS In ThisWorkbook.Worksheets
If WS.Name = NameCnt Then f = True: Exit For
Next

If f Then
Call NewSheet(Name, cnt + 1)
Else
Set WS = ThisWorkbook.Worksheets.Add
WS.Name = NameCnt
End If
End Sub

715
694[sage]   投稿日:2015/07/30 22:02:11  ID:ds/Apgk5.net(2)
やっぱりひと手間かけないと難しいですよね
ありがとうございました

716
デフォルトの名無しさん[sage]   投稿日:2015/07/31 03:12:44  ID:aPbYdwRE.net
>710
馬鹿なのお前?

717
デフォルトの名無しさん[]   投稿日:2015/07/31 23:33:53  ID:q+UwAnSR.net(2)
なんかお題をちょうだい

718
デフォルトの名無しさん[sage]   投稿日:2015/07/31 23:40:31  ID:pDlCqfLx.net
テトリスつくって

719
デフォルトの名無しさん[]   投稿日:2015/07/31 23:44:01  ID:q+UwAnSR.net(2)
32LINE2048bytesが制限だからちょっとテトリスはゴメンちゃい

720
デフォルトの名無しさん[sage]   投稿日:2015/08/02 08:29:07  ID:lFlP6vKj.net(2)
カンマがたくさん入力されたEXCELファイルをcsvファイルにしたい
ところが普通に名前をつけて保存だと"を付いてくれないっぽい

"aaa,bbb","cccc","d","eee","ff"
こういうcsvファイル作りたいんだけど、
VBAからテキストに書くしか方法ない?

元のEXCELファイルでは
カンマが入力されてる位置も数も法則性はありません
コメント5件

721
デフォルトの名無しさん[sage]   投稿日:2015/08/02 09:24:03  ID:js+6DYN9.net
>720
それがExcelの仕様
諦めてVBAを書くか、""なしで書き出したテキストファイルを
PerlやRuby等の簡易な言語で加工するか

722
デフォルトの名無しさん[sage]   投稿日:2015/08/02 10:54:43  ID:pHbT44ug.net
大体他言語の話を持ち出すやつは糖質
特にC++はアスペ
コメント1件

723
デフォルトの名無しさん[sage]   投稿日:2015/08/02 11:55:18  ID:zAkA6wkz.net
>722←これが病気の人の執着力です

724
デフォルトの名無しさん[sage]   投稿日:2015/08/02 12:23:27  ID:lFlP6vKj.net(2)
仕様でしたか
行数多いので処理時間が少し心配ですが、
VBAでやってみます

他言語はvbsで保存後に「,」を「","」に置き換え
加工できるかなとは少し考えてました。
でも置き換え対象外の「,」もあるわけで、
保存後だと判定が難しそう

725
デフォルトの名無しさん[sage]   投稿日:2015/08/02 13:06:35  ID:ZRhH79SV.net
>720
試した範囲では、少なくともセル中にカンマを含む場合はちゃんと""で囲んでくれるようだが
まあ、CSVはいろいろ細かいとこが違うから気に入らないなら自分で書き出すのが確実だけど

726
デフォルトの名無しさん[sage]   投稿日:2015/08/02 14:52:37  ID:egshDkuk.net(2)
リンクされたセルの値が変化した際に実行する処理をWorksheet_Changeに記述しております。
この処理中にリンクされたセルの値が変化した場合、
実行中のWorksheet_Changeは中断され、新たにWorksheet_Changeが開始されるのでしょうか?
それとも、実行中のWorksheet_Changeは引き続き実行され、同時並行にWorksheet_Changeが開始されるのでしょうか?

また、上記のどちらであるかを確認する方法があるようでしたら教えていただきたいのです。
よろしくお願いします。
コメント3件

727
デフォルトの名無しさん[sage]   投稿日:2015/08/02 15:09:53  ID:QrDJWkft.net
>726
処理の中に対象セルの値を変化させるコードがある場合、そこから新たに実行される。

Private Sub Worksheet_Change(ByVal Target As Range)
Dim i

Debug.Print "preexe"

Target = i

Debug.Print "Postexe"
End Sub

とかで実行してみてイミディエイトウィンドウを確認すると分かりやすい。
コメント2件

728
デフォルトの名無しさん[sage]   投稿日:2015/08/02 15:18:10  ID:9vFz/e2c.net
無限ループって怖くね?
コメント1件

729
デフォルトの名無しさん[sage]   投稿日:2015/08/02 16:11:43  ID:2Z/4WN4gX
>720
前後に""じゃない、適当な文字列つけたら?

730
デフォルトの名無しさん[sage]   投稿日:2015/08/02 16:32:16  ID:dkS/+hk9.net
>726
A列 金種
B列 枚数
C列 金額
でB、Cの何れか片方に入力されたらもう片方を再計算するようにしたことならあるけど…


731
715[sage]   投稿日:2015/08/02 17:32:28  ID:egshDkuk.net(2)
あー間違えたー
>726のWorksheet_ChangeはWorksheet_Calculateに読み替えてください。
↓が正しいです。すみません。
"リンクされたセルの値が変化した際に実行する処理をWorksheet_Calculateに記述しております。"

>727
>そこから新たに実行される
実行中のWorksheet_Changeは中断され新たにWorksheet_Changeが実行されるということでしょうか?
提示してもらったコードを参考にWorksheet_Calculateでの動作を確認してみます。

>728
Worksheet_Calculateが実行中にリンクされたセルの値が変化することもあれば、変化しないこともありますので
必ずしも無限ループとはなりません。
>727は無限ですけど。

732
デフォルトの名無しさん[sage]   投稿日:2015/08/02 18:39:22  ID:MF9TQU9s.net
>720
そういうのがわずらわしいからTab文字でセパレートするんやで
つーか全レコード舐めて使ってない文字なら何でもいいが

733
デフォルトの名無しさん[sage]   投稿日:2015/08/03 10:07:35  ID:IvRPgtVs.net
>720
アドイン探したらあったよ?
Excel CSV I/O 
使ってみたら。

734
デフォルトの名無しさん[sage]   投稿日:2015/08/03 15:40:21  ID:JhhThk5t.net
2バイト文字の空白エリアからテキトウに選べばええ

735
デフォルトの名無しさん[]   投稿日:2015/08/04 18:12:48  ID:Xu3GeQZL.net
OWCのグラフについてですが、データがEmptyの箇所を非表示にするにはどうすればいいでしょうか?

736
デフォルトの名無しさん[sage]   投稿日:2015/08/04 19:13:09  ID:qaA+gaVg.net
PowerShell なら、import-csv, export-csv,
-encoding で、UTF-8, Shift-JIS のエンコードも指定できる

Excelのファイル形式では、
6 CSV
22 Mac CSV
23 Windows CSV
24 MSDOS CSV

"a,b","a b"
こういうように、文字列の中に、
カンマや空白が入っていると、
ややこしいので、タブ区切り(TSV)を使う

737
デフォルトの名無しさん[sage]   投稿日:2015/08/05 00:47:49  ID:Xk+R3C8+.net
特定のブックだけでしか使わないので、そのためにアドインってのはちょっと嫌かな
tsvってなんでExcelに関連付けされてないんだろう
名前をつけて保存でも出てこないし

拡張子協会?みたいのがあって、そこには認められて無くて
タブ区切りだからtsvって一部の人が呼んでるだけなのだろうか
なんて想像してしまう
コメント1件

738
デフォルトの名無しさん[sage]   投稿日:2015/08/05 04:31:59  ID:yfcMdSNW.net
>737
Excelでのタブ区切りはテキスト形式指定で保存できる
関連付けは.txtなのでメモ帳になってるのが一般的だな
開くのはEXCELでちゃんと開ける

そもそもcsvはComma-Separated Valuesの略だとされてるから
タブ区切りがcsvじゃおかしいだろうって言う話があってtsvと呼んだりするけど
それ以外の区切り形式も全部ひっくるめてcsvと呼ぶこともある
いちおう今はRFCとかもあるけど、それ以前から存在するし実はかなりカオスな形式

739
デフォルトの名無しさん[]   投稿日:2015/08/06 21:55:53  ID:i7HDVQtV.net
ExcelからVBAでOutlooikを操作し
CreateObject("Outlook.Application").CreateItem(0)
でメールの下書きをいくつかたくさん作ります。

そのあとつくった全部に対して同じ処理をしたいのですが
このCreateItem(0)で作ったメールの下書きのコレクションを取得する方法ってどうやればよいでしょうか?
コメント1件

740
デフォルトの名無しさん[sage]   投稿日:2015/08/06 22:24:14  ID:JI2t4Gst.net
好きにやればいいよ

741
デフォルトの名無しさん[sage]   投稿日:2015/08/06 23:00:42  ID:hJ1X31cM.net
>739
outlook研究所に行けよ

742
デフォルトの名無しさん[sage]   投稿日:2015/08/06 23:53:13  ID:3nTeNGfy.net
自分で作ってるんだから自分でコレクションに入れていけば良いんじゃね

743
デフォルトの名無しさん[]   投稿日:2015/08/11 21:35:11  ID:gtl50mbf.net(3)
あるセルに
AAA BBB AAA CCC
と表示されているのを
AAA BBB CCC
と、つまり重複文字列を
削除するVBAのコードを何卒
お願いしますm(_ _)m
コメント1件

744
デフォルトの名無しさん[sage]   投稿日:2015/08/11 22:49:00  ID:my6QzTuQ.net
メニューに重複削除あるだろ
コメント1件

745
デフォルトの名無しさん[]   投稿日:2015/08/11 23:00:31  ID:gtl50mbf.net(3)
>744
一つにセル内の話です。
例えばA1内に
あああ あああ 200 200
と文字列がある場合に
マクロ実行で
あああ 200
のように。
(かなり困ってますので
お助けを…(_ _))

746
デフォルトの名無しさん[]   投稿日:2015/08/11 23:02:52  ID:Rnp54Swm.net(2)
あるセルって単一セル内?4つのセル?
コメント1件

747
デフォルトの名無しさん[]   投稿日:2015/08/11 23:14:47  ID:Rnp54Swm.net(2)
区切りにスペースは必ず入ってるのかな
コメント1件

748
デフォルトの名無しさん[sage]   投稿日:2015/08/11 23:24:55  ID:3YchA3jD.net
そんな馬鹿げた要件ないだろ

749
デフォルトの名無しさん[sage]   投稿日:2015/08/11 23:49:39  ID:UIGKpo35t
かたまりを格納してセルにはっつけて重複なんとかつかえば

750
デフォルトの名無しさん[]   投稿日:2015/08/11 23:43:59  ID:gtl50mbf.net(3)
>746
単一セル内

>747
スペースは入っています。
元のプログラムでは
文字列型の変数に
str = str & " " & Cell(i, j).Value
のようにして格納いています。
Dim i
Dim j
Dim str As String

For i = 1 To 100
str = str & " " & Cells(i, j).Value
Next i

Worksheets("紙").Cells(1, 1) = str

の様にしましたが結果が上記のようになって
しまいます。つまりstrの中身の重複を
削除する方法です(_ _)

751
デフォルトの名無しさん[]   投稿日:2015/08/12 00:05:07  ID:AxCPtTKK.net
>743

Sub こんなんどないや()

Set stock = New Collection
barabara = Split(ActiveCell.Value, " ")
On Error Resume Next

For Each OnePiece In barabara
stock.Add OnePiece, OnePiece
Next
On Error GoTo 0
For Each OnePiece In stock
kekka = kekka & " " & OnePiece
Next

ActiveCell.Value = Trim(kekka)

End Sub
コメント2件

752
デフォルトの名無しさん[]   投稿日:2015/08/12 00:26:19  ID:g9g1aoHI.net
>751
ありがとう御座います。
明日、会社で試してみます。

なんか出来そうな予感は
して来ました(笑)
(夜分遅くに本当に感謝です、他にも
ありましたら何方かなるべくシンプルな
やつでお願いします(^ ^;))

753
デフォルトの名無しさん[sage]   投稿日:2015/08/12 01:06:27  ID:svAFeBJn.net
>751
エラー無視させるかキーが当たったら登録させないかは好みで分かれるところだな
コメント1件

754
デフォルトの名無しさん[sage]   投稿日:2015/08/12 09:21:11  ID:ybFGXm8Q.net
>753
エラートラップとかはできる限り使いたくないから
> キーが当たったら登録させない
派だな

755
デフォルトの名無しさん[sage]   投稿日:2015/08/12 12:37:40  ID:bqbcCRVa.net
vba活用してスマホとEXCEL連携して何かできないかな
カメラで撮ったらシートに画像がすぐに貼り付けられるとか
バーコード呼んだらセルに入力されるとか
コメント1件

756
デフォルトの名無しさん[sage]   投稿日:2015/08/12 13:40:00  ID:CjCTxmpZ.net
dictionary使えばいいでしょ

まあ元のソースが別のセルに入ってるのをわざわざ連結してから処理してる意味がわからないけど

757
デフォルトの名無しさん[sage]   投稿日:2015/08/12 13:42:43  ID:Qp9NewvK.net
>755
googleスプレッドシートでやるといいよ

758
デフォルトの名無しさん[sage]   投稿日:2015/08/12 17:15:44  ID:e6JBBjJ+.net(2)
シートに図挿入したときのことなんですが、
挿入 ― 図 ― (d:\gazo\a000.jpg) ― ファイルにリンクで
貼り付けた画像があるとして、この画像のフルパス(d:\gazo・・・.jpg)を
知ることはできるでしょうか。Excel2007では,代替えテキストに
フルパスが入っていますが、Excel2010では、何も入りません。
(Excel側で、設定とかある?)、どこかに、情報は持っているはずと
思うのですが、VBAで知る方法、わかるかた教えてください。
代替えテキストは、下記でわかるようなのですが。
pic.ShapeRange.AlternativeText
コメント1件

759
デフォルトの名無しさん[sage]   投稿日:2015/08/12 19:06:50  ID:KANlCZaRa
プロパティは?

760
デフォルトの名無しさん[sage]   投稿日:2015/08/12 23:05:01  ID:G8qcToBK.net
そこを方向転換してマクロで図を挿入するようにすればバージョンに依存せずいつでもパスを得られると思わないか
思わないな
コメント1件

761
745[sage]   投稿日:2015/08/12 23:40:12  ID:e6JBBjJ+.net(2)
>760
じつは、マクロで図を挿入するのを作っていて、「Excel2010でPictures.Insertすると
リンク貼り付けになる」ということなので、いろいろ調べたら「代替テキストに画像のフルパスが
あるなら、挿入にできる」っていうのを見つけた。で、2007だと代替テキストにフルパスが
入ってるけど、2010は、なし。じゃ、ということで2010で代替テキストにフルパスを書き込む
ようにした。で、リンク貼り付け→挿入にできるようになったんだ。これ、>758カキコしてから
ようやっとできた。だけど、んにゃ、どっかにフルパス情報当然あるはず、と思うんだけど。
ちなみに「AddPicture」は、どうもしっくりこなくて。
コメント1件

762
デフォルトの名無しさん[]   投稿日:2015/08/13 01:00:44  ID:CPI6SZk7.net
>761
「代替テキストに画像のフルパスがあるなら、挿入にできる」って
なにそれリンクプリーズ
コメント1件

763
デフォルトの名無しさん[sage]   投稿日:2015/08/13 01:24:42  ID:UOPmO2ID.net
結局何が目的でどれがそのための手段なのかわからん

764
デフォルトの名無しさん[sage]   投稿日:2015/08/13 09:28:42  ID:jLoATrSc.net(2)
>762
これです。
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1284060567

要は、画像リンクで貼り付けられてる、画像のフルパスがわかれば、リンク貼り付け→挿入にできる。
Excel2007は、代替テキストに入ってるから、もしリンク貼り付けでも対処できる。2010は、手動貼付けや
Pictures.Insertでは、代替テキストにはフルパスは入らない。マクロで入るようには、もちろんできる。
じゃ、すでに手動なりでリンク貼り付けになってる(フルパス情報なし)のを、挿入にしたいから
図のフルパスを知りたい、ってことなんだわ。ネットで、いろいろググってるんだけど、見つからなくて。

765
デフォルトの名無しさん[sage]   投稿日:2015/08/13 10:30:47  ID:XEpKKFYz.net(2)
図をコピーして形式を選択して貼り付けするとリンク切れるみたいだけどそれでどうにか
コメント1件

766
750[sage]   投稿日:2015/08/13 11:38:58  ID:jLoATrSc.net(2)
>765
レスありがとう。教えてもらった通りの操作を、マクロ記録してみました。
それを利用して、画像フルパスなくても、一度に何枚のリンク画像でも、
挿入にできました。この方法は、思いつきませんでした。日頃のExcel操作が
大事だと改めて思いました。教えていただき、ありがとうございました。
(目的を達成したので、とりあえずリンク画像のフルパス取得は、保留にします。)

767
デフォルトの名無しさん[sage]   投稿日:2015/08/13 14:10:15  ID:XEpKKFYz.net(2)
図のリンクの編集ぐらいExcelの機能としてあるかと思ったら意外に無いのな
コピペも対処療法的な感じで非常にアレだ
コメント1件

768
デフォルトの名無しさん[sage]   投稿日:2015/08/13 18:40:42  ID:e6rsnF6N.net
>767
「対処療法」じゃなくて正しくは「対症療法」だよ

769
デフォルトの名無しさん[sage]   投稿日:2015/08/14 20:13:43  ID:8ARrFh/I.net(3)
Range("a1").value = Range("b1").value

こう書くと数式も含まれてコピーされるようですが
値のみを繁栄させたい場合はどう書けばいいのでしょうか? 
コメント4件

770
デフォルトの名無しさん[sage]   投稿日:2015/08/14 20:19:39  ID:kkHnja52.net(2)
>769
マクロ記録モードにして
「値で貼り付け」の操作をするとわかる
コメント1件

771
755[sage]   投稿日:2015/08/14 20:21:57  ID:8ARrFh/I.net(3)
>769
この質問の意図は

Range("A1").Copy

Range("B2").PasteSpecial Paste:=xlPasteValues

とすれば出来るのでしょうが1行で記述したいということです。


>770
ありがとうございます
コメント1件

772
デフォルトの名無しさん[sage]   投稿日:2015/08/14 20:43:22  ID:GC+yzDGQ.net
>769
私の記憶が確かなら、.valueは計算結果の値であって、数式はとれないはずですが。
EXCELのバージョンは?
コメント1件

773
755[sage]   投稿日:2015/08/14 20:54:01  ID:8ARrFh/I.net(3)
>772
2003です、、 
表の集計で使っていますが
今まではダイレクトに書かれた数値をコピペしていたところを
=a1 のようなセル参照で抽出する用に変えたのですが
結果の数値が全部0になりよく調べると =a1  ごとコピーされて
結果セルの式は=a100とかと表示されていてだめだこれはといった感じです
コメント1件

774
755[sage]   投稿日:2015/08/14 22:12:02  ID:yxgV65T9.net
結局の所
>771

>769
のように1行で書く事は出来ないのでしょうか?
コメント1件

775
デフォルトの名無しさん[sage]   投稿日:2015/08/14 22:41:06  ID:kkHnja52.net(2)
>774
できない
「値で貼り付け」はPasteSpecialメソッドにしかない機能なので
まずCopyしておく必要がある
コメント2件

776
755[sage]   投稿日:2015/08/14 23:04:41  ID:heE1+va8.net
>775
ありがとうございます。 長年の謎が溶けてすっきりしました。

777
デフォルトの名無しさん[]   投稿日:2015/08/14 23:45:05  ID:G78FLFmY.net
>773
うちは2007だけど
Range("a1").Value = Range("b1").Value
でちゃんと数値がコピーされるなー

ところでこんなんどないや
Range("a1").Value = Evaluate(Range("b1").Formula)
コメント1件

778
デフォルトの名無しさん[sage]   投稿日:2015/08/15 00:27:53  ID:fL/PzS3/.net(3)
>777
2010でもその通り、値のコピーとなった。
>775はウソ。

779
デフォルトの名無しさん[]   投稿日:2015/08/15 00:46:57  ID:tvgFL4BI.net
質問
これは動くのですが
Dim mm(2)
mm(1) = ActiveSheet.Shapes.AddLine(10, 10, 50, 50).Name
mm(2) = ActiveSheet.Shapes.AddLine(120, 20, 60, 60).Name
ActiveSheet.Shapes.Range(mm).Select

コレクションに置き換えると動きませんでした
Set nn = New Collection
nn.Add ActiveSheet.Shapes.AddLine(10, 10, 50, 50).Name
nn.Add ActiveSheet.Shapes.AddLine(120, 20, 60, 60).Name
ActiveSheet.Shapes.Range(nn).Select

諦めて配列を使うしかないのでしょうか それともcollectionの使い方がわるいのでしょうか
コメント1件

780
デフォルトの名無しさん[sage]   投稿日:2015/08/15 07:06:47  ID:j7Z0urAN.net
色々な事情で600シート分のデータを1〜2のブックに統合する必要が出てきたのですが

1つのブックに600シートぶち込んでしまうのと
300シートに分割して2ブックにするのと
200シートで3ブックにする

のではどれがお勧めでしょうか?
600シートの総データ数は300MBほどです。
1ブック200シートのデータ作成は成功しましてまあそれなりに止まることなく動くというのがわかりました。
コメント2件

781
デフォルトの名無しさん[sage]   投稿日:2015/08/15 10:12:24  ID:Rw3ql/9W.net
第3の答えとしてRDBを使用する

782
デフォルトの名無しさん[sage]   投稿日:2015/08/15 10:27:23  ID:cR607+81.net
開くの重そう。
自分で作れてるんなら、実用性次第じゃないの?

783
デフォルトの名無しさん[sage]   投稿日:2015/08/15 10:42:17  ID:p/7d84Nq.net
何もしていないxlsx形式やcsv形式で300MBなら統合した後にデータテーブル化すれば容量はだいぶ抑えられるはず。

784
デフォルトの名無しさん[sage]   投稿日:2015/08/15 15:22:05  ID:bQp9LOtRz
テキストにかきこんでdbsだなあ
dbsとかめっだにつかわないけど、使えると便利

785
デフォルトの名無しさん[]   投稿日:2015/08/15 15:23:11  ID:7AZQcdGh.net
>780
150シートに分割して4ブックにすることもできすし
120シートに分割して5ブックにすることもできすし
100シートに分割して6ブックにすることもできす。

しかし分割して7ブックにすることはできません。
これは7が600の約数ではないからです。
小学生の算数の授業でした。
コメント1件

786
デフォルトの名無しさん[sage]   投稿日:2015/08/15 15:48:36  ID:Bgl+GJFE.net
>785
分割は等分とは限らないんだぜ?

787
デフォルトの名無しさん[sage]   投稿日:2015/08/15 16:23:48  ID:mbZast3u.net
同一テーブルのデータをシートに分けるのは愚の骨頂 ひとつにまとめろ

788
デフォルトの名無しさん[]   投稿日:2015/08/15 16:33:01  ID:HxCw3c0C.net
重いとか色々理由あって、状況によっては必ずしも1つが正しいともいえないんだよなぁ。

789
デフォルトの名無しさん[sage]   投稿日:2015/08/15 17:04:42  ID:B4BgWceW.net(2)
まあそもそもEXCELでやるべき処理かという問題

790
デフォルトの名無しさん[sage]   投稿日:2015/08/15 17:10:19  ID:B4BgWceW.net(2)
>779
Shapes.Rangeの引数は、配列は許すがコレクションは許さない

791
デフォルトの名無しさん[sage]   投稿日:2015/08/15 22:40:04  ID:+545fZTC.net(3)
これからexcelvbaを学習しようと思うのですが、パソコンスクールとかに通ったほうがいいでしょうか。
コメント1件

792
デフォルトの名無しさん[sage]   投稿日:2015/08/15 22:51:46  ID:4BB87GxS.net(4)
>791
ネットの解説ページで充分

793
デフォルトの名無しさん[sage]   投稿日:2015/08/15 22:53:48  ID:fL/PzS3/.net(3)
美人講師に教えてもらえるのなら

794
デフォルトの名無しさん[sage]   投稿日:2015/08/15 22:55:28  ID:EaRAq543.net
VBA教えるスクールなんてあるんかな

795
デフォルトの名無しさん[sage]   投稿日:2015/08/15 22:58:58  ID:UUBlauo7.net
たぶんこのスレ見てるやつでパソコンスクールに通ったことあるやつってほとんどいないと思うぞ...

796
766[sage]   投稿日:2015/08/15 22:59:00  ID:4BB87GxS.net(4)
>780 ですが盆休みの暑い中あれこれ試して見ましたが
100メガぐらいある200シートあるファイルを作り3つを同じに開いて処理させようとしたら・・・
3つめでリソース不足で開けませんと出てきました THE END

まだ推測段階ですが1ブック400シート統合したファイルは開けたと思いますので巨大な1つのブックを作るのが正解のようです。

797
デフォルトの名無しさん[sage]   投稿日:2015/08/15 23:01:44  ID:fL/PzS3/.net(3)
現状のサイズで打ち止めなのか、今後少しずつ増えていくのかどっちだ?
コメント2件

798
766[sage]   投稿日:2015/08/15 23:09:16  ID:4BB87GxS.net(4)
>797
管理上多くのシートが束なった状態が有利でして
どちらかと言うと限界値を探っている感じです。

799
766[sage]   投稿日:2015/08/15 23:13:14  ID:4BB87GxS.net(4)
>797
最大シート数は青天井です
DBを使うべきなのでしょうがDB未経験なのでVBAであがいています

800
デフォルトの名無しさん[sage]   投稿日:2015/08/15 23:21:14  ID:+545fZTC.net(3)
776
アドバイスありがとうございます。
パソコンスクールは不要そうですね、自力でやります
コメント1件

801
デフォルトの名無しさん[sage]   投稿日:2015/08/15 23:34:34  ID:xECQEf0h2
スクールは専門でもなけりゃ、vbaどころかマクロすら知らない講師とかが教えるから。
このスレいたほうがはるかに解かりやすいかも

802
766[sage]   投稿日:2015/08/15 23:28:20  ID:FJpG/yMJ.net
>800
プログラミングの基礎知識があればネットで充分 
プログラム未経験で1から始めるならネットで見てわからなければ、本でやってみて、それでもだめならスクールかな
コメント1件

803
デフォルトの名無しさん[sage]   投稿日:2015/08/15 23:43:38  ID:+545fZTC.net(3)
>802
ありがとうございます。プログラムは初心者ですが実務で使えるレベルになりたいのです。
カエルが出てくるベストセラー入門書を読み込んでみます

804
デフォルトの名無しさん[sage]   投稿日:2015/08/16 00:07:46  ID:ulfn6A7k.net(2)
基礎知識は学生時代にやったからなあ
全くの未経験の感覚は分からん

805
デフォルトの名無しさん[sage]   投稿日:2015/08/16 02:37:33  ID:7WiTockH.net
マジレスすると最強のVBAスクールはここです

806
デフォルトの名無しさん[sage]   投稿日:2015/08/16 05:49:34  ID:ENl5jplp.net
マクロの記録だけでもいろいろ学べる
ループやifはないけど

807
デフォルトの名無しさん[sage]   投稿日:2015/08/16 10:11:51  ID:gGxBx6VU.net(2)
マクロ記録は宝の山
下手にループを組んだりするより、圧倒的に短く済む書き方を発見することがある

俺のVBA人生で一番驚いたのが、セルポインタの右下の黒点をWクリすると
左隣のセルに沿ってセル内容を自動コピーできること
コピー範囲の指定やif判定など一切が不要
コメント1件

808
デフォルトの名無しさん[]   投稿日:2015/08/16 10:29:13  ID:piHLRckr.net
それは太陽の黒点のように出現時期や数の変化はありますか?

809
デフォルトの名無しさん[sage]   投稿日:2015/08/16 11:32:03  ID:ulfn6A7k.net(2)
>807
そんな事出来たのかと思って試してみたけど
これってつまりオートフィル?
コメント1件

810
デフォルトの名無しさん[sage]   投稿日:2015/08/16 12:03:28  ID:gGxBx6VU.net(2)
>809
オートフィルだね
ループ組んで1セルずつ処理するコードを書くことしか頭になかったから
当時かなりの衝撃を受けた
関数内のセル参照式を自動でインクリメントしてくれるので、関数を含む
表をVBAで作る(割とよくある)場合に非常に役立つ

811
デフォルトの名無しさん[sage]   投稿日:2015/08/16 12:07:18  ID:+v5OIrpT.net
空白があると止まっちゃうから、結局ループに戻ったな。

812
デフォルトの名無しさん[sage]   投稿日:2015/08/18 00:21:58  ID:XBdAgPin.net
でも大抵ループより専用のシート関数呼んだ方が速くて悔しくね?
このあいだ適当に安定ソート組んだら組み込みのシート関数のSortのが速くてショック死した

813
デフォルトの名無しさん[sage]   投稿日:2015/08/18 04:01:26  ID:fz3Mk9gj.net
Sortメソッドって安定なの?

814
デフォルトの名無しさん[sage]   投稿日:2015/08/18 07:16:21  ID:Nc1vlm2A.net(2)
どうだろ。実験してみれば?
反例が出ればはっきりする。出なきゃ何とも言えんが。

815
デフォルトの名無しさん[sage]   投稿日:2015/08/18 15:40:30  ID:7IvcIIuj.net
反例が出るまで、あらゆるパターンをソートし続けるのか・・・
コメント1件

816
デフォルトの名無しさん[sage]   投稿日:2015/08/18 21:06:25  ID:Nc1vlm2A.net(2)
>815
そうさ。君ならできる。

817
デフォルトの名無しさん[sage]   投稿日:2015/08/20 00:38:14  ID:/DfWyQwS.net
>Sortメソッドって安定なの?
安定だよ
適当にセルに値埋めてキー列を変えながらソートしていけば不安定と何が違うか判る
コメント1件

818
デフォルトの名無しさん[sage]   投稿日:2015/08/20 00:47:34  ID:C5756yL1.net
その確信をどうやって持てばいいのか・・・

819
デフォルトの名無しさん[sage]   投稿日:2015/08/20 09:33:43  ID:X9vYl0u8.net
>817
個人的な実験で調べるのは無理
安定ソートと同じ結果になったのが偶然じゃないと証明することはできない

820
デフォルトの名無しさん[sage]   投稿日:2015/08/20 11:22:47  ID:4mlXzkea.net(2)
確信が持てないんだったらSort後にチェックのロジックを追加すればいい
(どうすんのかは知らんけど)
それか、最初から使わなければ良い

821
デフォルトの名無しさん[sage]   投稿日:2015/08/20 12:06:50  ID:mAnYGFvy.net(3)
普通だったら仕様書なり規格のここに書いてあるという話題になるのに、そうならない言語を使ってる男のひとって

822
デフォルトの名無しさん[sage]   投稿日:2015/08/20 12:09:54  ID:mAnYGFvy.net(3)
まあ安定にしたいというだけなら昇順インデックスを一列追加して第2キーに指定すれば良い。

823
デフォルトの名無しさん[sage]   投稿日:2015/08/20 12:26:40  ID:8gCc+4Mw/
昇順ソート、降順ソート、降順ソート後に昇順ソート
それぞれ比較すれば?

824
デフォルトの名無しさん[sage]   投稿日:2015/08/20 17:06:23  ID:GEWaWf2/.net
なんでExcelVBAユーザーって他の言語だとごくごく当たり前のことを
訊かれてるのに頓珍漢な答えを返すの?

825
デフォルトの名無しさん[sage]   投稿日:2015/08/20 18:11:06  ID:n0ICmDs/.net
他の言語 = C++限定

826
デフォルトの名無しさん[sage]   投稿日:2015/08/20 20:53:52  ID:mAnYGFvy.net(3)
その点OutlookVBAユーザーは偉い。

827
デフォルトの名無しさん[]   投稿日:2015/08/20 22:46:58  ID:abJwgas4.net
adoでAccessに接続しクエリのパラメーターにセルの値を渡すにはどのような方法がありますか?また、sqlでセルの値を使う場合もどのように書けば渡せますか?

828
デフォルトの名無しさん[sage]   投稿日:2015/08/20 23:25:51  ID:4mlXzkea.net(2)
sqlstr = " select 〜 from ddd where fff = " & Cells(i,1)

With wkR
.CursorLocation = adUseClient
.Open sqlstr, MgDB, adOpenStatic, adLockReadOnly
End With

みたいにしてっけど、こういう事じゃない?
コメント1件

829
デフォルトの名無しさん[]   投稿日:2015/08/21 00:12:09  ID:AQjOsTG4.net
>828
こういうことですが、&でセルの値はなにも囲まないんですね
コメント2件

830
デフォルトの名無しさん[sage]   投稿日:2015/08/21 00:23:47  ID:mP5B+B9x.net
>829
811だけど、これMySQLで俺がやってるもの。ACCESSではどうだったか。
MySQL出やる時、日付や文字列は "'" 半角のクォーテーションでくくってる

sqlstr = " 〜 '" & Cells(i,3) & "'" みたいに
そこら辺は適時修正してくれ

831
デフォルトの名無しさん[sage]   投稿日:2015/08/21 14:19:51  ID:yaZ860HY.net
>829,813
脆弱性たっぷりに見えるので、もう少し頑張れ・・・(´・ω・`)

832
デフォルトの名無しさん[sage]   投稿日:2015/08/21 16:50:53  ID:lpkbHdP+.net(2)
FileSystemObjectを使ってファイルをMoveFileで移動した直後に
元の場所に同じ名前のファイルをCreateTextFileやOpenTextFileで新規作成すると
作成時にたまにランタイムエラーになる
MoveFileが非同期で処理してんのかなあと思った
FileExistsで移動が完了するまで待った方がいいのか、別名で新規作成するべきか
どっちがいいと思います?
コメント1件

833
デフォルトの名無しさん[sage]   投稿日:2015/08/21 16:59:03  ID:CXs5osz9.net(2)
>832
目的による
処理を急ぐなら別名で、同名じゃないと困るなら完了まで待つ
コメント1件

834
デフォルトの名無しさん[sage]   投稿日:2015/08/21 17:29:16  ID:U/GX80hF.net(3)
book1の変数Nを使ってbook2のマクロをRunで使いたいのですが
book1で次のコードを実行するとNの値がエンプティになってしまいます。
変数を使うにはどうしたらいいですか?

Public N As Integer
N = 100
Application.Run "book2".xls!updata"
コメント1件

835
デフォルトの名無しさん[sage]   投稿日:2015/08/21 17:55:38  ID:CXs5osz9.net(2)
>834
Application.Run ("book2.xls!updata", N )
コメント1件

836
デフォルトの名無しさん[sage]   投稿日:2015/08/21 18:38:34  ID:lpkbHdP+.net(2)
>833
ありがとうございます
コメントも無い他人のソースなんで、何でこんなことしてるのかはまるで不明なんですが
別名路線でいくというか、もう移動先に直接作成することを考えております
参考になりました

837
デフォルトの名無しさん[sage]   投稿日:2015/08/21 18:44:54  ID:U/GX80hF.net(3)
>835
返信ありがとうございます
実行すると コンパイルエラー 修正候補: =
と出てしまいます。

838
デフォルトの名無しさん[sage]   投稿日:2015/08/21 20:21:41  ID:U/GX80hF.net(3)
book2に変数N宣言してないからかな
ちょっと別の方法でやってみます
ありがとうございました

839
デフォルトの名無しさん[]   投稿日:2015/08/23 14:00:42  ID:mtt7apD7.net
adoでつなぐクエリがAccessのクロス集計でパラメーターある場合、Excelからどうやったらパラメーター渡せる??

840
デフォルトの名無しさん[]   投稿日:2015/08/23 14:58:01  ID:CbBvys+j.net(6)
プログラム言語一般を勉強しているのですが
このVBAのVariant型の変数の正体ってなんですか?
かなり詳しく知りたいのですが。

841
デフォルトの名無しさん[]   投稿日:2015/08/23 14:59:12  ID:CbBvys+j.net(6)
いろんな型を入れられるし、セル範囲も入れられて配列のようにも使える。
これらはメモリにどのように記憶されているか、ということまでは最低でも知りたいんです。
プロ目指してますんで(ワラ
コメント1件

842
デフォルトの名無しさん[sage]   投稿日:2015/08/23 15:04:43  ID:WA8SS6t8.net
>841
VBAはソースも設計書も公開されていないので誰にもわからない
コメント1件

843
デフォルトの名無しさん[]   投稿日:2015/08/23 15:14:25  ID:CbBvys+j.net(6)
>842
そりゃないよかあちゃん
コメント1件

844
デフォルトの名無しさん[sage]   投稿日:2015/08/23 15:20:55  ID:J+cRYQ7V.net(2)
>843
VariantはOS(Windows)で定義されてる型
中は二つに分かれていて、データの種類と実際の内容が入ってる
VBAはそれを継承してるだけなので、Windowsクラスの仕様を探せば詳しいことがわかると思う
実際に消費するバイト数とかどっかで見た記憶があるんだけど思い出せん
コメント1件

845
デフォルトの名無しさん[]   投稿日:2015/08/23 15:24:51  ID:CbBvys+j.net(6)
>844
ありがとうございます。
ではなにを調べればよいのでしょ?
VBAの元になったVB.netの本には書いてそうですか?
コメント1件

846
デフォルトの名無しさん[sage]   投稿日:2015/08/23 15:37:58  ID:J+cRYQ7V.net(2)
>845
VB.netはVBAの元じゃないです
歴史的に見れば.netよりVBAの方がずっと古いです
VBAの言語仕様 (文法)はWindowsよりもっと前のMS-DOSの時代に流通していたMS-BASICの影響が強く残っています
とりあえずVariantについてはWindowsクラスを調べてください
コメント2件

847
デフォルトの名無しさん[]   投稿日:2015/08/23 15:45:58  ID:CbBvys+j.net(6)
>846
わかりました。
ではWindowsクラスはどうやって調べますか?
VBAのクラスだとコード書くところでF2押してそのオブジェクトウインドウでクラスを調べることができますが
Windowsクラスはどこをさわってどこを見ればよいのでしょうか?
コメント1件

848
デフォルトの名無しさん[sage]   投稿日:2015/08/23 15:48:38  ID:Sv2KumfA.net
>846
あんたエラいな
もう面倒臭いから
「VB.Netを調べればVariantのことならバッチリです」って書き込む衝動に駆られたよ

どうせVB.NetにはVariantなんて概念無いから調べればすぐ分かるだろうし

849
デフォルトの名無しさん[sage]   投稿日:2015/08/23 16:10:13  ID:MIuOfpHO.net
typename(変数名)ってやれば今何として使われてるのかわかるよ

850
デフォルトの名無しさん[sage]   投稿日:2015/08/23 16:12:01  ID:HWLa8qp/.net

851
デフォルトの名無しさん[]   投稿日:2015/08/23 16:14:09  ID:CbBvys+j.net(6)
>850
ぉぉ、ありがとうございます。
さっそく読んでみます

852
デフォルトの名無しさん[sage]   投稿日:2015/08/23 19:08:05  ID:pAcPKBpl.net
VariantやSafeArrayのことなんて今さら知ったところで役に立つまいよ

853
834[]   投稿日:2015/08/24 11:52:15  ID:kqGleJUR.net
さっぱり意味がわからないのですが
結局はVariant型の変数の正体はどうなっているのですか?
コメント4件


854
デフォルトの名無しさん[sage]   投稿日:2015/08/24 11:58:00  ID:mvfSohk+.net
It's 正体ム!

855
デフォルトの名無しさん[sage]   投稿日:2015/08/24 12:07:55  ID:v68vlkfs.net
>853
>850で紹介されてるサイトに明確に書いてるじゃんよ。
::VariantInitしたあとvtに型識別の定数入れてその型の値を入れりゃ使えるんだよ!

856
デフォルトの名無しさん[sage]   投稿日:2015/08/24 12:23:46  ID:yOjBToOI.net
>853
C/C++を勉強しろ

857
デフォルトの名無しさん[sage]   投稿日:2015/08/24 14:05:05  ID:BYoao/vR.net
>853
ヨボヨボのおじいさんと
何も聞かずにその荷物を持ってあげる親切な若者の2人組

ほら空港によくいるだろ
コメント1件

858
デフォルトの名無しさん[sage]   投稿日:2015/08/24 17:05:32  ID:J76Yg4NI.net
分かろうとしない。理解する気が無い。単純明快じゃないと
いやだ。という事だろう。

859
デフォルトの名無しさん[sage]   投稿日:2015/08/24 17:34:27  ID:Kuhf7pjv.net(2)
>853
833のリンク先を見て理解できないのは勉強が足りてないだけ

たいがいの変数は型が最初から1種類に決まってるのに対して、Variantは「型が何か」と「値」のペアを入れるようになってるから
同じ変数に色々な値を入れることができる
「型が文字列で値が"abc"」とか、「型が整数で値が1234」とか

VBAでは型を勝手に判定してくれるのと、その判定基準が(たぶん)非公開なので理解しにくいってのはあるけど

860
デフォルトの名無しさん[sage]   投稿日:2015/08/24 18:06:39  ID:CxEN4gra.net
VBAスレで>850のリンク先を理解できないと勉強不足ってなかなかきついなw
私もこのリンク先は理解できませんでした
勉強します。はい。

861
デフォルトの名無しさん[sage]   投稿日:2015/08/24 19:35:51  ID:EZ01N8pB.net(4)
でも勉強するなら後がないC++よりC#なんでしょ?
コメント1件

862
デフォルトの名無しさん[sage]   投稿日:2015/08/24 19:41:39  ID:L+YG8AD9.net
実はいまだに>857がわからない。

863
デフォルトの名無しさん[sage]   投稿日:2015/08/24 19:56:40  ID:j4ltc4Df.net(2)
>861
目的によるがメモリ管理なんかを勉強するなら最低でもCの挙動について知っておく必要がある。
newすりゃインスタンスがメモリ上にポンと出来るなんて甘々の高級言語なんか使ってたらいつまでもプログラマになれんのですよ!
コメント2件

864
デフォルトの名無しさん[sage]   投稿日:2015/08/24 20:07:49  ID:EZ01N8pB.net(4)
>863
じゃCとC#でいいや
3DSよりVITAのソフト作れるようになりたい
コメント1件

865
デフォルトの名無しさん[sage]   投稿日:2015/08/24 20:13:49  ID:j4ltc4Df.net(2)
>864
「○○でいいや」精神でゲーム作るならUnityなんかのAPIに慣れておく方が建設的。
まぁ一回、根幹的な仕組みを勉強してからの方が覚えやすいから無駄にはならないけど。

866
デフォルトの名無しさん[sage]   投稿日:2015/08/24 20:31:57  ID:Kuhf7pjv.net(2)
ゲーム専用機はもうすぐ死滅するから
今はスマホアプリで我慢しとけ
コメント1件

867
デフォルトの名無しさん[sage]   投稿日:2015/08/24 20:48:16  ID:EZ01N8pB.net(4)
>866
じゃWindowsパソコンしか持ってないからAndroidStadioでJavaか

868
デフォルトの名無しさん[sage]   投稿日:2015/08/24 22:50:47  ID:hopDjYVC.net
>863
> newすりゃインスタンスがメモリ上にポンと出来る
そう言うのを作る側に回ったことはないのか?
もしそうなら、そりゃスクリプト言語使ってるのとたいして変わらんかもな w
コメント1件

869
デフォルトの名無しさん[sage]   投稿日:2015/08/24 23:06:13  ID:EZ01N8pB.net(4)
>868
ひょっとするとインスタンス作るのに物凄く苦労するとか

870
デフォルトの名無しさん[sage]   投稿日:2015/08/25 00:20:48  ID:fH+tecmU.net
メモリ管理ってもVariantの場合はどういうタイミングで::VariantClearが行われるかとか
それをどうコントロールするかに気を使うことになる。

871
デフォルトの名無しさん[]   投稿日:2015/08/25 00:28:47  ID:SVRUkRRq.net(5)
ここのセルの値をここのセルに代入みたいなマッピングが100コほどあるんですが、簡単に早く書く方法ありませんでしょうか。
コメント1件

872
デフォルトの名無しさん[]   投稿日:2015/08/25 00:51:30  ID:LKq1O+0D.net
具体例で書いてください

873
デフォルトの名無しさん[]   投稿日:2015/08/25 01:02:46  ID:SVRUkRRq.net(5)
cells(i,1)=range("a3")
とか、こんなのを100コなんですが。右辺のセルは連続してません。
コメント1件

874
デフォルトの名無しさん[sage]   投稿日:2015/08/25 01:03:22  ID:3oudZYDo.net(3)
>871
何を聞きたいのか質問がさっぱりわからん
「早く書く」って、どこに何を書きたいんだ

875
デフォルトの名無しさん[sage]   投稿日:2015/08/25 01:05:58  ID:3oudZYDo.net(3)
>873
その右辺のセルの一覧はどっから入手すんだよ
紙にでも印刷されてんのか?

で、左辺には法則があんの?

876
デフォルトの名無しさん[]   投稿日:2015/08/25 01:11:57  ID:SVRUkRRq.net(5)
左辺は1のとこが100まで100行続きます。
右辺のセルはバラバラです。
cells(i,2)
cells(i,3)


コメント1件

877
デフォルトの名無しさん[sage]   投稿日:2015/08/25 01:16:53  ID:nOqJNbIK.net
数字が増えるだけなら、ソースをセルで書いてからオートフィルして、エディタに転記することをたまにやる。
コメント1件

878
デフォルトの名無しさん[sage]   投稿日:2015/08/25 01:32:24  ID:3oudZYDo.net(3)
>876
右辺は配列、左辺はForで回せば同じような行を並べて書く必要はなくなる
コメント1件

879
デフォルトの名無しさん[sage]   投稿日:2015/08/25 04:35:55  ID:viArKoao.net
100個程度なら、ワークシート側でハードコーディング用の配列等を関数使って作ってからマクロエディタにコピペした方が早くて楽だったり
コメント1件

880
デフォルトの名無しさん[]   投稿日:2015/08/25 12:07:24  ID:57Wb3jlh.net
FileSystemObjectを最近Excelから活用することを覚えたのですが
Web上にあるファイル(イントラネットにあるいろんな拡張子のファイル)を
コピーやら移動やらFileSystemObjectで操る方法ってありますか?

仕様なのか知らないがhttp://で始まるアドレスにあるファイルは扱えない。

881
デフォルトの名無しさん[]   投稿日:2015/08/25 19:20:53  ID:SVRUkRRq.net(5)
一覧表からハイパーリンクで、単票を開いて修正して保存したら、一覧側に反映されるようにマクロ組むんですが、一覧表開いたままで、一覧表を更新できませんか?
開いてるので更新できないとエラーになるんです

882
デフォルトの名無しさん[]   投稿日:2015/08/25 19:21:56  ID:SVRUkRRq.net(5)
>877
>878
>879

トンくす

883
デフォルトの名無しさん[sage]   投稿日:2015/08/25 22:55:10  ID:trQirQ+3.net
エラーを無視するコードを書いておいても出てくる
コードの実行が中断されました とは一体何ですか?
メモリーオーバーか何かでしょうか?
どうやったら回避出来るのでしょうか?
コメント2件

884
デフォルトの名無しさん[sage]   投稿日:2015/08/25 23:03:40  ID:Fjt3Kipb.net
>850
こうしてみると
やっぱCの構造体/共用体定義って秀でてるなあ
コメント1件

885
デフォルトの名無しさん[]   投稿日:2015/08/26 09:29:51  ID:1qA3LFtn.net
なぜ禿げてるんだ?

886
デフォルトの名無しさん[sage]   投稿日:2015/08/26 11:55:22  ID:CfN5/oSD.net
>883
コードを全部もれなくあげてみてくれ。

887
デフォルトの名無しさん[sage]   投稿日:2015/08/26 20:51:37  ID:Mnky30GV.net
>883
誰かがBreakキーを押した
ブレークポイントがあった
中断しましたというダイアログを出すコードを書いた

888
デフォルトの名無しさん[sage]   投稿日:2015/08/26 21:17:40  ID:jQcdD1vT.net
On Error命令は、その関数内でしか有効でないはずだから、エラーが出る可能性がある全ての関数に書く必要がある。

889
デフォルトの名無しさん[sage]   投稿日:2015/08/27 19:04:23  ID:8KYXppfO.net
ただのコンパイルエラーだったり

890
デフォルトの名無しさん[sage]   投稿日:2015/08/27 23:39:27  ID:DSwpBmOp.net
>884
ハード知識であるアライメントを意識できない最近のシステム屋は、
致命的な欠陥を作り込む場合が多い。
マイグレーションとか外部接続システムで。

891
デフォルトの名無しさん[sage]   投稿日:2015/08/28 06:58:15  ID:h/70kqcI.net
まぁVBAで考えることじゃないけどな

892
デフォルトの名無しさん[sage]   投稿日:2015/08/29 20:20:06  ID:daYUkBJ7.net
マルチスレッドできないハナクソ

893
デフォルトの名無しさん[sage]   投稿日:2015/08/30 13:57:40  ID:TrC601ZP.net
VBAで、オートシェイプの図形変更はできるでしょうか。たとえば既にある円を、
四角に変更するとか。手操作だと変更できますが、マクロ記録してみても、
何もコードが作られません。ググってみても、その情報はないような感じです。
コメント1件

894
デフォルトの名無しさん[sage]   投稿日:2015/08/30 14:41:34  ID:0qE+mi+l.net
>893
もしかして2007?
2007はシェイプのマクロが記録されないバグがあるから

図形の変更はAutoShapeTypeプロパティに図形の種類を代入するだけ
例えば四角にするにはmsoShapeRectangleを代入すればいい
コメント1件

895
876[sage]   投稿日:2015/08/30 17:14:45  ID:fHgQRyXi.net
>894
できました。どうもありがとう。2007です。助かりました。

896
デフォルトの名無しさん[]   投稿日:2015/08/30 21:14:20  ID:kboI7nNk.net
VBAからブラウザでURLを指定して開く方法を学んだのですが
うちの会社の社内のイントラページを開こうとすると
普通の開き方じゃなくVBAで開こうとするとそれを感知してるっぽくて
ログイン画面に飛ばされまたIDとPWを入力しないといけなくなります。

こんなことってよくあるのですか?
どうしてもVBAで開きたい場合その対策はどうすればいいですか?
コメント4件

897
デフォルトの名無しさん[sage]   投稿日:2015/08/30 21:27:29  ID:tJkk5ci/.net(2)
>896
何か特殊な仕掛けをイントラに施しているからそうなる
社内システム管理者に聞け

898
デフォルトの名無しさん[sage]   投稿日:2015/08/30 22:44:25  ID:PtUjiQ8D.net
>896
まず、
>VBAからブラウザでURLを指定して開く方法
この方法を書かなければ、レス付きませんよ。
コメント1件

899
デフォルトの名無しさん[sage]   投稿日:2015/08/30 23:14:42  ID:0E1Z3mSN.net
プロキシあたりなんだろうけど、vbaを検知なんてできるのかな。
IEを呼び出してるだけだよね?

900
デフォルトの名無しさん[sage]   投稿日:2015/08/30 23:28:00  ID:rAB4xeXlp
IDとパスワードの入力ボックス指定して自動入力かな、それだと
単純に、新しくページ開いてるから、セッション初期化されて生成してるだけじゃね

901
デフォルトの名無しさん[sage]   投稿日:2015/08/30 23:34:06  ID:tJkk5ci/.net(2)
今は仮想化やセキュリティやログインパスワード一元化のための仕掛けを
かましてることがあるんで、単純には開けないこともあるよ
とにかく社内システム管理者に聞くことだ

902
デフォルトの名無しさん[sage]   投稿日:2015/08/31 00:11:29  ID:g6VDKMqY.net
別のwindowでsessionが引き継がれてないかrefererで弾かれてるだけだろ

903
デフォルトの名無しさん[sage]   投稿日:2015/08/31 01:19:07  ID:PyRduorc.net
>896
シングルサインオンの認証基盤使っているんだろ。

フォームのブラウザ部品を使っているなら、
エクセルを立ち上げたあと、Webクエリを開いて、ログイン画面にID,PWを入れてログインする。
これでエクセルに認証済セッションが確立されるから、あとはマクロを実行すれば良い。

IEオブジェクトの場合は、ログイン済みのIEプロセスを取得するようにすれば良い。
もしくは、VBAで新規IE立ち上げてURLを開いた後に、タイトルを取得してログイン画面だったら、
IDをPWを流し込むようにすれば良い。

904
デフォルトの名無しさん[]   投稿日:2015/08/31 02:55:31  ID:7cfpxY0w.net
Microsoftクエリって内部はado?

905
デフォルトの名無しさん[sage]   投稿日:2015/08/31 17:58:03  ID:+ep0qKm5.net
>896
たぶん、普通にIEをダブルクリックで開いてパスワードを入れた後で、VBAから新規にIEオブジェクトを作成してんだと思うけど、
その方法だとパスワード認証情報は引き継がれない
対策は色々あるけど、VBAで何をやりたいかによる
コメント1件

906
デフォルトの名無しさん[]   投稿日:2015/08/31 18:06:40  ID:ch2DQs3g.net(3)
>905
自動でテキストボックスやチェックボックスに文字をいれたりチェックしたりして
最後にボタンを押したいのです。
コメント1件

907
デフォルトの名無しさん[sage]   投稿日:2015/08/31 18:48:32  ID:lFDVUwIc.net(2)
>906
パソコンが完全に自分専用ですぐ終わる処理なら、IDとPWもVBAから入力してやれば全自動にできる
その場合VBAのソースにパスワードを書くことになるので、他人に見られる可能性がある場合は危険すぎておすすめできない

画面のデザインや操作の手順が完全に固定されてるならIEオブジェクトは使わずにSendKeysで操作する方法がある
フォーカスの移動はTabキー、チェックボックスはスペースキーでチェックできる
コメント1件

908
デフォルトの名無しさん[sage]   投稿日:2015/08/31 18:49:46  ID:lFDVUwIc.net(2)
追記
ボタンを押すのはフォーカスを合わせてEnterな

909
デフォルトの名無しさん[]   投稿日:2015/08/31 19:01:11  ID:ch2DQs3g.net(3)
>907
なぜIEオブジェクトは使わない方法をすすめるのですか?
SendKeysはその間他の操作ができないしなんか不安になる。
コメント1件

910
デフォルトの名無しさん[]   投稿日:2015/08/31 19:02:04  ID:ch2DQs3g.net(3)
GetElementByIDでちゃんと取れるのですが
問題は先に書いた、ログイン画面が表示されたり変な画面になることです

911
デフォルトの名無しさん[sage]   投稿日:2015/08/31 19:23:52  ID:9FO3C5iL6(2)
>909
理由書いてあるのに、なぜって聞くのかwww

912
デフォルトの名無しさん[sage]   投稿日:2015/08/31 19:31:11  ID:I/nqUJvX.net
なんで >898 に回答 しない/できない 奴の相手するかなぁ...

913
デフォルトの名無しさん[sage]   投稿日:2015/08/31 19:32:10  ID:LuRVaWQV.net
再度ログイン画面になるってことはセッションが切れてるんだろ
一つのIEオブジェクトで一貫して操作してないとか何かしら問題のあるスクリプトになってんじゃないか

914
デフォルトの名無しさん[sage]   投稿日:2015/08/31 19:55:08  ID:9FO3C5iL6(2)
たぶん、IEの挙動を十分把握してないんじゃないか
何が問題になってて、どれが解決策なのか判断できないっぽい

915
デフォルトの名無しさん[]   投稿日:2015/09/02 22:38:31  ID:U41rngxq.net(2)
ワークブック開いて、違うワークブックに転記するコードがあるんですが、ワークブック開かずセルの値を転記するにはどのように書くことできますか?また速度的にはかなり早くなりますか?
コメント1件

916
デフォルトの名無しさん[sage]   投稿日:2015/09/02 22:43:43  ID:Io8ALjDg.net
ワークブックを開かずにセルを参照することは不可能だよ

917
デフォルトの名無しさん[sage]   投稿日:2015/09/02 23:07:09  ID:LGUC5Icc.net
zipで展開してxmlを読み込んでパースしてセルの値を取得するしかないね。

918
デフォルトの名無しさん[]   投稿日:2015/09/02 23:25:07  ID:U41rngxq.net(2)
ExecuteExcel4Macroで、対応できるようですね。ただ古いエクセルは使わないほうがいいんでしょうか。

919
デフォルトの名無しさん[sage]   投稿日:2015/09/03 00:35:37  ID:ZIG14SBg.net
フリーで EXCEL ブックにアクセスするツールってあったよね。
そう言うのじゃダメなん?

920
デフォルトの名無しさん[sage]   投稿日:2015/09/03 01:10:03  ID:7u8Pd6k9.net(2)
>915
直接操作はできないけど
ワークセルを介すればどうでしょうか?

Sub TEST()
Range("A1").Formula = "='D:\TEST\[TEST1.xlsm]Sheet1'!A5"
Debug.Print Range("A1").Value
End Sub

速度とかは知らない
ちなみに 自分は EXCEL2013
コメント1件

921
デフォルトの名無しさん[sage]   投稿日:2015/09/03 01:13:49  ID:S2+8lDDQ.net
For Each wname In Windowsですが 、これまで問題なかったのに
最近全部まわらず途中で終わってしまうことが増えました。
windows update でofficeが少し変わったからだと思いますが、
対処方法はありますか?
win7 X64です。

922
デフォルトの名無しさん[]   投稿日:2015/09/03 01:46:10  ID:5AuTPVsb.net(2)
>920
依頼者じゃないけどやってみたら動いた  そんな手があったのかw

それがいけるならこれでいいじゃん!
Debug.Print Evaluate("='D:\TEST\[TEST1.xlm]Sheet1'!A5")
と思ったが2023エラーがでちゃうね アララ 残念
コメント1件

923
900[sage]   投稿日:2015/09/03 02:08:19  ID:7u8Pd6k9.net(2)
>922
じつはこれ
EXCEL97時代にブック壊れてEXCELでオープン出来なくなった時
データサルベージに使った手法なんですよね
全ての破損に対応できるとは限らないけど
これで かなりのデータ復旧できたのよ
なつかしす

924
デフォルトの名無しさん[sage]   投稿日:2015/09/03 21:18:58  ID:gI7qOxsQ.net
たとえば連続したセルに「Font」「Color」「RGB(255,0,0)」と入っていて、
それを直接的に利用してCells(1,1).Font.Color = RGB(255,0,0)という設定をする、みたいな方法はありませんか?

if文やSelection文を使って処理を分岐するという方法ですと全てのメンバーを網羅するのが大変なので、
あくまでマクロ側は「どのメンバーを」「どう弄るのか」を知らずに盲目的に受け取った文字列をメンバーや引数として処理するという方法が欲しいのですが、
VBAだとこういう処理は難しいのでしょうか?
コメント6件

925
デフォルトの名無しさん[sage]   投稿日:2015/09/03 21:40:39  ID:8gUdvpRg.net
>924
無理じゃないかなあ
その三つをつなぐドットやイコールは誰がどうやって指示するの?
コメント1件

926
デフォルトの名無しさん[]   投稿日:2015/09/03 22:07:28  ID:5AuTPVsb.net(2)
>924
無理です
間接的に利用してください

927
デフォルトの名無しさん[sage]   投稿日:2015/09/03 22:45:46  ID:WEVKW98e.net
演算子の問題が解決したとして、テキストファイルに書き出してVBAプロジェクトオブジェクトからインポート

928
デフォルトの名無しさん[sage]   投稿日:2015/09/03 23:06:04  ID:PAfGEiTT.net
>924
望みがありそうな方法としては

1.APIのコールバックで何とかする
2..Netフレームワークをインストールしてリフレクションで何とかする
3.Application.Runで何とかする

くらいか

929
デフォルトの名無しさん[sage]   投稿日:2015/09/03 23:45:35  ID:a3XAcmHw.net
>924
動的に書き換えられたとして、コンパイルしなきゃだし
VBA単体では無理だと思います

代替案も思い付かず…
コメント1件

930
デフォルトの名無しさん[sage]   投稿日:2015/09/04 00:05:54  ID:9qkOqmzN4(3)
普通にできた気がするが。
>929でもあるように、VBAの書き換えが一つ。
定型文しか入れないなら、条件判定して解析すればいい

せれくと cells(i,1)
fontなら fontなんちゃら




みたいに。
セルを一つずつ参照してパワポみたいな動作するの作った覚えがある、あれどこやったかな

931
デフォルトの名無しさん[sage]   投稿日:2015/09/04 00:45:19  ID:Ehviu2S7.net
>924
「VBAだと」って言うけど、そういうことができる言語ってあるの?

932
デフォルトの名無しさん[sage]   投稿日:2015/09/04 01:33:24  ID:ExFTHLbB.net
いわゆるEvalが実装されてる言語なら出来そうだけど、ExcelのVBAでは無理だな
EvaluateとCallByNameで何とか出来るかもしれんが、汎用的には無理だと思う

933
デフォルトの名無しさん[sage]   投稿日:2015/09/04 02:18:22  ID:PCIPeDCd.net(3)
>924
プロシージャをVBAで生成してそれを実行するとか
A1,B1,C1へそれぞれ「Font」「Color」「RGB(255,0,0)」とあったとして

Sub TEST()
Dim VBC As VBComponent
Set VBC = ThisWorkbook.VBProject.VBComponents.Add(vbext_ct_StdModule)

VBC.CodeModule.InsertLines VBC.CodeModule.CountOfLines, "Sub TESTX()"
VBC.CodeModule.InsertLines VBC.CodeModule.CountOfLines, "Cells(1,1)." _
    & Range("A1") & "." & Range("B1") & "=" & Range("C1")
VBC.CodeModule.InsertLines VBC.CodeModule.CountOfLines, "End Sub"

Application.Run "TESTX"
ThisWorkbook.VBProject.VBComponents.Remove VBC

End Sub

上はただつなげてるだけだから
セル内容チェックを十分しないと コンパイルエラーになる可能性が大きいけど
コメント1件

934
デフォルトの名無しさん[sage]   投稿日:2015/09/04 05:42:14  ID:HtSUMw5S.net(2)
>925-933
回答ありがとうございます。
とりあえずApplication.Runで何とか出来ないか試してみたいと思います。

935
デフォルトの名無しさん[sage]   投稿日:2015/09/04 12:34:46  ID:5E7pI8p5.net(2)
使うAPI名が決まってるなら名前と関数の対のテーブルで擬似的に呼び出すって方法が
つっても関数がファーストクラスじゃないんだよねえ
VBやめてjavascriptで実装してVBAから渡すとか・・・

936
デフォルトの名無しさん[sage]   投稿日:2015/09/04 13:28:33  ID:5E7pI8p5.net(2)
つーか>933でいいじゃん
面白いな

937
デフォルトの名無しさん[]   投稿日:2015/09/04 19:20:11  ID:bKoadVKQ.net(5)
誰か開いてて読み取り専用の場合はworkbook_openに書いたマクロを無効にして、そのブックをダブルクリックで開きたいのですが、どのように書いたらいいですか?
コメント1件

938
デフォルトの名無しさん[sage]   投稿日:2015/09/04 19:41:44  ID:PCIPeDCd.net(3)
>937
読み取り専用で開いたかどうかは
ThisWorkbook.ReadOnly
で判定できるよ
コメント1件

939
デフォルトの名無しさん[]   投稿日:2015/09/04 20:18:28  ID:bKoadVKQ.net(5)
>938
そうなんですよね。ブックオープンが走る前にそのプロパティーで判別できたらいいんですけど
コメント2件

940
デフォルトの名無しさん[sage]   投稿日:2015/09/04 20:26:04  ID:PCIPeDCd.net(3)
>939
ブックオープンの最初で判定させればいいだけでは?
ブックオープンが動作した所で 一番最初に判定して EXIT SUB とかすれば
本来の処理が実行されないので 問題なくね

941
デフォルトの名無しさん[sage]   投稿日:2015/09/04 20:27:29  ID:ntJe9Vs/.net
>939
オープンして読み取り専用なら何もせず閉じるコードを
Workbook_openの最初に追加すればいいじゃないか

942
デフォルトの名無しさん[]   投稿日:2015/09/04 21:14:08  ID:bKoadVKQ.net(5)
そのとおりですね。排他処理がめんどくさい
コメント1件

943
デフォルトの名無しさん[sage]   投稿日:2015/09/04 21:38:02  ID:A59C16Ao.net
>942
排他処理は Excel がやるだろ
何が難しいんだ?
コメント1件

944
デフォルトの名無しさん[]   投稿日:2015/09/04 21:49:51  ID:bKoadVKQ.net(5)
>943
その排他処理って読み取り専用になることをいってますか?
ファイルサーバで複数人が触るブックで、どうデータを入力すとか、順序とか考えるとこんがらがってきた
コメント1件

945
デフォルトの名無しさん[sage]   投稿日:2015/09/04 22:30:27  ID:HtSUMw5S.net(2)
根本的な話として複数人が同時に触るんならエクセルファイルじゃなくてアクセスにすべきじゃねぇかな。
エクセルって基本的に電卓の亜種であってデータベースソフトじゃないし。
コメント1件

946
デフォルトの名無しさん[sage]   投稿日:2015/09/04 22:53:10  ID:9qkOqmzN4(3)
そもそも読み取り専用を開く前にコード走らせることってできるんかいな

947
デフォルトの名無しさん[sage]   投稿日:2015/09/04 22:44:40  ID:uxFbuttR.net(2)
>944
そりゃ運用の問題だ
とりあえずブックの共有でいいんじゃね
マクロは知らんけど
コメント1件

948
デフォルトの名無しさん[]   投稿日:2015/09/04 23:28:13  ID:bKoadVKQ.net(5)
>947
運用も言うこと聞くようなおっさん達じゃないんだよなー。文句だけ言う奴らで

949
デフォルトの名無しさん[sage]   投稿日:2015/09/04 23:40:49  ID:9qkOqmzN4(3)
テキストでもなんでもいいから外部書き出しにして、データ読み書きにすればいいよ
データ更新をちゃんと織り込んで名

950
デフォルトの名無しさん[sage]   投稿日:2015/09/04 23:42:32  ID:uxFbuttR.net(2)
お前んところの事情なんて語られてもしょうがない

951
デフォルトの名無しさん[sage]   投稿日:2015/09/04 23:43:00  ID:VusSFEWo.net
そりゃまぁ、2ちゃんねるで質問して喜んでるような輩に運用任せてる時点でお察し
コメント1件

952
デフォルトの名無しさん[sage]   投稿日:2015/09/04 23:52:57  ID:TmLEs7On.net
ここでの運用は特定の人たちを指す言葉ではなく、活用とか行動とか言う意味

953
デフォルトの名無しさん[]   投稿日:2015/09/05 00:18:44  ID:FRI4E2ZT.net
>951
どこで喜んでるんだよw

954
デフォルトの名無しさん[sage]   投稿日:2015/09/05 02:42:20  ID:CmBaCyqy.net
>945が正論かな。

多数の人が一度に書き込むときの制御はEXCELに向いていない。

何かファイルサーバ上で共有切ってるだけで不安定な気がする。

中にはOpenOfficeでアクセスしようとする奴もいるし。

955
デフォルトの名無しさん[sage]   投稿日:2015/09/05 03:14:44  ID:3MtyEdK2.net
SharePointってあったけど、あれはどうなん?

956
デフォルトの名無しさん[]   投稿日:2015/09/05 13:16:01  ID:x7KkU3nJ.net(8)
ショートカットファイルがたくさんありますが
今回、そのドライブレターを変えたのと、半分くらいはフォルダを作ってそれに入れたのでリンクが少しだけ規則的にかわりました。

FileSystemObjectというのを知っていままで使ったことがありますが
このFileSystemObjectを使ってショートカットファイルのリンク先を変更するには
どうすればいいでしょうか?
コメント2件

957
デフォルトの名無しさん[sage]   投稿日:2015/09/05 14:25:00  ID:ZKXW4+L0.net(2)
>956
スレ違いでは?
Excelに全く関係ないと思うんだが

958
デフォルトの名無しさん[]   投稿日:2015/09/05 14:31:39  ID:Hu04yitT.net
漠然とした質問なんですが・・・

VBAで色々作るの面白いから仕事を自動化させてるんだが
コントロールフォームのボタンを沢山作り過ぎて逆に見栄えが悪い&使いづらくなってしまった・・・

ボタン押すだけで特定の業務を自動化できるのはいいんだがいかんせんボタンが多すぎ
こういう場合はどうしたはいいんだ?
何か定石というかアイディアないですか?
コメント4件

959
デフォルトの名無しさん[sage]   投稿日:2015/09/05 14:37:21  ID:ZKXW4+L0.net(2)
>958
君はさらにスレ違い
もはやVBAの話題ですらない

960
デフォルトの名無しさん[sage]   投稿日:2015/09/05 14:42:39  ID:L+jn/gme.net
>958
同一の動作をするボタンをまとめて、組み合わせで特定の作業が出来る様にするとか、
動作をリストボックス表示にしてリストから選択した作業だけ実行する様にするとか。

961
デフォルトの名無しさん[sage]   投稿日:2015/09/05 14:51:35  ID:wnxJPoz8.net
>956
Office TANAKA - 番外編[lnkファイルのリンク先を取得する]
http://officetanaka.net/other/extra/tips12.htm
コメント1件

962
デフォルトの名無しさん[sage]   投稿日:2015/09/05 14:59:22  ID:84U+9ZQ6.net
>958
ボタンをセルと同サイズにして縦に並べて、横に進捗状況をプロットする様にしてる
順番に押していかないとエラーで止まる様にしたりもする
コメント1件

963
デフォルトの名無しさん[]   投稿日:2015/09/05 15:01:26  ID:x7KkU3nJ.net(8)
>958
フォームに「マルチページ」のコントロールを貼り付けて
ページごとに似通った機能をまとめたまえ。

964
デフォルトの名無しさん[]   投稿日:2015/09/05 15:17:17  ID:x7KkU3nJ.net(8)
>961
謝謝!

965
デフォルトの名無しさん[]   投稿日:2015/09/05 15:47:59  ID:x7KkU3nJ.net(8)
LnkFile.TargetPathは、読み取りはできても書き込みはできないようなのですが。
コメント1件

966
デフォルトの名無しさん[]   投稿日:2015/09/05 15:49:08  ID:x7KkU3nJ.net(8)
ところで
Sub Sample2()
 Dim WSH, LnkFile, DeskTopPath As String, LnkFileName As String
 Set WSH = CreateObject("WScript.Shell")
 DeskTopPath = WSH.SpecialFolders("Desktop")
 LnkFileName = DeskTopPath & "\メモ帳.lnk"
 Set LnkFile = WSH.CreateShortcut(LnkFileName)
 MsgBox LnkFile.TargetPath
 Set LnkFile = Nothing
 Set WSH = Nothing
End Sub
のようなコードがあったとして、LnkFileのクラス(?)のメンバをオブジェクトブラウザで見れるようにする方法はありますか?
コメント1件

967
デフォルトの名無しさん[]   投稿日:2015/09/05 16:35:27  ID:x7KkU3nJ.net(8)
>965
LnkFile.Save
とすればできるよ
コメント1件

968
デフォルトの名無しさん[]   投稿日:2015/09/05 16:37:12  ID:x7KkU3nJ.net(8)
>967
おお、すばらしい!!!

969
デフォルトの名無しさん[]   投稿日:2015/09/05 16:52:31  ID:x7KkU3nJ.net(8)
>966
Window Script Host Object Modelを参照設定したまえ

970
デフォルトの名無しさん[sage]   投稿日:2015/09/05 18:53:28  ID:McuB2/kQ.net
>962
> 順番に押していかないとエラーで止まる様にしたりもする
俺は押せないボタンが事前にわかってるなら Enabled = False にするな

971
デフォルトの名無しさん[sage]   投稿日:2015/09/06 06:51:37  ID:uAyrTmIH.net
基本的なことで、はまっています。2007です。UserFormに、
チェックボックス3個あって、どれかにチェックが入ると
他はチェックがオフになるようにしたいんですが、うまくいきません。

Private Sub CheckBox1_Click()
CheckBox1.Value = True
CheckBox2.Value = False
CheckBox3.Value = False
end sub

同様に、CheckBox2,3も、それぞれ自身がTrueでほかはFalse。
CheckBox1をクリック → チェック入る
CheckBox2  〃  →  〃     1 チェック消える
CheckBox3  〃  →   〃     2   〃
CheckBox1または2クリック → チェックはいらず、3チェックはいったまま。(A)

最初にCheckBox3クリックすると、チェックはいり、その後
1または2クリックしても、(A)の状態。なせでしょう。
(フレームに入れてみても、それだけだと複数チェックがはいってしまう。)
コメント2件

972
デフォルトの名無しさん[sage]   投稿日:2015/09/06 09:02:44  ID:wPdoKzWW.net
>971
check1クリックイベントハンドラー内に入った時点でcheck1の値は反転しているので、自身の値は設定不要。
そしてcheckの値を反転させると、それぞれのクリックイベントが発生する。

この辺りの挙動を整理して実装しないと、変なループが発生しますよ。
無限ループとか

973
デフォルトの名無しさん[sage]   投稿日:2015/09/06 09:11:51  ID:Rqv/7r06.net
「どれかひとつを選択」ならオプションボタンがいいよ。
コメント1件

974
デフォルトの名無しさん[sage]   投稿日:2015/09/06 09:15:40  ID:pMKgJlgc.net
クリックされたときに他のチェックをはずす処理が必要なのは自身の値がtrueになったときだけだよね

if check1.value = falseのときはexitするようにすればいいんじゃない?

975
デフォルトの名無しさん[sage]   投稿日:2015/09/06 09:34:13  ID:7OdEXCxT.net
>973
オプションボタンだとオフにできないんじゃない?

>971
チェックボックス+排他
で山ほどサンプルあるでしょ

976
デフォルトの名無しさん[]   投稿日:2015/09/06 10:31:59  ID:AH5FZdvj.net(2)
CreateObjectじゃなくGetObjectでWordやOutlookを開きたいんです。
なぜならすでに開いてたら二重で開くことになるから。
でももしもまだそれを開いてなかったらエラーがでてえらいこっちゃとなります。
これは定跡的にはどうやって対策しますか?
コメント1件

977
デフォルトの名無しさん[sage]   投稿日:2015/09/06 11:10:34  ID:8yRgk1H4.net(2)
チェックボックスで排他とか変なUI作るなよ
コメント2件

978
948[sage]   投稿日:2015/09/06 11:41:16  ID:3umPcbKU.net
みなさん、アドバイスありがとうございました。
恥ずかしながら、チェックボックスとオプションボタンをよく理解しておりませんでした。
オプションボタンで、解決しました。いろいろ、勉強になりました。どうもです。

979
デフォルトの名無しさん[sage]   投稿日:2015/09/06 16:33:37  ID:tXhFn+ho.net(3)
>976
GetObjectでエラーになったらCreateObjectすれば
コメント1件

980
デフォルトの名無しさん[sage]   投稿日:2015/09/06 16:51:05  ID:Ir/JiN9v.net(7)
>977
でもマジで作るやついるんだよ
最初見た時はマジで意味わからんかった
なんか(間違った)独自性を出したかったんだろうか...
コメント1件

981
デフォルトの名無しさん[sage]   投稿日:2015/09/06 17:09:04  ID:kcKZyiZs.net
ラジオボタンを知らなかったんだろ

982
デフォルトの名無しさん[sage]   投稿日:2015/09/06 17:10:50  ID:tXhFn+ho.net(3)
>977 >980
いやWindowsServerの役割と機能とか見たことない?
チェックボックスはただのOn/Offスイッチ的な側面もあるんだよ
なぜか他に適当なコントロールも無いし
コメント1件

983
デフォルトの名無しさん[sage]   投稿日:2015/09/06 17:54:40  ID:Ir/JiN9v.net(7)
>982
> いやWindowsServerの役割と機能とか見たことない?

どのバージョンの話?
2003, 2008, 2012 見たけど排他になってるやつなんてないけど?

> チェックボックスはただのOn/Offスイッチ的な側面もあるんだよ

つか、その機能しかないけど?
コメント1件

984
デフォルトの名無しさん[]   投稿日:2015/09/06 18:02:14  ID:AH5FZdvj.net(2)
>979
いやエラーになる前にCreateObjectしたいのですが。
そのためのif文でなにを書けばいいのでしょう?
コメント1件

985
デフォルトの名無しさん[sage]   投稿日:2015/09/06 18:33:55  ID:JKlgepEb.net
>984
WordやOutlookが開いているかどうかはどうやって調べるつもり?
その為のGetObjectじゃないか とおもうが

GetObject成功・・・・開いてた →取得したオブジェクトを利用
GetObject失敗・・・・開いてない→CreateObjectしてそれを使用

986
デフォルトの名無しさん[sage]   投稿日:2015/09/06 18:39:56  ID:tXhFn+ho.net(3)
>983
スイッチとして扱うなら排他でも何も違和感ないでしょって話
コメント2件

987
デフォルトの名無しさん[sage]   投稿日:2015/09/06 19:09:18  ID:Ir/JiN9v.net(7)
>986
お前はそうかもしれないけど大多数の人はそうじゃない
反論するなら有名どころのソフトで排他になってる例を 10個ぐらい挙げてくれ
コメント1件

988
デフォルトの名無しさん[]   投稿日:2015/09/06 19:12:40  ID:JSf18249.net(8)
>987
それは無茶言うもんやろ。
無茶なこと言うて相手黙らせたら満足するんかい。
しょーもないやっちゃな。
コメント2件

989
デフォルトの名無しさん[sage]   投稿日:2015/09/06 19:19:29  ID:zfcEEDe4g
>大多数の人はそうじゃない

お前の言う大多数ってお前以外に誰がいるのかまず10人あげてみ

990
デフォルトの名無しさん[]   投稿日:2015/09/06 19:13:34  ID:JSf18249.net(8)
しょーもないやつやな言うとんねん。
ホンマしょーもないわ、かー。

991
デフォルトの名無しさん[sage]   投稿日:2015/09/06 19:40:43  ID:Ir/JiN9v.net(7)
>988
違和感あるから誰もそんな UI にしない
ないなら、そう言う UI がいくらでもあるはず
しょうもないとか言う負け犬の遠吠えは恥ずかしいだけ
コメント1件

992
デフォルトの名無しさん[]   投稿日:2015/09/06 19:44:17  ID:JSf18249.net(8)
>991
いくらでもあるんやったら10個ぐらい挙げてくれ
お前が言うたんやからないくらでもあるんやろ
はよしてや

993
デフォルトの名無しさん[]   投稿日:2015/09/06 19:46:11  ID:JSf18249.net(8)
有名なやつやで
有名なやつ10個や
いくらでもある言うたんやから簡単やろ
はよしてや

994
デフォルトの名無しさん[sage]   投稿日:2015/09/06 20:26:59  ID:8yRgk1H4.net(2)
独立オプションの為のUIがチェックボックス
排他オプションの為のUIがオプションボタン
あえてそのセオリーに逆らう必然性は全くない

995
デフォルトの名無しさん[sage]   投稿日:2015/09/06 20:27:13  ID:Ir/JiN9v.net(7)
>986 の言う通り排他でも何も違和感) ないなら、そう言う UI がいくらでもあるはず

あるなんてどこに書いてあるんだ?
まさか、「はず」の意味すら理解できないのか?
コメント1件

996
デフォルトの名無しさん[]   投稿日:2015/09/06 20:33:21  ID:JSf18249.net(8)
>995
いくらでもあるはずや言うたやんか。
あるんやったら言うてみい。
言えへんのやろ?せやったら他の人にも言うたらあかんわ。
それを無茶や言うとんねん。無茶言うたらあかん。
無茶だけはやめときい。あんたのためやで。
排他でもなんら違和感ない。それでええな?
コメント1件

997
デフォルトの名無しさん[sage]   投稿日:2015/09/06 20:40:24  ID:Ir/JiN9v.net(7)
>996
わざわざかっこ付きで書いてあるんだからちゃんと読め
仮定法わからないならしょうがないが w
コメント1件

998
デフォルトの名無しさん[]   投稿日:2015/09/06 20:48:27  ID:JSf18249.net(8)
>997
そんなんどうでもええ。
無茶だけは言うたらあかん。
チェックボックスで排他はええ。

999
デフォルトの名無しさん[sage]   投稿日:2015/09/06 21:12:35  ID:Ir/JiN9v.net(7)
理解できなかったのか... w
コメント1件

1000
デフォルトの名無しさん[]   投稿日:2015/09/06 21:16:58  ID:JSf18249.net(8)
>999
どうでもええとこにこだわりもてへん言うてんねん。
本筋から外れとるやろ。仮定法の話違うかったやろ。
本筋見失ってどうすんねんな。国語のスレちゃう。Excel VBAのスレや!!
コメント1件

1001
デフォルトの名無しさん[sage]   投稿日:2015/09/06 21:29:51  ID:NotYgcdX.net
VBA関係ないから排他的なチェックボックスの話題はおしまい

1002
デフォルトの名無しさん[sage]   投稿日:2015/09/06 22:51:05  ID:TqvVUxNb.net
>1000
そのうざい似非関西弁口語口調目障りだから止めろ
コメント1件

1003
デフォルトの名無しさん[]   投稿日:2015/09/06 22:54:27  ID:JSf18249.net(8)
>1002
このたびは不快な思いをさせてしまい誠にすんまへんでした。

1004
デフォルトの名無しさん[sage]   投稿日:2015/09/07 00:20:37  ID:cu3gW1D3.net
すんまへんでんねんまんねん

1005
デフォルトの名無しさん[sage]   投稿日:2015/09/07 06:19:18  ID:iIih6qgJ.net
排他のチェックボックス作るような奴はおかしい奴ってことがはっきりしたな

1006
デフォルトの名無しさん[sage]   投稿日:2015/09/07 07:17:25  ID:o9/XMBwE.net
次スレは何処?
コメント2件

1007
デフォルトの名無しさん[sage]   投稿日:2015/09/07 07:55:12  ID:7q49S6cJ.net
>1006
ここ?
Excel VBA 質問スレ Part37 [転載禁止]©2ch.net
Excel VBA 質問スレ Part37
コメント1件

1008
デフォルトの名無しさん[sage]   投稿日:2015/09/07 13:54:06  ID:qNXpHtIR.net(2)
>1007
そこでいいの?

1009
デフォルトの名無しさん[sage]   投稿日:2015/09/07 14:07:41  ID:qNXpHtIR.net(2)
じゃー梅

1010
デフォルトの名無しさん[sage]   投稿日:2015/09/07 19:03:09  ID:E2JS6OsF.net
>1006-1008
そこは勝手に改悪したテンプレを盾にしてスレチだなんだと五月蝿いのが居るからダメ

本来の次スレはこっちに立てた
Excel VBA 質問スレ Part38
コメント2件

1011
デフォルトの名無しさん[sage]   投稿日:2015/09/07 22:43:17  ID:EWpXgtHr.net
>1010


では埋めだな

1012
デフォルトの名無しさん[sage]   投稿日:2015/09/07 23:45:23  ID:nzOhKJqK.net
>1010
乙です

1013
デフォルトの名無しさん[sage]   投稿日:2015/09/08 00:11:02  ID:oVeubNzq.net
ゆっくり進行スレなのに埋める意味があるのかな

1014
デフォルトの名無しさん[sage]   投稿日:2015/09/08 00:18:05  ID:knpqgMY3.net(2)
980過ぎた翌日に自動的に落ちるシステムだから埋めても埋めなくても同じ

1015
デフォルトの名無しさん[sage]   投稿日:2015/09/08 06:41:21  ID:ExO7c6Yl.net
うめしばー

1016
デフォルトの名無しさん[sage]   投稿日:2015/09/08 06:55:07  ID:u1cdNMtc.net
Debug.Print "埋め"

1017
デフォルトの名無しさん[sage]   投稿日:2015/09/08 16:10:27  ID:GKBL/Ew7.net
うめてんてー

1018
デフォルトの名無しさん[sage]   投稿日:2015/09/08 18:21:28  ID:knpqgMY3.net(2)
Hello 埋め world

1019
デフォルトの名無しさん[]   投稿日:2015/09/08 18:38:32  ID:m7aBfM8f.net
sub()

1020
デフォルトの名無しさん[sage]   投稿日:2015/09/08 22:10:12  ID:oGp/KliX.net
次スレ
Excel VBA 質問スレ Part38 [転載禁止]©2ch.net
Excel VBA 質問スレ Part38

1021
デフォルトの名無しさん[sage]   投稿日:2015/09/09 02:15:08  ID:uHaCyZBl.net
Exit Sub

1022
デフォルトの名無しさん[]   投稿日:2015/09/09 02:31:10  ID:qFTQoAT6.net
980過ぎた翌日に自動的に落ちるシステムの喪失

1023
デフォルトの名無しさん[sage]   投稿日:2015/09/09 06:14:26  ID:ys1D99oR.net
うめちゃん

1024
デフォルトの名無しさん[sage]   投稿日:2015/09/09 06:50:57  ID:aBvbVIMR.net
Excel VBA 質問スレ Part38 [転載禁止](c)2ch.net
Excel VBA 質問スレ Part38

1025
1001[]   投稿日:0000/00/00 00:00:00
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
更新情報
・スレッド一覧ページで過去ログのタイトル検索・一覧表示ができるようになりました(2016/1/20)
NGワード登録
登録する
スレッド内検索

プログラム板 タイトル検索

このスレッドが人気です(実況系)
タイガーマスクW 第三十七話「さらば虎よ」 ◆3 (536)テレ朝実況
ワールドプロレスリング (688)テレ朝実況
【マターリ】タイガーマスクW 第三十七話「さらば虎よ」 ◆1 (448)テレ朝実況
CDTV★3(修正) (614)TBS実況
7つの海を楽しもう!世界さまぁ〜リゾート part1 (848)TBS実況
有吉反省会 (804)NTV実況
さんまのお笑い向上委員★1 (834)フジ実況
バナナ♪ゼロミュージック「音楽クイズSP」 (938)NHK実況
このスレッドが人気です(ニュース系)
【国家戦略特区】安倍首相「獣医学部新設、全国展開を目指す」★17 (1001)ニュー速+
【この、ハゲーーーっ!】自民党 豊田真由子衆議院議員が離党届を提出 ★71 (742)ニュー速+
【国家戦略特区】安倍首相「獣医学部新設、全国展開を目指す」★18 (112)ニュー速+
【この、ハゲーーーっ!】自民党 豊田真由子衆議院議員が離党届を提出 ★70 (1001)ニュー速+
【国家戦略特区】安倍首相「獣医学部新設、全国展開を目指す」★16 (1001)ニュー速+
【この、ハゲーーーっ!】自民党 豊田真由子衆議院議員が離党届を提出 ★69 (1001)ニュー速+
【国家戦略特区】安倍首相「獣医学部新設、全国展開を目指す」★15 (1001)ニュー速+
【NMB48】 須藤凜々花 「恋愛禁止で我慢できる恋愛は恋愛じゃない」「NMB48を寿卒業します」 ★24 (1001)音楽・芸能ニュース
プログラム板の人気スレ
ふらっと C#,C♯,C#(初心者用) Part129 (384)
Excel VBA 質問スレ Part48 (995)
くだすれPython(超初心者用) その34 (553)
Xamarin Part4 (951)
【統計分析】機械学習・データマイニング15 (924)
C言語なら俺に聞け 140 (582)
オブジェクト指向って自然な文法だな 3 (921)
Java入門・初心者質問スレ Part.3 (916)
スレ立てるまでもない質問はここで 148匹目 (314)
Visual Studio 2017 Part2 (749)
Pythonのお勉強 Part53 (392)
ねねっちと一緒にプログラムを勉強するスレ第2話 (896)
Swift part10 (969)
Git 15 (911)
Ruby 初心者スレッド Part 60 (415)
JavaScript の質問用スレッド vol.123 (543)
C++相談室 part130 (545)
プログラミング言語 Rust 3 (223)
C#, C♯, C#相談室 Part94 (377)
推薦図書/必読書のためのスレッド 81 (905)
Visual Studio 2015 Part8 (768)
次世代言語議論スレ[Go Rust Scala Haskell]第5世代 (62)
関数型プログラミング言語Haskell Part30 (703)
ふらっと C#,C♯,C#(初心者用) Part127 (408)
☆★Java質問・相談スレッド180★★ (282)
Androidプログラミング質問スレ revision53 (470)
【初心者歓迎】C/C++室 Ver.100【環境依存OK】 (744)
テストしにくいコードをテストする方法 その2 (584)
MacでもLinuxでも使えるVisual Studio Code Part2 (146)
このサイトについて
このサイトは2ちゃんねるからデータを取得し、表示するサービスです。
画像のインライン表示機能について
画像のURLの後ろにある[画像をインライン表示]をクリックすると、URLの下に表示します。
表示される画像は横幅100pxに縮小されていて、クリックすると原寸で表示します。
このサイトの特徴
1)スレッド内検索ができます
2)レス(「>>1」など)のポップアップができます
3)不適切な言葉を含む投稿を表示しません
4)ページ内で画像を直接表示できます
5)2ch他スレッドへのリンクはタイトル・板名つきでリンクします
6)すっきりとしたデザインで表示します
7)最新スレや前スレをチェック・一覧表示します
8)NGワード機能の搭載でイヤな言葉が目に入りません
9)荒らしを自動チェックします
10)スレッド内・同一IDの書き込みだけ表示できます
11)レスの返事をレスされた発言の下に表示する「まとめビュー」が利用できます
12)シリーズ化したスレッドの一覧を表示します
13)最新のスレッドがある場合はお知らせします
削除について
こちらをご覧ください
機能要望について
現在機能要望受付中です。
問い合わせについて
こちらのページからどうぞ
広告


首都圏の方、ソフトバンク光オススメですよ


このサイトは2ch.scからデータを取得・表示しています。削除などについてはこちらをご覧ください。 アクセスモード:差分取得 - 新着書き込みなし(304)