Excel VBA 質問スレ Part37 [転載禁止]©5ch.io
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2015/01/10(土) 07:06:30.56ID:2VZ4g5kC___
___ /____ヽ ____
/____\ | |´・ω・`| | /___ヽ
.l |´・ω・`| ニX二 . ̄ ̄ ̄ 二X二 |´・ω・`| l 俺たちに任せろ
!、 ̄ ̄ ̄ ヽ | | /  ̄ ̄ ̄/
ヽ_/ヽ、 ヽ__) \__/\_/. /_/ ノヽ_/
 ̄  ̄ ̄
このスレはコード書き込みOKです。
作成依頼もOKですが、作成依頼限定ではありません。
コードが嫌な人は別スレ建ててください。
※前スレ
Excel VBA 質問スレ Part36 [転載禁止]©2ch.net・
http://peace.2ch.net/test/read.cgi/tech/1419718732/
※頭のレスの方でキチガイが束縛テンプレを貼る詐欺行為が前スレまで散見されましたので、十分にご注意ください。
0002デフォルトの名無しさん
2015/01/13(火) 14:17:34.52ID:l9CvqMDc當初は「こんな電腦掲示板、何たる幼稚加減」と莫迦にしてゐたものの、遣つて見ると存外に面白ひ。
華やかな色彩の髪と目を持つうら若き乙女に「ゆとり乙」と何度と無く罵られるにつけ、食ふや食はずやで慌しく過ぎ去つた學生時代が自ずと思ひ返され、「戰爭さえ無ければ、小生もこのやうな青春が送れたやも知れぬ」と獨りごちることも屡々。
すつかり虜となつた今では、孫の部屋から白銀色の電腦計算機をせしめては書齋に篭もり存分に「祭り」を堪能する毎日を送つている。
「小四女兒遺棄事件」なるスレツドを拜讀した際には、その餘りに不憫な境遇と過酷な運命に落涙し、臺所で葱を刻む家内に「かような理不盡が許されていいものか!」と熱辯を振るって呆れられる始末。年甲斐もない、とはこのことと後で赤面することしきり。
下手の横好きとはいえ「繼續は力なり」の言葉通り、最近ではブラクラの回避やコピペの管理にも慣れ、「好きこそものの上手なれ」を座右の銘として弐ゲツトに勵んでいる。
同年代の友人達が癡呆や重い病に惱まされるなか、老いて尚矍鑠としてオフ會に向かえるのも、ひとえに弐チヤンネルのおかげかと思えば、再三に渡る「半年ROMつてろ」の罵り文句も、何やら「まだまだ死ぬには早いよ」と言われているようで愉快極まりない。
ひとつ間違えれば自らが乗り込んでいた機體と同じ名前を持つコテハンに出會える日を樂しみにしつつ、今日もデスプレヱに向かう。
それでは、弐ゲツト。
0003デフォルトの名無しさん
2015/01/13(火) 20:21:25.89ID:GlIqiIHJどんだけ頭悪いんだよ
0004デフォルトの名無しさん
2015/01/24(土) 16:23:21.17ID:xRwObAQkExcel VBA 質問スレ Part36 [転載禁止]©2ch.net
http://peace.2ch.net/test/read.cgi/tech/1420790342/l50
0005デフォルトの名無しさん
2015/04/01(水) 20:00:11.48ID:/egDYYol0006デフォルトの名無しさん
2015/04/01(水) 21:50:18.58ID:by1Nk6ea前スレで、ここ使っておけばいいんじゃない?とか言っといて何なんだけど、まだ未消化のスレがあったわ
Excel VBA 質問スレ Part36 [転載禁止]©2ch.net・
http://peace.2ch.net/test/read.cgi/tech/1419718732/
こっちが先だな
0007デフォルトの名無しさん
2015/04/06(月) 16:22:48.77ID:R0FU2E8+このTest2というのは必ずTest1の中からしか呼び出されないから
Test1とTest2を並列に並べる感じじゃなくて
Test1の内部にTest2に位置させる構造みたいにすることはできないですか?
0008デフォルトの名無しさん
2015/04/06(月) 16:23:35.95ID:R0FU2E8+○ Test1の内部にTest2を位置させる構造
0009デフォルトの名無しさん
2015/04/06(月) 16:52:48.52ID:PufGX+Fr意味不明
0010デフォルトの名無しさん
2015/04/06(月) 17:03:46.81ID:R0FU2E8+意味がわからないのはプログラミング経験が少ないからだよ
0011デフォルトの名無しさん
2015/04/06(月) 17:04:40.63ID:R0FU2E8+0012デフォルトの名無しさん
2015/04/06(月) 17:50:46.40ID:iaxKA84j0013デフォルトの名無しさん
2015/04/06(月) 18:14:20.93ID:9rihMm0H内部に配置は無理だから
Test1とTest2を同じ標準モジュールに定義して
Test2をPrivateにしとけばいいんじゃね
0014デフォルトの名無しさん
2015/04/06(月) 18:22:01.26ID:F3YvzXsi多分、それは分かってて、わざわざ>>7みたいな事をしたいって事なんだろう
それに何の意味があるのかは知らんが
0015デフォルトの名無しさん
2015/04/06(月) 18:41:30.28ID:V7u5im+A推奨されない方法だけど こゆこと?
http://officetanaka.net/excel/vba/statement/GoSubReturn.htm
0016デフォルトの名無しさん
2015/04/06(月) 21:17:56.24ID:6qozZbmR0017デフォルトの名無しさん
2015/04/06(月) 21:21:39.89ID:6qozZbmRVBAではそう言うのないし、GOSUBは余りお勧め出来ない。
Test1以外から呼ばなきゃいいじゃんと言うのが結論。
0018デフォルトの名無しさん
2015/04/06(月) 23:58:22.10ID:PqbjMR/uここはVBAのスレだからVBAで説明してくれ
0019デフォルトの名無しさん
2015/04/07(火) 05:37:09.40ID:T6jm7qcvExcel VBA 質問スレ Part36 [転載禁止]©2ch.net・
http://peace.2ch.net/test/read.cgi/tech/1419718732/
0020デフォルトの名無しさん
2015/04/10(金) 13:14:42.52ID:Ayhlqbgxモジュールレベル変数で宣言するのとcall byvalで参照渡しするのと
処理速度的にはどっちが速いですか?
プロシージャ間の行き来は数十万回レベルです。
同一プロシージャに書けばいいんでしょうけど…
0021デフォルトの名無しさん
2015/04/10(金) 13:56:56.78ID:qqTdbdnb実測すれば解決するよ
0022デフォルトの名無しさん
2015/04/10(金) 16:22:02.68ID:Ayhlqbgx適当に作ったマクロで実測してみた。
Call Byvalのほうが1.5倍近く遅いようだ。
0023デフォルトの名無しさん
2015/04/10(金) 18:49:19.21ID:qqTdbdnb宗教上の理由でByValをデフォルトとしたくて、その実行時間の差が許容できる範囲なら
そうすればいいし、特にこだわりがなければByRefをデフォルトとすればいいってことだね。
0024デフォルトの名無しさん
2015/04/11(土) 15:57:52.11ID:Di7hwpD1参照渡しならByRefだよね?
0025デフォルトの名無しさん
2015/04/11(土) 18:00:30.31ID:j7Y/pu4p0026デフォルトの名無しさん
2015/04/11(土) 18:39:12.87ID:QOc8rwlG0027デフォルトの名無しさん
2015/04/11(土) 18:56:22.02ID:tS4MnGx50028デフォルトの名無しさん
2015/04/12(日) 23:06:14.03ID:PTItGJj50029デフォルトの名無しさん
2015/04/15(水) 12:45:03.10ID:s88AraXcなっていて、そのデータが正しいかどうか調べるコードを書きましたが、
@の照合が機能しません。ご指導よろしくお願いします。
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
0030デフォルトの名無しさん
2015/04/15(水) 16:11:34.91ID:VbMyd246Excel VBA 質問スレ Part36 [転載禁止]©2ch.net
http://peace.2ch.net/test/read.cgi/tech/1419718732/
0031デフォルトの名無しさん
2015/04/15(水) 16:27:49.21ID:32OEEOG2そちらのスレは荒らしが立て逃げした糞なスレだよ。
本来落として置かなければいけなかったものだ。
0032デフォルトの名無しさん
2015/04/15(水) 17:38:42.58ID:VbMyd246どうでもいいってか、どっちかと言うと荒らしが立てたのは
http://peace.2ch.net/test/read.cgi/tech/1420790342/l50
のほう
(実質的にこのスレの前々スレとして機能したけど、
本来は>>30で書いたスレのほうが先にたってた)
0033デフォルトの名無しさん
2015/04/15(水) 21:40:21.80ID:uwjeRs/E結局テンプレを盾にとって1人が暴れていただけだったんだよな
今考えてみると「こうあるべき」と押し付ける荒らしの走りだったのかもな
0034デフォルトの名無しさん
2015/04/18(土) 15:22:06.34ID:G8uXmJk6本でも可。
カビの生えたおじいちゃんの価値観で染まったのはNG。
0035デフォルトの名無しさん
2015/04/18(土) 15:39:26.25ID:mSwoExrOそんなものはないし、お前のような馬鹿じゃ何やっても無駄
0036デフォルトの名無しさん
2015/04/18(土) 17:16:49.33ID:vWBjvHtT0037デフォルトの名無しさん
2015/04/26(日) 16:04:49.69ID:IDXPl2M+=
:=
の違いは何ですか?
上は右辺を左辺に代入
下は何ですか?
0038デフォルトの名無しさん
2015/04/26(日) 16:17:52.04ID:P1ipXLUA「:=」(コロン・イコール)ってどういう意味?−名前付き引数
ぐぐれば判ることを聞こうとする辺り勉強する気ナッシングですね
0039デフォルトの名無しさん
2015/04/26(日) 16:41:14.62ID:PlxCC65O0040デフォルトの名無しさん
2015/04/26(日) 18:22:52.99ID:se3i9COaカルチャーブレーンの
0041デフォルトの名無しさん
2015/05/03(日) 20:22:20.22ID:OEqGa4+YExcelで事務系のフリーウェアを公開してるのですが、全国でどのくらいの本数が動いているのか分かりません。
また、どの機能をどのくらい使われてるのかも分かりません。
起動させた時にこれらの情報を載せたメールを送信させようかとも思ったのですが、一筋縄では行かなそうでした。
利用者の名前や住所を載せるつもりはありませんが、そもそもそんなメールを出させて良いのかどうかも分かりません。
これらの情報を知りたい場合、一般的にどのような方法が取られているのでしょうか?
どうかご教示ください。
0042デフォルトの名無しさん
2015/05/03(日) 21:36:32.07ID:7AJkLeM5自分がほしい情報をボタン一つでファイルに吐き出せるようにして、メールで送ってもらうとか Web にアップロードできるようにするとか
ただし、俺なら送らないけどな
0043デフォルトの名無しさん
2015/05/04(月) 04:00:08.42ID:O720nFZxたとえばエクセルには、カスタマ エクスペリエンス向上プログラムと言う機能が組み込まれている
利用者の同意を得てデータを送信させれば良いんじゃね
自作のフリーウェアなら、情報の収集を利用条件にしてもいいんじゃn
俺ならそんなソフト使わんが
0044デフォルトの名無しさん
2015/05/04(月) 08:03:17.60ID:MlDjNp+9誰一人使って無くても良いじゃん別に
オレ様が素晴らしいソフトをオマエラに提供してやったんだから有り難く使いヤガレ!
って勢いで公開するべきだと思うよ
まれに自発的にお礼や感想要望のメールも来ると思うけど期待はするな
0045デフォルトの名無しさん
2015/05/04(月) 08:39:58.31ID:nWEzAIy6そういうの
企業のソフトウェアがやるならともかく、フリーウェアで手を出すと確実に
スパイウェア扱いされるでしょうね。下手なことにクビ突っ込まないほうが
身のためですよ。
0046デフォルトの名無しさん
2015/05/04(月) 12:49:44.89ID:i+1DbMms> 俺なら送らないけどな
> 俺ならそんなソフト使わんが
ですよねー、私もそんなソフト嫌やわ。
> まれに自発的にお礼や感想要望のメールも来ると思うけど期待はするな
新年版への切り替えの頃になると、丁重なお礼と「はよ新年版出せや(意訳)」メールは度々いただいてます。
だからこそ、より使いやすいソフトのために…って思いからなんですけどね。
> スパイウェア扱いされるでしょうね。
いっその事FTP鯖立てて、そこへ密かに情報転送したろかなとかまで思いました。
けどバレたら確実にスパイウェアですからね。
変なツール実装するのは止めときます。
皆さんすいません、ありがとうございました。
0047デフォルトの名無しさん
2015/05/11(月) 08:48:57.43ID:AU+j6osa配列はほとんど使ってないの?
例えばJavaとかだとコレクションを使う方がはるかに便利だとか。
ExcelのVBAでも配列をやめてコレクションを使ったほうが便利で可読性もよいコードになるのかな?
0048デフォルトの名無しさん
2015/05/11(月) 09:17:16.73ID:jciykodT0049デフォルトの名無しさん
2015/05/11(月) 09:17:50.67ID:AVa5yrsT普通に配列つかったほうがいいよ。
0050デフォルトの名無しさん
2015/05/11(月) 11:45:07.74ID:6rZgRYO9それらの言語では配列以外を使う事の方が多くなってる
VBAでは、コレクションが配列より良い場合もないではないけど
ほとんどの場合は配列の方がすっきりすると思うぞ
0051デフォルトの名無しさん
2015/05/14(木) 22:31:05.69ID:F7V5bQJfそうじゃなくて
メッセージをメモ帳を開いてそこに記述するにはどうすればいいのでしょうか?
こうすることでコピペができるなどいろいろ便利と思うので。
0052デフォルトの名無しさん
2015/05/14(木) 23:41:41.84ID:dWCGk0JAで起動すればいいんちゃうの?
ちなみにMsgBoxはCtrl+Cでクリップボードに入る
0053デフォルトの名無しさん
2015/05/15(金) 00:05:07.14ID:F85nAjYzそうするとHDDのどこかにファイルを保存せねばならないでしょう。
そうしたくないんだ。
0054デフォルトの名無しさん
2015/05/15(金) 05:28:12.57ID:X5a4op11まあ俺ならコピペ前提ならそのままクリップボードにデータ入れるが
0055デフォルトの名無しさん
2015/05/15(金) 08:29:51.60ID:OMVhwfYUSendKey はいい思い出がないから >>52 に一票
0056デフォルトの名無しさん
2015/05/15(金) 17:08:00.10ID:SCDI1Wkqlog用シート追加して、そこに吐くんじゃダメなの?
そのシート残したくなければクローズ時に削除すればいいかと。
そんな単純じゃない話?
0057デフォルトの名無しさん
2015/05/15(金) 17:16:38.65ID:VZDZSKvz0058デフォルトの名無しさん
2015/05/16(土) 21:51:20.67ID:jUu32I5Wvbaで開発したものを有料の製品として販売している人や会社は、パスワードを破られてしまうとノウハウを簡単に盗まれてしまうという事ですよね。
それって、何か対策は有るんですか?
0059デフォルトの名無しさん
2015/05/16(土) 22:15:03.75ID:Yi4ECWX20060デフォルトの名無しさん
2015/05/16(土) 23:23:55.08ID:HH6fpt1Xできてしまう以上はその誘惑に勝てない。
0061デフォルトの名無しさん
2015/05/16(土) 23:40:40.79ID:Yi4ECWX20062デフォルトの名無しさん
2015/05/17(日) 00:29:03.42ID:TXM5pNIrLinuxには、メモリ上だけに存在するファイルシステム、tmpfs とか、
tmp ディレクトリに、ファイルを作って書き込めば、
システム終了時に自動的に、
作ったファイルを消してくれる、などの機能がある
Win にはそういう機能は無いの?
0063デフォルトの名無しさん
2015/05/17(日) 00:34:12.22ID:prFKBwN9Google先生に聞いてね。
78とか76とか、いろいろめんどうだけどね。
0064デフォルトの名無しさん
2015/05/17(日) 16:21:48.28ID:B0Fe1+FI文字列の中を除くとあとは
GOTO Label:
くらいでしょうか?
0065デフォルトの名無しさん
2015/05/17(日) 16:50:07.35ID:nnFlbvVf名前付き引数の指定で使う
http://www.relief.jp/itnote/archives/001014.php
引数の指定方法には、標準引数と名前付き引数という2種類の方法があります。
▼標準引数を使った例
WorkSheets.Add ,,5
▼名前付き引数を使った例
WorkSheets.Add Count:=5
0066デフォルトの名無しさん
2015/05/17(日) 16:53:28.95ID:lnYJDjFzExcel VBA 質問スレ Part36 [転載禁止]©2ch.net・
http://peace.2ch.net/test/read.cgi/tech/1419718732/
0067デフォルトの名無しさん
2015/05/17(日) 19:14:25.16ID:fv8Y2qXyマルチステートメント(の区切り)に使う
0068デフォルトの名無しさん
2015/05/17(日) 20:20:17.19ID:B0Fe1+FI詳しい解説、有難うございました。
この2例以外にはもう無いでしょうか?
0069デフォルトの名無しさん
2015/05/19(火) 12:05:13.92ID:NTe3EXZz0070デフォルトの名無しさん
2015/05/19(火) 23:05:06.59ID:Y2eIQ7MR0071デフォルトの名無しさん
2015/05/20(水) 00:01:24.67ID:HCLyDu6k0072デフォルトの名無しさん
2015/05/30(土) 00:10:11.41ID:uAz+OfzT一つのセルに「=(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と希望通りになりませんでした。
お助け下さい。
0073デフォルトの名無しさん
2015/05/30(土) 00:17:17.37ID:mU8J0Ylc0074デフォルトの名無しさん
2015/05/30(土) 00:24:06.68ID:4IPDAfwHROW()*3-2+COLUMN()
0075デフォルトの名無しさん
2015/06/02(火) 23:40:59.47ID:iC0H3P5x別のブックのイベントを停止させることはできるの?
どうもできないように思うのだが。
0076デフォルトの名無しさん
2015/06/03(水) 04:24:08.92ID:+cwo1qGY2007で試してみたが
普通にやると複数ブック開いても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
こんな感じでテストしてみた
007775
2015/06/03(水) 14:31:44.71ID:fXq4Zk1NResありがとう。
確かに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で立ち上がります。
0078デフォルトの名無しさん
2015/06/03(水) 20:08:13.04ID:ZKJDLKuDでも問題は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
0079デフォルトの名無しさん
2015/06/03(水) 20:18:44.73ID:+cwo1qGYいやだから、別のプロセスで開いたらその対応するApplication操作しろって言ってるんだが
問題はどうやってそのブックへの参照を得るかだが、自分で立ち上げるなら実例は示した
2013でどうなってるか知らんが、あとは自分で考えろ
あとWindowとプロセスの区別ついてないっぽいけど
Windowが別だからってプロセスが別だとは限らんぞ
2013からMDI廃止らしいけど、プロセスも別なのがデフォになったのかねぇ
0080デフォルトの名無しさん
2015/06/03(水) 22:56:11.47ID:ZxJD2qlUttp://www.relief.jp/itnote/archives/018148.php
便利なのか不便なのか分からん。
ブック間の不作為なリンクを避けられるなら仕方ないが、勝手にリンクする上にApplicationを取得しないと別のブックが見えないとかだったら嫌だな。
0081デフォルトの名無しさん
2015/06/06(土) 00:01:08.07ID:JzYI2RbiExcel作ってる人はバカなのかな
0082デフォルトの名無しさん
2015/06/06(土) 08:30:57.59ID:nnpJvQGY少なくともお前よりは頭いいよ
0083デフォルトの名無しさん
2015/06/06(土) 09:03:14.59ID:JzYI2Rbi0084デフォルトの名無しさん
2015/06/12(金) 11:53:50.80ID:P3g0DnhS>>988
後ろゼロ埋めして長さ揃えてソートして、その順に元の文字連結する
それ題意に合ってない。
例えば 3 < 31 になっちゃう
0085デフォルトの名無しさん
2015/06/12(金) 13:22:48.26ID:3WPnrkkpたとえば
72 と 568 だったら 72 を722 にするの
0086デフォルトの名無しさん
2015/06/12(金) 14:55:54.39ID:nFg05tfI0087デフォルトの名無しさん
2015/06/12(金) 17:29:03.95ID:9iuD3EDL正解
0088デフォルトの名無しさん
2015/06/12(金) 17:36:58.20ID:P3g0DnhSだからそれだと 3 < 31 になっちゃうんじゃないの?
0089デフォルトの名無しさん
2015/06/12(金) 20:29:11.94ID:aMl82aru多分それで上手く行くと思う。
0090デフォルトの名無しさん
2015/06/12(金) 21:00:11.26ID:P3g0DnhS0091デフォルトの名無しさん
2015/06/12(金) 21:03:00.99ID:P3g0DnhShttps://blog.svpino.com/2015/05/08/solution-to-problem-4
0092デフォルトの名無しさん
2015/06/12(金) 21:03:54.12ID:aMl82aruそこは本題の論点じゃなさそうだから、どっちでもいいんじゃない?
0093デフォルトの名無しさん
2015/06/12(金) 21:10:46.93ID:aMl82aruすまん、じじいだから英語分からんし、VBAしか分からん。
VBAのスレだからVBAに直して教えてくれ。
0094デフォルトの名無しさん
2015/06/12(金) 21:25:28.34ID:P3g0DnhSおれは多分あんたよりずっとじじいだと推測するが教えよう。
aとbが数値型だとして、このふたつを比較するのに、 CStr(a) & CS
tr(b) と CStr(b) & CStr(a) の比較に帰着させようってことだ
。
0095デフォルトの名無しさん
2015/06/12(金) 22:03:15.51ID:hZ3veipKなるほどね。どっちの方が効率いいんだろうな。
0096デフォルトの名無しさん
2015/06/13(土) 04:27:57.02ID:ds8D2Sdy0097デフォルトの名無しさん
2015/06/13(土) 10:20:57.75ID:YcieRO9yDim i as Integer = 5
みたいに宣言と代入を同時にできなかった?
0098デフォルトの名無しさん
2015/06/13(土) 10:51:54.20ID:P6q2Jefias じゃなくて As じゃないかな?(´・ω・`)
0099デフォルトの名無しさん
2015/06/13(土) 10:54:17.52ID:YcieRO9yそれは関係ないみたいですよ
0100デフォルトの名無しさん
2015/06/13(土) 10:55:47.86ID:aBb0zzsMconstだと宣言と同時に代入できるってか代入が必須
0101デフォルトの名無しさん
2015/06/13(土) 10:56:07.32ID:yb+K2D/khttp://www.dotup.org/uploda/www.dotup.org365418.jpg
コンパイルエラー
0102デフォルトの名無しさん
2015/06/13(土) 10:58:11.23ID:5fbKckS6っていうかVBSとVBAとVB.NETでは仕様が違うから平行して使うと混乱する。
0103デフォルトの名無しさん
2015/06/13(土) 13:09:18.97ID:EK7iCI9DDim i as Intger :i=5
じゃなくて?
0104デフォルトの名無しさん
2015/06/13(土) 13:11:08.13ID:EK7iCI9D0105デフォルトの名無しさん
2015/06/13(土) 13:59:15.72ID:ZT8kHOu5それ、2つの命令を1行に書いてるだけじゃん
0106デフォルトの名無しさん
2015/06/13(土) 14:56:58.35ID:xAuM0Ioe今の人って逆ポーランド記法とかも知らないだろうなぁ。
0107デフォルトの名無しさん
2015/06/13(土) 15:05:13.23ID:5fbKckS60108デフォルトの名無しさん
2015/06/13(土) 15:10:58.98ID:FxAuvF7G0109デフォルトの名無しさん
2015/06/13(土) 16:36:33.75ID:DqJYPwIz0110デフォルトの名無しさん
2015/06/13(土) 16:46:02.45ID:rvHURxqt0111デフォルトの名無しさん
2015/06/13(土) 16:57:27.94ID:DqJYPwIz0112デフォルトの名無しさん
2015/06/13(土) 16:59:19.80ID:7lUoI+DVその仕様書を作成するよう言われたのですが、書き方が分かりません。
仕様書・設計書の書き方で、初心者用のオススメ本とかありますか?
0113デフォルトの名無しさん
2015/06/13(土) 17:08:42.08ID:yb+K2D/k0114デフォルトの名無しさん
2015/06/13(土) 21:23:10.21ID:DqJYPwIz書き方が分からないのは分かった。
どう言った立場でどんなシチュエーションで言われたのかで答えが変わる質問っぽいな。
もう現場で実際に使うようなものであれば、>>113が言ってるように、
周りにサンプルが転がってるんじゃないか?
研修中と言うなら取り敢えず何のためにどんな仕様書が必要なのか洗い出して、
それぞれどうすれば自分の伝えたいことが伝わり易いのかを考えれば必然的にどう作成するか見えてくるはず。
例えば何を目的として作成されたツールなのか、画面にはどんな項目があるのか、
ボタンを押したらどんな処理が走るのか、とかね。
ま、仕事で分からない人にいきなりレクチャーも無しに作れと言うのは少し考え辛いな。
分からなければ取り敢えず上の人に聞いた方がいいと思うよ。
0115デフォルトの名無しさん
2015/06/13(土) 21:55:36.91ID:FQeTzdta今さらそんな些細なこと言われても...
VBA は初期値が決まってるから、Fortran とか C/C++ と違って単体テストちゃんとやれば大丈夫だしね
0116デフォルトの名無しさん
2015/06/13(土) 23:50:09.98ID:xAuM0Ioe分からないなら、分からないとちゃんと伝えないと、手取り足取りでは教えてもらえない。
適切な質問を適切なタイミングで行うことで、
コミュニケーションが深まり、信頼されるようになっていくんだから。
新人のうちは、作業を依頼されたら、
「何を/何時までに/どのように」
が、頭に浮かばない状態では、受けちゃだめ。
分からないところは、ちゃんと質問しろ。
で、2割できたと思った時に、それを説明して確認して方向性が間違ってないか聞け。
そして8割できたと思った時に、もう一度確認しろ。
その状態でOKがでたら、その作業は完了として、次の作業に移れば良い。
もう少し、といわれたら10割まで進めろ。
「やります」って約束してから初心者本を探すようでは、失格だよ。
0117デフォルトの名無しさん
2015/06/14(日) 08:07:46.62ID:XH+fyzBIインタプリタとコンパイラの関係については
ここではあまり関係がある話とは思えないなぁ。
VBAとVB.Netでは、VBAはエラーになるし、VB.Netでは動く。
中間コードがPコードかILかって違いはあるけど、どっちもインタプリタの
要素を含んだコンパイラっていう形式であることは変わらないし。
逆ポーランド記法なんて中間コードを挟まない場合や、
直で中間コードを弄る場合には今でも使うし、
そうでなければ昔でも使わない。
結局のところ、>>107の人が言ってることが正解ってことになるんだろうなぁ。
0118デフォルトの名無しさん
2015/06/14(日) 11:42:28.09ID:gLTCEjdN>>116 もそうだけど、誤爆でなきゃ話の流れに関係なく自分の思い付いたことを語り始めるアレな人みたいなので、相手しない方がいい
0119デフォルトの名無しさん
2015/06/14(日) 12:46:31.01ID:inpQDwIg下記のコードだと関数の結果が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
0120デフォルトの名無しさん
2015/06/14(日) 13:34:47.08ID:pyKjCLa1Dim Spstr() As String
Spstr = Split(TargetRange.Value, SplitStr)
AnySplit = Spstr(PutNum)
End Function
0121デフォルトの名無しさん
2015/06/14(日) 13:47:46.11ID:9sCLitNcそのままコピペして、別に問題なく動いてるけど
あえて言うなら、MsgBoxは全部削除かコメントアウトした?
0122デフォルトの名無しさん
2015/06/14(日) 13:53:29.18ID:pyKjCLa1Function 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
0123デフォルトの名無しさん
2015/06/14(日) 14:06:12.12ID:inpQDwIg原因分かりませんがもともと自分で作ったものでも動きました(汗
なにか勘違いしていたみたいです
修正案作ってくれった方々も有難うございます。
0124デフォルトの名無しさん
2015/06/14(日) 16:28:13.01ID:aLL1Dt0J>22 :デフォルトの名無しさん:2015/06/14(日) 14:14:40.48 ID:Qy/1/K9E
>非表示のシートをselectするとエラーが出るのですが仕様ですか
仕様みたいよ
Activateを使えばエラーでないらしい
http://d.hatena.ne.jp/paz3/20090824/1251086123
0125デフォルトの名無しさん
2015/06/14(日) 21:09:14.94ID:1Cglll13書いてみたので載せときました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
0126デフォルトの名無しさん
2015/06/14(日) 21:41:53.64ID:1Cglll13もう見てないかもしれませんがどうぞ。
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
0127デフォルトの名無しさん
2015/06/14(日) 21:47:43.34ID:9sCLitNc配列を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
0128デフォルトの名無しさん
2015/06/14(日) 22:42:59.92ID:1Cglll13詳しくはありませんが、
チェックデジットが最後で値が違うからじゃないですかねぇ。
以下の部分がおかしいのかなぁ。
s = s + Mid(Cells(1, 1), Len(Cells(1, 1)) - 1 - i, 1) * (i Mod 6 + 2)
0129デフォルトの名無しさん
2015/06/14(日) 22:59:58.84ID:1Cglll13こんな感じですかね?
あとはカスタマイズしてみてくださいな。
Sub test()
Sheet1.Range("D2").Value = "=VLOOKUP(""d"",A1:B7,B:B,TRUE)"
End Sub
0130デフォルトの名無しさん
2015/06/16(火) 20:01:33.86ID:/YX6SlcOネットを調べてみた限りだと解凍する方法しか出てこないから、やっぱ一時ファイルに中身を出して読み込むまでを自動化して、
あたかもzipを直接読んでいるかの様に振る舞うくらいしか方法ないのかな。
0131デフォルトの名無しさん
2015/06/16(火) 20:07:11.57ID:bDVKNfTyWindowsのエクスプローラーなら(あたかも)解凍せずにフォルダのように見る機能がついてるじゃん
0132デフォルトの名無しさん
2015/06/16(火) 20:09:36.92ID:OQMU+FkQ0133デフォルトの名無しさん
2015/06/16(火) 20:10:52.60ID:/YX6SlcOあ、ごめん。閲覧って書いたけど本当は読み込みだ。
エクセルが閲覧する≒内部情報を読み込んでいる。という発想から閲覧と書いてしまった。
0134デフォルトの名無しさん
2015/06/16(火) 20:25:01.91ID:bDVKNfTy解凍アプリ入れて関連付けするだけの簡単なお仕事で解決ですよ
0135デフォルトの名無しさん
2015/06/16(火) 23:33:39.61ID:CTMSSCrl右クリックですべて展開の方が好きだな
0136デフォルトの名無しさん
2015/06/20(土) 12:47:52.85ID:0iDXtIw3excel2010
「wsock32.dll」を使用したいのですが
参照設定になにを追加したらいいのかわかりません。
ご教授お願い致します。
0137デフォルトの名無しさん
2015/06/20(土) 12:49:24.67ID:ICg+mTIeVBAでDeclare Functionで宣言して使うんなら参照設定は必用ない
0138デフォルトの名無しさん
2015/06/20(土) 12:55:09.99ID:0iDXtIw3そうなんですね!ありがとうございます!
勉強不足で申し訳ありません。
0139デフォルトの名無しさん
2015/06/20(土) 13:37:12.86ID:GrEUy4+jシート単位またはセル単位で設定ができ、かつエクセルの通常画面からは見えない様な設定の仕方はありませんか?
IDというメンバ変数を見つけたのですが、保存する時に消えてしまうのでシート単位で個別に保存して運用する可能性があって使えません。
XPathやSmartTagsが自由に設定できれば使えそうなんですが、これは何か形式が決まっているんでしょうか?
0140デフォルトの名無しさん
2015/06/20(土) 13:49:23.06ID:ICg+mTIeシートを非表示にする
0141デフォルトの名無しさん
2015/06/20(土) 16:01:17.17ID:VnYjkKK/シート非表示で良いと思う。
但し、表示されちゃうとまずいから
VBA側でVeryHiddenにしとく
0142デフォルトの名無しさん
2015/06/20(土) 18:25:10.11ID:GrEUy4+jやっぱりそういう方法しかないんですね。
直接読み込ませるのではなく、各ファイルが自分でバッチファイルを生成して元のデータベースに統合する形にしたいと思います。
ありがとうございました。
0143デフォルトの名無しさん
2015/06/20(土) 23:34:52.81ID:VnYjkKK/そこまで大掛かりにするならExcelにやらせるのではなく
.Netフレームワークとかでシステム作ってそっちにやらせた方が楽かも知れないよ。
それ用のテンプレートファイル作って
そこに展開するようにしておけば、
隠しシート仕込まないことも視野に入れられるし。
0144デフォルトの名無しさん
2015/06/21(日) 12:05:02.10ID:QrPate9Z縦×横がそれぞれ数10レベルの配列とセル領域(固定)に対する出力なんですが、
最初に Application.EnableEvents = False したあと、ループ内で
1. 配列の値を再計算
2. 配列をセルに貼り付け(毎回同じ場所)
3. カウンタを表示(特定セル)
4. Application.ScreenUpdating = True
とやってます。(一種のアニメーションです。)
だいたいカウンタが50くらいまでは順調に表示を更新するんですが、そのあと砂時計となって表示が固まります。
その間も計算はしてるようなんですが、最後に一気に飛んだ状態でカウンタが表示されます。
計算モードはずっと xlCalculationManual で、個々の値は長さ1の文字列です。
ずっと表示し続けるにはどうすればいいでしょうか?
0145デフォルトの名無しさん
2015/06/21(日) 12:06:24.53ID:8nB0S4aH5. DoEvents
0146デフォルトの名無しさん
2015/06/21(日) 12:06:37.25ID:QrPate9Z× 最初にApplication.EnableEvents = False したあと、ループ内で
〇 最初にApplication.ScreenUpdating = False したあと、ループ内で
0147デフォルトの名無しさん
2015/06/21(日) 12:08:02.54ID:QrPate9Zうお!一瞬で解決しました!
0148デフォルトの名無しさん
2015/06/21(日) 14:33:38.20ID:c2TFF1xNDim 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の時だけは一致判別できます…
0149デフォルトの名無しさん
2015/06/21(日) 14:43:05.97ID:c2TFF1xN↑の画像のsheet1に記載されたデータをsheet2に反映させて、簡単なシフト表を作りたいと思っています。
0150デフォルトの名無しさん
2015/06/21(日) 14:57:40.61ID:KB1pzFAkたぶんここ
正 ws2.Cells(j, m).Value = 1
誤 ws2.Cells(i, m).Value = 1
だと思うけど、それ以外にもおかしいところがたくさんありすぎて、突っ込んでいいのかどうか迷うところ
0151デフォルトの名無しさん
2015/06/21(日) 15:18:00.34ID:KB1pzFAk>>150は間違い。これで動いた
シリアル値を別シートから持って来ると小数誤差が出るのってExcelの仕様なのかな
こりゃ初心者にはわからんわ
time1 = ws1.Cells(j, 2).Text
time2 = ws2.Cells(1, m).Text
0152デフォルトの名無しさん
2015/06/21(日) 15:30:19.64ID:c2TFF1xN>>151
time1,2をstringに変え、.textでの比較に変えたら動きました!ありがとうございました。
お察しの通りVBAは超初心者、プログラムも大学の授業でCを学んだ程度です。
0153デフォルトの名無しさん
2015/06/21(日) 16:47:35.17ID:nnV9xOPw浮動小数点なんで誤差が出ないわけではないが、たぶん誤差じゃなくて
実際に違うシリアル値なんだが表示上同じに見えてるだけ だと思われ
単純な比較で「誤差」はでないから、一度セルの表示形式変えて確認してみたら
0154デフォルトの名無しさん
2015/06/21(日) 17:17:11.91ID:KB1pzFAk新規ブックで、どっちのシートもセルの書式もデフォルト(@標準)のまま手作業で打ち込んだのに、
比較すると異なるとか罠以外の何者でもないと思う
自動判断と隣のセルの書式に影響される機能のせいだと思うんだけど
0155デフォルトの名無しさん
2015/06/21(日) 18:21:49.45ID:nnV9xOPw同じものを打ちこめば、表示形式が違っても同じと判断されるはずだがなぁ...
どんな入力でどんな表示になってるんだ?
0156◇◇
2015/06/21(日) 18:27:30.32ID:RGV/Ctvq◇◆◇◆◇◆◇◆◇◆
0157◇◇◇◇◇◇◇◇◇◇◇◇
2015/06/21(日) 18:28:21.43ID:RGV/Ctvq0158デフォルトの名無しさん
2015/06/21(日) 19:53:56.30ID:2F73xJXZマクロを書く場合、最初にyをリセットしてループしますが
y=y+1を先に書きますか?
それとも処理のあとに書きますか?
どちらが一般的なんでしょうか?
0159デフォルトの名無しさん
2015/06/21(日) 22:17:42.92ID:ApDmoctC処理に整合が取れていれば見やすい、あるいは扱い易い方で良い。
ケースバイケースになるので、どちらが一般的ということはない。
0160デフォルトの名無しさん
2015/06/22(月) 00:49:07.54ID:oXOTOpou0161デフォルトの名無しさん
2015/06/22(月) 06:14:25.06ID:0q8cyi70気持ちはわかる
今は素直に(r, c)にしてるけど
0162デフォルトの名無しさん
2015/06/22(月) 11:05:48.79ID:8PARE+E6その安い値段のが売り切れてまた数万円の価格に戻ってるじゃないか。
誰だ買ったのは?
0163デフォルトの名無しさん
2015/06/22(月) 19:22:55.46ID:r2iC/9tSコラって怒る前に数万円で買ってくれ
読み終わったら売ってね❤️
0164デフォルトの名無しさん
2015/06/22(月) 20:34:37.81ID:8PARE+E60165デフォルトの名無しさん
2015/06/22(月) 22:00:35.23ID:gH+fd3zN0166デフォルトの名無しさん
2015/06/22(月) 23:49:49.64ID:QLWOuCWb変数1文字命名派?
0167デフォルトの名無しさん
2015/06/23(火) 15:25:42.35ID:kPbxmHHZの形式で入ってるセルはFindで検索しても該当なしになっちゃう
検索できないものなのかな(´・ω・`)
エクセル2013を使用しています
0168デフォルトの名無しさん
2015/06/23(火) 16:47:54.31ID:vVXy/YjIとりあえずこの辺の内容を理解して
http://officetanaka.net/excel/vba/tips/tips131.htm
0169デフォルトの名無しさん
2015/06/23(火) 17:51:09.10ID:kPbxmHHZやっぱりシリアル値取らないとダメですか
ありがとうございます やってみます
0170デフォルトの名無しさん
2015/06/23(火) 18:14:50.22ID:WNvMOvejRange("A:A").Find(#6/23/2015#)
「日付」として値が入力されているなら、
Range("A:A").Find(DateValue("2015/6/23"))
文字列なら、
Range("A:A").Find("2015/06/23")
0171デフォルトの名無しさん
2015/06/23(火) 19:08:58.22ID:vVXy/YjIExcel側とVBAでシリアル値の内部フォーマットに違いあるのかもしれん
0172デフォルトの名無しさん
2015/06/23(火) 19:25:51.74ID:vVXy/YjIhttps://support.microsoft.com/ja-jp/kb/416317/ja
>この現象は Excel の仕様による動作になります。
仕様だったら2003以降もそのままのはずだが
原因はっきり示さないのに仕様で押しとおされてもなぁ
時刻 0:00:00ですら合わないんだから、それ以外でも合わない事はありそうだし
0173デフォルトの名無しさん
2015/06/23(火) 20:03:13.96ID:Yra6/pdrって思う俺がおかしいのか...
0174デフォルトの名無しさん
2015/06/23(火) 23:20:34.97ID:vVXy/YjI同じ型での(代入と)比較だけなら問題ないはずだろ
演算すると誤差が問題になるだけで
0175デフォルトの名無しさん
2015/06/24(水) 06:05:16.06ID:Dt+PoWxm浮動小数点数を浮動小数って思うお前がおかしい
0176デフォルトの名無しさん
2015/06/24(水) 07:43:50.26ID:mSDBMbUW何をもって問題ないって言ってるのかよくわからんが、入力時点から既に種々の演算がされてるんだけどな
>>175
なにか突っ込みたかったことはわかった
次はもう少し内容に突っ込めるようになろうな w
0177デフォルトの名無しさん
2015/06/24(水) 08:02:11.33ID:Dt+PoWxmなにか反論したいのかな?
それじゃ誰にも何も伝わらんよ意識高い系君
0178デフォルトの名無しさん
2015/06/24(水) 08:26:33.72ID:mSDBMbUWやはり内容には突っ込めませんでしたね w
0179デフォルトの名無しさん
2015/06/24(水) 08:41:15.29ID:BjoO3mYW20年前からの常識ですよ。
lookup系の関数じゃないんだから。
0180デフォルトの名無しさん
2015/06/24(水) 09:08:06.38ID:4zqa0pLfシリアル値の内部形式は同じだよ
問題があるのはワークシート側の書式の自動解釈(自動変換)のアルゴリズムで、これは簡単に検証できる
シリアル値で誤差が出る例
同じデータを入力したつもりなのに、比較すると違っている
http://www.42ch.net/UploaderAnime/source/1435071846.png
これの理由がわかってれば、どこで誤差が出たかもわかるはず
0181デフォルトの名無しさん
2015/06/24(水) 09:12:46.00ID:4zqa0pLf>>180の検証に使ったブック
http://www.42ch.net/UploaderSmall/source/1435072251.xlsx
0182デフォルトの名無しさん
2015/06/24(水) 16:33:23.38ID:RGIhvJySはいざんねーん
http://peace.2ch.net/test/read.cgi/tech/1433920729/l50
0183デフォルトの名無しさん
2015/06/24(水) 19:47:23.16ID:JvkNGhgS長らく使ってないからちょっと自信ないけど。
0184デフォルトの名無しさん
2015/06/24(水) 20:47:09.13ID:THF2Ta19これどうやって「入力」したのか教えて欲しいんだが
どうも連続データで作ったんじゃないかと思うが、それだったら
連続データを計算するときの計算誤差だと思うが
すくなくとも表示形式を変えて確認する限り
FALSE判定のところは別のシリアル値になってるが
これのどこが書式の自動解釈アルゴリズムの問題なのか教えてくれ
0185デフォルトの名無しさん
2015/06/25(木) 01:07:53.01ID:xC+7jf1Vどなたかキッチンタイマー作ってくれませんか?
0186デフォルトの名無しさん
2015/06/25(木) 03:59:08.65ID:xvRMitSK高いよ!
百均で買った方が1/100以下で済むんだが
0187デフォルトの名無しさん
2015/06/25(木) 06:38:29.82ID:vom2QN3tそんなもん何に使うんだ?
エクセルやりながら料理するのか??
0188デフォルトの名無しさん
2015/06/25(木) 06:45:51.00ID:O+p39R1b0189デフォルトの名無しさん
2015/06/25(木) 07:20:44.32ID:jos0XzUPこれは丸投げする前に自分でちょっと調べるなり考えるなりしてからやって欲しいところだな
0190デフォルトの名無しさん
2015/06/25(木) 12:01:24.84ID:eg4063Fkスマホアプリで作れば?
と思う。
0191デフォルトの名無しさん
2015/06/25(木) 12:24:55.04ID:/nf6gI0Iどういう開発環境が必要ですか?
ExcelVBAならExcel立ち上げてALT+F11押すだけでいいけど。
0192デフォルトの名無しさん
2015/06/25(木) 12:25:48.10ID:Aa2Tx6yB0193デフォルトの名無しさん
2015/06/25(木) 13:04:29.02ID:eg4063Fkiosは知らん。
最初は自分の端末にハローワールドするのでもけっこう大変かな。
まあ、興味あれば別スレみてくれ。
0194デフォルトの名無しさん
2015/06/25(木) 13:08:20.51ID:/nf6gI0I大変なのですねあきらめます
0195デフォルトの名無しさん
2015/06/25(木) 13:13:25.19ID:/nf6gI0IWordの文書にいっぱい写真が貼り付けてあります。
各写真について
(1)何ページに貼りついているか
(2)どの段落にくっついているか(Word用語でAnchorしてあるか)
(3)その写真の幅と高さ
(4)そのページ内での位置情報(写真の左上の場所が左上余白から数えてどのくらい右/下にあるか
の情報を取ってきたいのですが、どういうコードを書けばいいですか?
ExcelでいえばFor Eachで全シートや全ブックを取得する方法で
Wordの写真を取得する方法もありそうですが。
そしてもし取得できればExcelと同様、各オブジェクトの情報もそのプロパティをみれば簡単にできそうですが。
0196デフォルトの名無しさん
2015/06/25(木) 13:46:08.46ID:/IyRWZfA> スマホでアプリ作るには
> どういう開発環境が必要ですか?
Visual Studio 2015があれば、iOSアプリもAndroidアプリも作れるよ。
http://blogs.msdn.com/b/visualstudio_jpn/archive/2015/06/23/visual-studio-2015-and-windows-10-countdown-03.aspx
やったことないけど、多分ひな形のプロジェクトビルドしたら、Hello, World!的なアプリができるんじゃないかな。
0197デフォルトの名無しさん
2015/06/25(木) 17:23:14.85ID:It1tnYUrhttp://ateitexe.com/count-down-timer/
0198デフォルトの名無しさん
2015/06/25(木) 20:03:34.57ID:D6HVq1fHshapeをFor Eachで回す
0199デフォルトの名無しさん
2015/06/25(木) 21:29:48.64ID:/nf6gI0Iそんなことができるようになってましたか。
すごいですね。
いつかためしてみます。
>>198
そんなことは知ってて聞いたのですが。
特にshapeの具体的にどのプロパティを見て
(1)ページ数
(2)所属段落
(3)大きさ
(4)位置
を知ることができるのですか?
0200デフォルトの名無しさん
2015/06/25(木) 21:46:32.28ID:3cfr+YD90201デフォルトの名無しさん
2015/06/25(木) 21:53:11.56ID:/nf6gI0Iじゃページ数は?
0202デフォルトの名無しさん
2015/06/25(木) 22:03:42.70ID:It1tnYUr0203デフォルトの名無しさん
2015/06/25(木) 22:08:34.62ID:3cfr+YD9オブジェクトブラウザ使えよ猿
0204デフォルトの名無しさん
2015/06/25(木) 22:15:11.11ID:/nf6gI0Iうるさいハゲ
0205デフォルトの名無しさん
2015/06/25(木) 22:58:36.14ID:4a2fuGbQ0206デフォルトの名無しさん
2015/06/26(金) 02:03:05.40ID:rHu+vvV1これは興味深いな。
今までJavaが嫌いでiOSはMAC買わないとiiPhoneの開発厳しいから手が出せなかった俺にはぴったりだ。
やっぱりこれから勉強するならC#だな。WindowsPhoneはC#の後、VB.Netにも対応されたけど、
どうせ文法以外大して変わらないし、良いとこ取りと言われているC#で間違いないだろう。
C++?元々VBやVBAやってた俺の肌には合わないな。あれはあれで良いところあるんだろうが
以前入門書ちょっとだけ読んで肌に合わなくてそっ閉じだった。
0207デフォルトの名無しさん
2015/06/26(金) 03:20:29.75ID:EJ0mDEW7C#でやる場合、別途mac上でobj-cなりswiftなり使ってUI作ら無いといけないんじゃないの
0208デフォルトの名無しさん
2015/06/26(金) 07:15:07.75ID:4k0f5kGN本当だ。これは後のざまりんフォームとやらに期待するしかないな。
0209デフォルトの名無しさん
2015/06/26(金) 07:58:14.16ID:YNfE8rZU0210デフォルトの名無しさん
2015/06/26(金) 08:10:34.10ID:6WgjR2Fvえー何で。
ちゃんとどう言うものか知って使いどころを分けるもんじゃないの?
0211デフォルトの名無しさん
2015/06/26(金) 08:24:22.85ID:YNfE8rZUあらゆる型どうしの間で使いどころを分けるべきっていうのはその通りだけど、参照型と値型なんて一線を引いて区別することに意味はないですよね?
0212デフォルトの名無しさん
2015/06/26(金) 11:05:38.76ID:vRL8h3oNそれらのファイルを両方開いてからキーを押すとmacro1 と macro2が両方実行されてしまいます。
これを回避する方法はありますか?
作業性の面から、ファイルは同時に起動しておきたく、
またショートカットキーも割り当ての種類をこれ以上増やしたくないと思っています
(上記の例では2つですが、実際にはファイルが数個あり、マクロも複数あるためです)
0213デフォルトの名無しさん
2015/06/26(金) 11:21:37.03ID:cSb2GBc3マクロの最初にActiveWindowで自分がアクティブかどうか調べる
0214デフォルトの名無しさん
2015/06/26(金) 11:22:44.69ID:t/kzaQZMそんな仕様だったかなぁ。
0215デフォルトの名無しさん
2015/06/26(金) 11:35:28.88ID:cSb2GBc3ウィンドウがアクティブかどうか関係なく先に開いた方が実行される
0216デフォルトの名無しさん
2015/06/26(金) 13:29:25.44ID:vRL8h3oNなるほど!
それなら上手く捌けそうですね、ありがとうございました!
0217デフォルトの名無しさん
2015/06/26(金) 18:30:00.40ID:6WgjR2Fv何でそう思うの?
0218デフォルトの名無しさん
2015/06/26(金) 18:49:28.66ID:o/Regl21引数にしてそれを変更したときに差がでるから、その時は意識しないとダメ
0219デフォルトの名無しさん
2015/06/26(金) 19:24:10.62ID:YNfE8rZU参照と値の区別じゃなくて、参照になれる型とそうでない型を区別することを言ってるんです。
クラス型と基本型を峻別するみたいな。
0220デフォルトの名無しさん
2015/06/26(金) 19:28:17.43ID:6WgjR2Fvだからなんでそう思うの?
0221デフォルトの名無しさん
2015/06/26(金) 19:31:54.25ID:YNfE8rZU分けることで対称性というか統一性ががなくなるでしょ。
Integer とMyClass型に何か本質的な違いがあるかっていうと無いですよね?
0222デフォルトの名無しさん
2015/06/26(金) 20:02:48.85ID:6WgjR2Fv本質的に違うよ。
なんか根本的なところの理解が抜けてるような気がするな。
0223デフォルトの名無しさん
2015/06/26(金) 20:10:16.64ID:o/Regl21いやだから、参照型か値型の話で、参照渡し/値渡しの話じゃないよ
0224デフォルトの名無しさん
2015/06/26(金) 20:22:29.70ID:3miAOepOType MyRecord
[...]
End Type
みたいな形で宣言したヤツを引数として渡せなかったり関数の戻り値として戻せなかったりしてイラついた事あるけどそういう事?
0225デフォルトの名無しさん
2015/06/26(金) 20:36:56.53ID:YNfE8rZUVBAでは違うとかJavaでは違うとかいうのは理解できる。
でもそれは「根本的なところの理解」とは違うでしょ?
0226デフォルトの名無しさん
2015/06/26(金) 20:43:49.33ID:6WgjR2Fv「根本的なところの理解が抜けてる」で合ってると思うよ。
0227デフォルトの名無しさん
2015/06/26(金) 20:52:09.52ID:YNfE8rZUふむ、そこまで言うなら基本型とクラス型とを峻別する本質的な違いというものを教えてよ。
0228デフォルトの名無しさん
2015/06/26(金) 20:56:41.52ID:YNfE8rZUIntegerとBooleanを区別する、
MyClassAとMyClassBを区別する、
というものを超えてIntegerとMyClassAを峻別すべきだ、というあたなたの主張の根拠をね。
0229デフォルトの名無しさん
2015/06/26(金) 21:02:35.80ID:6WgjR2Fv自信満々だね。当然、そこまで言うからには何故参照型と値型に分かれているのか、それぞれどう言った用途で使うのか知ってるって認識でいいんだよね?
0230デフォルトの名無しさん
2015/06/26(金) 21:07:27.12ID:YNfE8rZUいや、そうではない。素直に受け取ってくれ。
そのふたつを峻別する言語に不便を感じているから聞いてるんだ。
0231デフォルトの名無しさん
2015/06/26(金) 21:37:55.47ID:PNhnKrNT0232デフォルトの名無しさん
2015/06/26(金) 21:40:32.73ID:cSb2GBc30233デフォルトの名無しさん
2015/06/26(金) 21:50:53.62ID:6WgjR2Fvメモリ上には3つの領域が存在しているのはご存知だろうか。
変数の値や関数の戻りアドレス、インスタンスの入ったアドレスなどを格納しているスタック領域、
標準モジュールの内容やクラスの型を格納しているスタティック領域、
クラスのインスタンスを格納しているヒープ領域の3つ。
この内、スタック領域は頻繁に値のやり取りが行われる場所であり、大きな容量を扱うものには向いていない。
頻繁にやり取りが行われるその領域にそれだけ負担が掛かるからだ。
属に言う値型のものがここに格納される。
つまり、比較的大きなクラスで扱うようなものはこの領域には向かないということだね。
では参照型はというと、そのインスタンスの参照先のみをスタック領域に保持し、インスタンスそのものはヒープ領域に展開される。
つまり、大きいのはそんなに頻繁にアクセスするようなとこに置いとくなよと言うこと。
だから、構造体を持つような言語ではMSDNでもよく小さいのは構造体で、ある程度大きいのはクラスで作れと書いてある。
どの程度の大きさだったかは忘れたけど。
そもそも論として、参照型と値型の峻別を付ける付けないではなく、そう言った根本的な違いがあるので、
設計するとき対象物をどちらで作るかの
峻別が必要になると言うこと。
多分、C++などはその辺を考慮したかたちになっておらず、作り手の判断に委ねられているんだろうな。
だからより高度な判断が必要で、逆に言えば理解が無ければ処理が無駄に遅くなるコードを組むことになる。
0234デフォルトの名無しさん
2015/06/26(金) 22:19:34.74ID:PNhnKrNT0235デフォルトの名無しさん
2015/06/26(金) 22:27:36.30ID:YNfE8rZU0236デフォルトの名無しさん
2015/06/26(金) 22:51:03.11ID:JS2Oq9WD0237デフォルトの名無しさん
2015/06/26(金) 23:03:05.06ID:6WgjR2Fv「しゅんべつ」で、物事にきっちり区別を付けるような意味だったはず。
0238デフォルトの名無しさん
2015/06/27(土) 08:37:06.18ID:AVtNDrad読み方がわからない?
お前の目の前にある物体は素敵なオブジェですか?検索することも
わからんような奴がなんでここにいるわけ?www
0239デフォルトの名無しさん
2015/06/27(土) 08:40:33.01ID:Q5FOX3Kq0240デフォルトの名無しさん
2015/06/27(土) 12:39:07.92ID:zOIiCC8H0241デフォルトの名無しさん
2015/06/27(土) 12:43:18.23ID:AVtNDradそのうち、息するのも面倒くさいとか言い始めるだろう。
0242デフォルトの名無しさん
2015/06/27(土) 13:33:09.49ID:IT1CkKd8逆に感心するよ
0243デフォルトの名無しさん
2015/06/27(土) 13:47:41.34ID:z31C3xpF0244デフォルトの名無しさん
2015/06/27(土) 14:05:59.98ID:RNAxIVzO冷やかし・噛みつき目的で質問スレに来ている人には
>>236のような軟弱なレスは格好の餌だから仕方ないね
2ちゃんはそういうところだ
0245デフォルトの名無しさん
2015/06/27(土) 14:30:57.67ID:GuUT6nNb0246デフォルトの名無しさん
2015/06/27(土) 20:12:32.32ID:qGo9dR/Bうるさいハゲ
0247デフォルトの名無しさん
2015/06/27(土) 20:16:45.25ID:Q5FOX3Kqあぁああああ…ああ…あっあっー!あぁああああああ!!!ルイズルイズルイズぅううぁわぁああああ!!!
あぁクンカクンカ!クンカクンカ!スーハースーハー!スーハースーハー!いい匂いだなぁ…くんくん
んはぁっ!ルイズ・フランソワーズたんの桃色ブロンドの髪をクンカクンカしたいお!クンカクンカ!あぁあ!!
間違えた!モフモフしたいお!モフモフ!モフモフ!髪髪モフモフ!カリカリモフモフ…きゅんきゅんきゅい!!
小説12巻のルイズたんかわいかったよぅ!!あぁぁああ…あああ…あっあぁああああ!!ふぁぁあああんんっ!!
アニメ2期放送されて良かったねルイズたん!あぁあああああ!かわいい!ルイズたん!かわいい!あっああぁああ!
コミック2巻も発売されて嬉し…いやぁああああああ!!!にゃああああああああん!!ぎゃああああああああ!!
ぐあああああああああああ!!!コミックなんて現実じゃない!!!!あ…小説もアニメもよく考えたら…
ル イ ズ ち ゃ ん は 現実 じ ゃ な い?にゃあああああああああああああん!!うぁああああああああああ!!
そんなぁああああああ!!いやぁぁぁあああああああああ!!はぁああああああん!!ハルケギニアぁああああ!!
この!ちきしょー!やめてやる!!現実なんかやめ…て…え!?見…てる?表紙絵のルイズちゃんが僕を見てる?
表紙絵のルイズちゃんが僕を見てるぞ!ルイズちゃんが僕を見てるぞ!挿絵のルイズちゃんが僕を見てるぞ!!
アニメのルイズちゃんが僕に話しかけてるぞ!!!よかった…世の中まだまだ捨てたモンじゃないんだねっ!
いやっほぉおおおおおおお!!!僕にはルイズちゃんがいる!!やったよケティ!!ひとりでできるもん!!!
あ、コミックのルイズちゃああああああああああああああん!!いやぁあああああああああああああああ!!!!
あっあんああっああんあアン様ぁあ!!シ、シエスター!!アンリエッタぁああああああ!!!タバサァぁあああ!!
ううっうぅうう!!俺の想いよルイズへ届け!!ハルゲニアのルイズへ届け!
0248デフォルトの名無しさん
2015/06/27(土) 21:53:55.80ID:wYPgFXnxどうかなぁ。10を聞いて1を知る人には全く理解出来ないだろうし、
1を聞いて1を知る人なら言ってることくらいは理解するだろうし、
1を聞いて10を知る人なら、同じような理由で標準モジュールのモジュールレベルで
変数の定義を多用してはいけないくらいまで理解するだろうけど、
聞いてきた本人がその後分かったとも何とも言ってこないし、
ハゲに夢中になってるからなぁ。
ま、質問の内容からして、前戻り値に参照型が返せない言語は糞だと言ってたC++使いだと俺は思ってるけど、
今回はいつも一緒に登場するコード厨キャラが出て来てないからそこは何とも言えないかな。
0249デフォルトの名無しさん
2015/06/27(土) 22:11:34.57ID:GuUT6nNb0250デフォルトの名無しさん
2015/06/27(土) 22:19:16.76ID:wYPgFXnxいや、むしろ俺みたいなじじいの方が頭が堅くて呑み込み悪いし応用も効かない。
基本若い奴の方が多少先走る感はあるものの、理解も早いし応用力もあるよ。
0251デフォルトの名無しさん
2015/06/27(土) 22:37:46.20ID:GuUT6nNb1を聞いて10を知るなんて、単に潜在的にわかっていたことを初めて意識しましたって現象か、もしくは分かってないのに分かったと思い込むジジイ。
それはともかく、能いは値、参照は参照なんで、型とは直交する概念。
0252デフォルトの名無しさん
2015/06/27(土) 22:39:12.44ID:GuUT6nNb× 能いは値
○ 値は値
0253デフォルトの名無しさん
2015/06/27(土) 22:42:40.13ID:pIBbDm3i0254デフォルトの名無しさん
2015/06/27(土) 22:44:12.46ID:WGuYPvoXちょっと何言ってるか分かりませんね
0255デフォルトの名無しさん
2015/06/27(土) 22:54:13.85ID:GuUT6nNb直交もわからないの?
0256デフォルトの名無しさん
2015/06/27(土) 22:56:12.48ID:pIBbDm3i0257デフォルトの名無しさん
2015/06/27(土) 22:56:24.38ID:WGuYPvoX0258デフォルトの名無しさん
2015/06/27(土) 23:06:36.52ID:GuUT6nNb?
型Aに対してAの値の型とAへの参照の型両方がある。Aが何であっても同じ
と言ってる。
それに対して、AがIntegerのような基本型の場合とクラス型との場合では本質的に違うんだ、
と主張してる人たちがいる。しかも言語によらずそうだと思っている模様。
0259デフォルトの名無しさん
2015/06/27(土) 23:09:00.59ID:wYPgFXnxで、どっちだと思う?
0260デフォルトの名無しさん
2015/06/27(土) 23:14:56.51ID:WGuYPvoX>それはともかく、値は値、参照は参照なんで、型とは直交する概念。
なんかそれと>>258で言ってる今まで色々言われて来たことって、
関係あるように見えてリンクしてないんで何が言いたいかよく分からないんですケド?
結局何が言いたかったの?
0261デフォルトの名無しさん
2015/06/27(土) 23:15:44.99ID:GuUT6nNb任意の型に値と参照の両方があるというのは単に事実だから何も「思う」ことはない。
問題は後者の主張に根拠が出てこないこと。>>233は悪いけどトンチンカン過ぎ。
0262デフォルトの名無しさん
2015/06/27(土) 23:35:18.81ID:pIBbDm3i0263デフォルトの名無しさん
2015/06/27(土) 23:39:55.57ID:wYPgFXnxごめん、俺もあなたが何を言いたいのか、何をどこまで理解してるのか分からなくなった。
任意の型に値と参照の両方があるってどういうこと?
例えばインスタンスの生成を行わないString型やInteger型は値型、インスタンスは参照型って
どちらかになるんであって、任意の型一つで両方の特性をもつ型は少なくとも俺は知らない。どの型?
あと>>233の領域の話に関してトンチンカンだと言うのであれば、
もう少しコンピューター自体の本を読むなりネットで調べるなりしてパソコンの基礎知識自体を身につけた方がいいと思うよ。
特にスタック領域なんてハード、ソフトどちらで制御してるにしても概念的には同じだし、
遠い昔のパソコンどころか、ファミコンにすらある概念だからね。ていうか載ってないの見たこと無いし。
0264デフォルトの名無しさん
2015/06/27(土) 23:57:22.19ID:Q5FOX3KqDim B as MyClass
Aを読み出す時はimmをEAXに格納して返し、
Bを読み出す時はフェッチして実行した結果をEAXに格納して返すから即値と関数じゃ扱いが違って当然なんだけど、
そういう認識がすっぽ抜けてるって事でいいの?
0265デフォルトの名無しさん
2015/06/27(土) 23:57:39.37ID:PyizvsFG「値は値、参照は参照なんで、型と直交する概念」なのに、
「任意の型に値と参照の両方があるのは単に事実」って、
言ってることが支離滅裂じゃない?
1を聞いて10を分かったと思いこんじゃった?
0266デフォルトの名無しさん
2015/06/28(日) 00:03:41.06ID:wBeyl/iuもともとは参照に「なれる」型とそうでない型との区別の話だったんだよ。
ひとつの型で値と参照の両方の特性を持つわけじゃない。
>>233はこの話に無関係だがらトンチンカンと言ってるんで、スタックだのヒープだの先刻承知だよ。
>>233はまずクラス型がスタックに置くのが憚られるほど「大きい」なんて前提を置いてるみたいだけど、データインスタンスかなんかとごっちゃになってるんじゃない?
普通クラスのインスタンスなんてせいぜい数十バイトのものだろ。
0267デフォルトの名無しさん
2015/06/28(日) 00:05:26.80ID:ljCE11NJフェッチと言うと意味が広域になるから判断付け難いけど、
アセンブラやCで言う間接参照だと言うならほぼそれで合ってる。
0268デフォルトの名無しさん
2015/06/28(日) 00:07:38.82ID:wBeyl/iuそれは特定の言語固有の仕様でしょ。
そういうのは初めから認めている。
>>225-226 を読んでくれ。>>226氏は言語に関係なく基本型とクラス型とで「本質的な違いがある」と主張しているのでは?
0269デフォルトの名無しさん
2015/06/28(日) 00:12:01.68ID:wBeyl/iu任意の型Aに対して、Aそのものの型とAへの参照型があると言っているだけ。
intに対してintそのものとint&がある、
それを「両方ある」と表現した。
0270デフォルトの名無しさん
2015/06/28(日) 00:18:49.92ID:F7aWi8CNVBAにintなんて型は存在しないんですが、それは・・・
0271デフォルトの名無しさん
2015/06/28(日) 00:45:52.22ID:ljCE11NJ>もともとは参照に「なれる」型とそうでない型との区別の話だったんだよ。
だから参照に「なれる」型って何?
型はその時の気分で参照型になれたり値型になれたりするものだと思ってるの?
何の言語?ひょっとしてまたC++か!
後、容量の話は前後逆になっている。
例えばクラスと構造体の場合、他にも制約は色々あるが、容量は16バイト未満のクラスは、構造体にすることを検討しろとMicrosoftも言っている。
つまり、用途で使い道を分けろと言ってる訳だ。
https://msdn.microsoft.com/ja-jp/library/ms229017(v=vs.100).aspx
別にそれを無視して小さなクラス作ろうが、大きな配列や構造体作ろうが、
それで処理が重くなろうがどうなろうが、そんなのはそっちの勝手だ。
こっちは峻別する必要があるか聞かれたから答えただけだ。後は勝手にしろ。
ヒープエリアとか知っているとか言ってたくせに、根拠が無いとか、いちゃもん付けてるようにしか見えない。
これだからC++やっててここに来てる奴って嫌なんだ。
聞いてきた癖に教えると、絶対「分かった」とは言わない。無視するか否定するかのどちらか。人としてちょっとどうなんだろうと思うよ。
0272デフォルトの名無しさん
2015/06/28(日) 00:46:00.61ID:IJkReOHBVBA(やVBやC#)での参照型とを同じに語るとか議論にならん
元の質問者はまだいるのか?
論議したかったのはVBAの言語仕様の思想なのか?
0273デフォルトの名無しさん
2015/06/28(日) 01:01:18.14ID:Lt0oVZOg別にお前さんが議論のその部分に参加する必要はない。
〜のようなことなんじゃないの?という例えにたまたま俺の方に知識があったから
それに答えただけだ。
VBAではそもそも参照型と値型できっちり別れているんだから議論の余地などない。
0274デフォルトの名無しさん
2015/06/28(日) 01:10:50.67ID:wBeyl/iu俺が何を聞いたというのだ?
俺が元々言ったのは>>209と>>211と>>225だ。初めからVBAのことは理解した上で、でも「変だよね」「意味ないよね」と文句を言っている。それ自体はいいだろ?
それを>>222とか>>226が「理解」の話にすりかえた。
0275デフォルトの名無しさん
2015/06/28(日) 01:16:05.76ID:F7aWi8CNとりあえず値型と参照型っていうのが何なのかがネックになってるんで、
その辺りの宣言なり実装なりをVBAのコードで見せてくれませんかね。
0276デフォルトの名無しさん
2015/06/28(日) 01:23:19.92ID:ljCE11NJだから変だし意味があるって言ってる。
根本的な理解がすっぽ抜けてたのも確かだし、
それについての説明を求めて来たのもそっちだ。
説明受けた後で知ってるのどうのと後出ししてきて、結局のところ
どう言う仕組みになっててどう言う用途の場合、どう使うものなのか、
全て説明して、だから使い方を峻別するべきだと結論まで出しても
現時点で理解出来ない上に話をそらしているとか訳の分からないことを言い出す。
一体何がしたいんだ?
0277デフォルトの名無しさん
2015/06/28(日) 01:31:10.42ID:IJkReOHB>初めからVBAのことは理解した上で
もしお前がちゃんとVBAでの違いと使い分けをちゃんと理解した上で、なぜその二つがあるのか聞きたかったのなら
ちゃんとそう書くべきだった(このスレが適切だったかどうかも疑問ではあるが)
すくなくともお前の書き方では、違いや使い分けが理解できてるとは思えないから「理解」の話になったわけで
議論をすり替えたわけではないと思うぞ
0278デフォルトの名無しさん
2015/06/28(日) 01:36:07.87ID:wBeyl/iuどこの理解がすっぽ抜けているんだ?ぜんぜん的はずれだよ。
実際出てきた説明も「峻別すべき」理由付けには全然なっていない。
現時点で峻別されていることを知った上で文句を言っている。単純に不便だからだ。
0279デフォルトの名無しさん
2015/06/28(日) 01:43:23.20ID:wBeyl/iuそれなのに「根本的なところの理解ができていない」と貶されたら、言語や環境を越えた原則があってそれを破っている、と言われたようにしか思えなかった。
0280デフォルトの名無しさん
2015/06/28(日) 01:48:52.32ID:F7aWi8CN0281デフォルトの名無しさん
2015/06/28(日) 02:02:11.55ID:wBeyl/iu無いから不便だ、って不平だ。
参照を返せないんだよ。
0282デフォルトの名無しさん
2015/06/28(日) 02:06:09.90ID:F7aWi8CN参照を返せないってどういう事?
ByRefで参照渡しすれば中身を変更した変数やクラスが呼び出し元で手に入るよね?
0283デフォルトの名無しさん
2015/06/28(日) 02:11:12.93ID:IJkReOHB>なによりも俺は>>225で「VBAとかJavaでは違うというのは理解できる。」と断っている。
あの流れで、もとになってる>>221が Integer とMyClass型に ってのがなぁ
値型と参照型の区別がついてないと思われても仕方ないと思うぞ
せめてそこで値型と参照型にって言っとくべきだったな
で、なんで違うかは言語の設計思想と実装の都合上の問題だと思うが
大きくは
パフォーマンス
リソース(主にメモリ)の利用効率
互換性
の3点だろ
これ以上はマイクロソフトの中の人でもないと何とも言えんのじゃないかね
そろそろこの話題終わりにしてくれ
0284デフォルトの名無しさん
2015/06/28(日) 02:22:00.77ID:IJkReOHB別スレか前スレだったか?
その流れは飽きたからやめて欲しい
思わせぶりな事言うだけだった奴もいたな
0285デフォルトの名無しさん
2015/06/28(日) 02:25:17.19ID:Lt0oVZOgどこの理解がすっぽ抜けてるか説明するとどうせまた話そらしてるとか的はずれだとか言い出すんだろ?全く意味がないよ。
最初に話した通り、普段頻繁に使われているところにそう言った大きいものをしまわない。これは昔からある概念。
そのため、後々になってヒープエリアという概念が出来てインスタンスをヒープエリアに持っていってる訳で、
インスタンスならクラスからいくらでも生成される可能性がある訳で。
それを役割の違う基本型と同じに考えて扱おうというのは理解出来てないとしか言いようがない。
そうなると、あなたみたいにちゃんと理解出来てない人が適当なところにしまっちゃったりするから
C++からC#に移行したときにも、取り入れられたのかもと俺は思ってる。
ま、もういいや。納得行かないなら峻別しないで使えばいいさ。
0286デフォルトの名無しさん
2015/06/28(日) 05:31:47.55ID:OeLQkQMR0287デフォルトの名無しさん
2015/06/28(日) 07:59:50.07ID:VTU14O1b0288デフォルトの名無しさん
2015/06/28(日) 08:18:07.25ID:Lt0oVZOgこれまでのあらすじ
「C++って値型とか参照型なんて無駄なもん持ってなくて、
変数なら何でも値と参照が取れちゃうスゲー言語なんだぜ、VBAにはそんなのねーだろw」
と、自慢したかったCプラプラーが鼻っ柱へし折られて悔しくて暴れまわってる。
次回予告
「C++って参照先に参照もたせたりできるスゲー言語なんだぜ、VBAにはそんなのねーだろw」と自慢しにやってくる
0289デフォルトの名無しさん
2015/06/28(日) 08:35:55.56ID:VTU14O1b0290デフォルトの名無しさん
2015/06/28(日) 08:37:50.47ID:X2j1Txu9VBA関係無いじゃん
よそでやれ
0291デフォルトの名無しさん
2015/06/28(日) 08:38:39.61ID:Lt0oVZOgいい響きだな。昭和のニオイがプンプンするw
0292デフォルトの名無しさん
2015/06/28(日) 08:45:23.63ID:6HPl6VuL> https://msdn.microsoft.com/ja-jp/library/ms229017(v=vs.100).aspx
それ C# の話
C++ は構造体とクラスはほとんど違いがなくて、クラスのインスタンスをスタック上に作成することもできる
>>233 は標準モジュール云々と書いたり色々突っ込みどころが多すぎなのでスルーでいいと思う
0293デフォルトの名無しさん
2015/06/28(日) 09:05:56.48ID:Lt0oVZOgアホか?
VBAなら静的クラスは標準モジュールが該当するだろ。
ここはVBAのスレなのになんでC++目線で説明しなけりゃならないんだよ。
その時点ではまだ相手がCプラプラーだと確証だって持てないだろ。
つまり、Cプラプラーはアレか、VBAスレでも俺のために最初から全てC++目線で書いとけってことか。
ならそう言うスレ立ててそこでやってくれよ。
0294デフォルトの名無しさん
2015/06/28(日) 09:13:23.18ID:OeLQkQMRC++とVBAを比較して議論して何が得られるんだ?
何を期待しているんだ?
オラにはサッパリ分からん。まあ、好きにしてくれ
0295デフォルトの名無しさん
2015/06/28(日) 09:16:27.24ID:cPvRhGo9だから VBA の話と C# の話混ぜて話すなよってこと
まあ、本人もよく理解できてないんだろうけど
0296デフォルトの名無しさん
2015/06/28(日) 09:21:41.97ID:Lt0oVZOgそりゃそうさ。
前から「VBAに出来ないこんなことが出来るC++SUGEEE」って暗に言いたいのが見え見えなんだもの。
特にそれが分かることが目的じゃないんであればそうなるよ。
0297デフォルトの名無しさん
2015/06/28(日) 09:27:55.17ID:Lt0oVZOgはい?
それを言うなら「VBA」と「C#」じゃなくて
「VBA」と「.Netフレームワーク」だろ?
そこ、なんのページだと思ってるの?
とてもC++の考え方ばかりで語ってる奴の言う事とは思えないなw
0298デフォルトの名無しさん
2015/06/28(日) 09:34:12.52ID:SnEMphd5>そう言った大きいものをしまわない
自分はその容量の話はすこし疑問に感じた。
スタックを逼迫させるような大きなオブジェクトっていう点。せいぜい数十バイトだというのは例の彼が言ってる通りだから。
0299デフォルトの名無しさん
2015/06/28(日) 09:34:20.19ID:Lt0oVZOg前も
645 名前:デフォルトの名無しさん :2015/05/05(火) 08:03:11.47 ID:Gy6WgfTU
それならエクセルが直接コントロールできるC++14でいいじゃないか
とか言ってて、結局COM介在させなかったら出来なかったりするしな。
0300デフォルトの名無しさん
2015/06/28(日) 09:38:31.63ID:VTU14O1bはっきり言おう。お前が頓珍漢なだけだ。
0301デフォルトの名無しさん
2015/06/28(日) 09:40:36.43ID:Lt0oVZOgで、どうしまうの?
その>>285でも書いたけど、インスタンスはクラスがあれば幾らでも生成出来るんだけど。
生成する度にスタックエリアに実体を詰め込むの?
0302デフォルトの名無しさん
2015/06/28(日) 09:46:55.00ID:SnEMphd5たとえばDoubleと同じ8バイトのクラスがあるとして、
Dim a As Double, b As Double, c As Double...と生成していくのと、
クラスのインスタンスを x,y,z,...と生成するのではスタックエリアに対する負荷って違うの?
0303デフォルトの名無しさん
2015/06/28(日) 09:47:09.48ID:cPvRhGo9ああ、.NET Framework だったな
で? それがどうかしたのか?
VBA に関係ないことには変わりないと思うけど?
0304デフォルトの名無しさん
2015/06/28(日) 09:48:23.84ID:Lt0oVZOgなら>>299のどこが頓珍漢なんだか言えるか?
にしても、Cプラプラーって妙に「頓珍漢」って言葉乱発するな。
普段、言われてるんだろな。
0305デフォルトの名無しさん
2015/06/28(日) 10:20:04.92ID:VTU14O1bどこもクソもCプラプラーガーとか今の話題には一切関係ない。
そういうズレたやつの事を頓珍漢て言うんだぜ。
ちなみに、スタックガーとかヒープガーも元の話題とは金輪際関係ない。
0306デフォルトの名無しさん
2015/06/28(日) 10:30:02.01ID:Lt0oVZOg別に末尾に「ガー」なんて付けた覚えはないが、どこかの思想が偏っているスレに常駐でもしてんの?
参照型、値型の話で、格納される場所によって挙動が変わるのに関係ないとか、
本当に頓珍漢が好きなCプラプラーさんは、頓珍漢なこと言うのも大好きなんですね。
0307デフォルトの名無しさん
2015/06/28(日) 10:33:06.96ID:VTU14O1b元々お前の理解の範疇を越えた話なんだから、無理矢理くちばし突っこまなくてもいいんだよ。
0308デフォルトの名無しさん
2015/06/28(日) 10:37:46.18ID:wBeyl/iu>インスタンスはクラスがあれば幾らでも生成出来るんだけど。
基本型だって宣言のたびにスタックかヒープに生成されるんだから、それはおかしな主張だな。
0309デフォルトの名無しさん
2015/06/28(日) 10:41:09.88ID:Lt0oVZOgもう既に論理的な話も出来ないんですね。
頓珍漢のCプラプラーさんw
ほら、早く304にも答えないと、頓珍漢ってただの逃げ口上だってバレちゃいますよw
0310デフォルトの名無しさん
2015/06/28(日) 10:41:20.53ID:wBeyl/iuDim arr() As Integer の中身はヒープに取られるだろう。
0311デフォルトの名無しさん
2015/06/28(日) 10:45:52.60ID:Lt0oVZOgうわ、終いには宣言と生成まで一緒くただよw
流石頓珍漢さん。考えることが違いますね。
0312デフォルトの名無しさん
2015/06/28(日) 10:48:00.27ID:Lt0oVZOg何の言語の話をしてるんです?
またC++か!w
0313デフォルトの名無しさん
2015/06/28(日) 10:49:07.49ID:wBeyl/iu0314デフォルトの名無しさん
2015/06/28(日) 10:55:36.89ID:Lt0oVZOg何でVBAのIntegerの配列がクラスに配置されることもなしにヒープエリアに展開されるのか教えてくれよw
0315デフォルトの名無しさん
2015/06/28(日) 11:17:18.31ID:6HPl6VuL> 参照型、値型の話で、格納される場所によって挙動が変わる
VBA の用語でなにがどう違うのか書いてみてよ
0316デフォルトの名無しさん
2015/06/28(日) 11:29:33.84ID:SnEMphd5Integerの配列の中身はSafeArrayCreate関数で領域確保されるけど、MSDNでは
allocates and initializes the data for the array
と書かれているから、ヒープに取られるんじゃないですかね?
https://msdn.microsoft.com/en-us/library/windows/desktop/ms221234(v=vs.85).aspx
0317デフォルトの名無しさん
2015/06/28(日) 12:20:12.63ID:wBeyl/iu基本型なら宣言すればデフォルト値で生成されるだろ。厳密なタイミングは知らんが。
Dim i As Long
とすれば4バイトスタックにLongのインスタンスが発生する。
それとも使わなきゃ最適化で消えるとかそういう主張か?
0318デフォルトの名無しさん
2015/06/28(日) 12:23:50.22ID:z6q4unEs0319デフォルトの名無しさん
2015/06/28(日) 12:38:55.07ID:VTU14O1bID:Lt0oVZOg のような可哀想なバカが大量生産されてしまった事は確かだろうな
これは、プログラミング界の悲劇と言ってもいいだろう。
0320デフォルトの名無しさん
2015/06/28(日) 13:19:19.11ID:F7aWi8CN0321デフォルトの名無しさん
2015/06/28(日) 13:24:19.89ID:Lt0oVZOgなんか言ってる意味が相変わらず訳分からないんだけど、生成って言葉、なんだか分かって使ってる?大丈夫?
>基本型なら宣言すればデフォルト値で生成されるだろ。
エリアに使う部分の領域が確保されて、そこにデフォルト値が設定されると言うなら分からんでもないけど、
ここで何でいきなり「生成される」の?
は?
0322デフォルトの名無しさん
2015/06/28(日) 13:28:34.05ID:Lt0oVZOgないと思うよ。
というか、インスタンスを生成させる奴が参照型、させないのが値型になると思うけど。
0323デフォルトの名無しさん
2015/06/28(日) 13:31:27.16ID:Lt0oVZOgはいはい、頭のいい頓珍漢Cプラプラーさんは
そんな頭の悪い人達のところに来ないでC++スレに引きこもってて下さいね〜
0324デフォルトの名無しさん
2015/06/28(日) 13:44:30.23ID:6HPl6VuL引数の宣言の ByRef, ByVal の話かと思ったけど違うみたいだし >>315 の質問もスルーしてるし
生半可な知識で語って自爆してるだけにしか見えない
誰とは言わないけど w
0325デフォルトの名無しさん
2015/06/28(日) 13:57:25.82ID:F7aWi8CN機械語レベルでの仕組みの話をしてるのかと思えば「特定の言語の仕様でしょ」とか言われるし、
ヒープだのスタックだのでも話が違うって言われるから、ならVBA上での見え方の問題だと推測できるんだけど、
値渡しでも参照渡しでも無く、ただひたすら「値と参照」なるものが「峻別」されていると主張し続ける。
まず意識合わせしないと話がかみ合わないんだけど、「値と参照」に具体的に突っ込むと無視されるんだよな。
0326デフォルトの名無しさん
2015/06/28(日) 14:10:13.12ID:VTU14O1bまだやってんのかよ。お前には羞恥心という物がないのか?
まずインスタンスの意味調べてこいよw
0327デフォルトの名無しさん
2015/06/28(日) 14:26:23.23ID:Lt0oVZOgVBAでは値渡しや参照渡しとは無関係じゃないけど、他に値型と参照型と言うものが型によって振り分けられ、決められるんだよ。
それを組み合わせて引数では値型の値渡し、値型の参照渡し、参照型の値渡し、参照型の参照渡しとなるんだけど、
戻り値は値渡ししか使えないって、この間Cプラプラーが騒いでたので、
なら、参照型使えばいいんじゃないのと教えてあげたら、
今回「参照型と値型を峻別するのって変だよね」とか言い出してるから、
何で参照型と値型が存在するのか、どう言う用途で使うのか、何で峻別されているのか、
全て答えたら、話をそらしているだの、全くの検討違いだの言い出してるけど、
結局何が検討違いなのかも言わないし、終いにはバカだの罵る始末。
ようは、VBAを卑下したいだけみたいだよ。
コード厨キャラも出したし、>>326みたいな煽りもくれてるし、
まあいつものCプラプラーだから負けず嫌いなのは分かってるけどね。
0328デフォルトの名無しさん
2015/06/28(日) 14:29:16.43ID:T3lgZQh9「だって便利なんだもん」
0329デフォルトの名無しさん
2015/06/28(日) 14:32:50.46ID:ljCE11NJ0330デフォルトの名無しさん
2015/06/28(日) 14:41:47.40ID:OeLQkQMRそいつと好きなだけ議論して来いよ!
0331デフォルトの名無しさん
2015/06/28(日) 14:45:43.46ID:7wl/BqXRうえぇ・・・
こんなのがいっぱいいるのかなぁ
0332デフォルトの名無しさん
2015/06/28(日) 15:01:10.84ID:F7aWi8CN>>327
値型と参照型っていう呼び方は初めて知ったわ。検索しなきゃいけなかったな。
そして一連の話は、あくまで関数の戻り値として使えないって話なのか。確かにC言語ならアドレスを返す事が出来るからなぁ。
でもそれならVBAだと値型を返してるんじゃなくて値型の値を戻り値に代入してるわけだから実装上は参照型と同じ手順を踏んでるよなぁ。
0333デフォルトの名無しさん
2015/06/28(日) 16:04:03.58ID:URqhXen8インスタンスを生成しない型ってなんだよ?お前はそういうところが根本的に理解できてないんだよ。
値型といわれるIntegerだって、変数宣言して値を代入して使えばそこにIntegerのインスタンスが発生しているんだよ。
0334デフォルトの名無しさん
2015/06/28(日) 16:19:31.99ID:3j8PstlSここはお前らウジ虫の議論する場ではないからwww
三流プログラマってギークフリークにこういうくだらない論争するn好きだよねぇwww
それしか誇れるものないのはよくわかったから、秋葉にでm繰り出してこいよクソども
0335デフォルトの名無しさん
2015/06/28(日) 16:29:45.85ID:SnEMphd5それはそうだし、別にヒープ上にnewして作るものだけがオブジェクトと法律で決まってるわけじゃない。
スタック上にクラスインスタンス作ってもいいけど、寿命はそのスコープに限られるよね。
VBAとかはそういうスコープ管理はプログラマの自由に委ねない言語だから。
0336デフォルトの名無しさん
2015/06/28(日) 16:52:07.38ID:7wl/BqXRぼちぼちよそでやった方がいいよ
気持ち悪いし
0337デフォルトの名無しさん
2015/06/28(日) 16:55:35.09ID:SnEMphd50338デフォルトの名無しさん
2015/06/28(日) 17:03:11.81ID:z6q4unEs0339デフォルトの名無しさん
2015/06/28(日) 17:58:10.01ID:6HPl6VuL> 他に値型と参照型と言うものが型によって振り分けられ、決められるんだよ。
VB.NET の話じゃないんだよね?
MSDN のどこかに書いてあるの?
0340デフォルトの名無しさん
2015/06/28(日) 18:06:49.84ID:URqhXen8ずっと昔のことだけど、MATZ氏がスタック上のオブジェクトのことについてコメントしてたのを思い出した。たしか公式サイト上だった。
いま検索しても出てこない。
0341デフォルトの名無しさん
2015/06/28(日) 20:44:03.33ID:hAVUrhR0一番出現頻度が高い文字列を返す関数を作っていただけますか?
引数=Range
返り値=String
処理速度が一番短い人にはなにかプレゼントも考えています。
0342デフォルトの名無しさん
2015/06/28(日) 20:45:27.16ID:hAVUrhR0うんこ しっこ しっこ ちんこ しっこ まんこ しっこ
という7つのセル範囲だと、しっこ、が返るような関数です。
0343デフォルトの名無しさん
2015/06/28(日) 20:54:16.01ID:/nDPxHEXできた 簡単やろ
プレゼントが決まり次第公開するよ
0344デフォルトの名無しさん
2015/06/28(日) 21:03:42.72ID:z6q4unEsプレゼント何
0345デフォルトの名無しさん
2015/06/28(日) 22:01:01.29ID:hAVUrhR0試さないとどれが一番処理速度が速いかわからないので。
0346デフォルトの名無しさん
2015/06/28(日) 22:19:53.72ID:RJYMt8abしっこ = "しっこ"
End Function
これより速くしっこを返す関数を作るのは不可能
0347デフォルトの名無しさん
2015/06/28(日) 22:28:57.66ID:URqhXen8もうちょっと条件を付けてよ。
ループの使用禁止とか、ドSなやつ。
0348デフォルトの名無しさん
2015/06/28(日) 22:52:28.34ID:hAVUrhR0こら0点だ。
0349デフォルトの名無しさん
2015/06/28(日) 22:53:06.94ID:dOcFp/SGhttp://blog-imgs-53.fc2.com/p/a/n/panpilog2/Y2lT23y.gif
0350デフォルトの名無しさん
2015/06/28(日) 22:54:35.18ID:hAVUrhR0お、スキルのあるっぽいかた登場かな
条件はないですよ、どんなことしてもokです。
0351デフォルトの名無しさん
2015/06/28(日) 22:56:41.67ID:hAVUrhR0まんこ だ
0352デフォルトの名無しさん
2015/06/28(日) 23:23:25.78ID:z6q4unEsほらよ
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)
0353デフォルトの名無しさん
2015/06/29(月) 00:17:51.71ID:QSQZKtdkVBAでIntegerにインスタンスが出来るって初めて聞いた
.Netなら全ての型はObject型を継承してるから分かるけど
どこかに載ってる?
0354デフォルトの名無しさん
2015/06/29(月) 01:39:35.86ID:RWXntF+6>>299と同じようにいつものデタラメだと思うよ。悔しまぎれの。
或いはこのプラプラーはVBAのスレだろうがなんだろうがC++の考えで全て押し通せると思ってるアスペか。
逆にちゃんと載ってるところ晒せたら大したもんだと思うわ。
0355デフォルトの名無しさん
2015/06/29(月) 06:37:01.76ID:EM+B505w0356デフォルトの名無しさん
2015/06/29(月) 06:56:22.06ID:QSQZKtdk普通に考えて
0357デフォルトの名無しさん
2015/06/29(月) 07:14:49.86ID:bvi+oDiY0358デフォルトの名無しさん
2015/06/29(月) 07:19:17.63ID:RWXntF+6無駄だよ。結局>>354で言ってた後者に該当して、
一生懸命誤魔化すために定義をすり替えようとしてるの見え見えじゃん。
いつものようになんだかんだ御託を付けて煙に巻こうとする
それがCプラプラークオリティ。
0359デフォルトの名無しさん
2015/06/29(月) 08:01:33.83ID:s7kCM2zI定義あったんか
0360デフォルトの名無しさん
2015/06/29(月) 08:06:21.49ID:2N/zEhbNお前は馬鹿なんだから黙ってろってw
0361デフォルトの名無しさん
2015/06/29(月) 08:28:14.08ID:TRRTpdMkまあ、>>316 みたいな具体的な回答をスルーしてることで実力はお察しレベルなんだろうけど
0362デフォルトの名無しさん
2015/06/29(月) 08:56:57.99ID:s7kCM2zIVBAもしープラプラも全面オブジェクト指向してないから、これの最初の段落のことしか言えなそう。
http://sp.e-words.jp/w/%E3%82%A4%E3%83%B3%E3%82%B9%E3%82%BF%E3%83%B3%E3%82%B9.html
Wikipediaの解説の方は「問題点あり」になってる。
0363デフォルトの名無しさん
2015/06/29(月) 11:50:32.15ID:s7kCM2zIまあSafaArrayCreate 関数が、ってはその通りなんだけど、可変長のものをヒープ以外のところに確保できると思ってたのかねえ>>314は。謎だ。
0364デフォルトの名無しさん
2015/06/29(月) 12:37:41.33ID:TRRTpdMkまあ、ヒープ上に作られた実体をインスタンスって言ってるんだと思うけど...
まあ、オレオレ定義でいいからちゃんと定義晒してもらわないとなんとも言えんわな
>>363
実装方法知ってたらまずそこ思うよね
0365デフォルトの名無しさん
2015/06/29(月) 16:41:03.08ID:s7kCM2zI0366デフォルトの名無しさん
2015/06/29(月) 16:53:34.08ID:ZS1C/3AC師匠って誰だよ?
0367デフォルトの名無しさん
2015/06/29(月) 18:13:06.76ID:n/Ot7XJMVBAの公式の資料で値型/参照型という用語をみたことがないんだが
0368デフォルトの名無しさん
2015/06/29(月) 19:16:29.87ID:s7kCM2zI2.5と^の間にスペースを挟めば大丈夫なんだけど、そうしないと落ちる。
0369デフォルトの名無しさん
2015/06/29(月) 19:53:15.12ID:UcQNe/b5「VBA 値型」で検索したらMSDNで
ttps://msdn.microsoft.com/ja-jp/library/dd314344.aspx
が出てきたけどよく見たら.Netだった紛らわしい。
0370デフォルトの名無しさん
2015/06/29(月) 21:42:09.79ID:/k/OkC/pそれとか、
http://homepage1.nifty.com/rucio/main/dotnet/shokyu/standard34.htm
とか見て早とちりしたんだろうなって思う
このページも VBA 参照型 でヒットするくせに VB6/VB.NET が混在してて分かりにくいし
0371デフォルトの名無しさん
2015/06/29(月) 21:46:02.65ID:2N/zEhbN0372デフォルトの名無しさん
2015/06/29(月) 22:10:14.97ID:s7kCM2zI0373デフォルトの名無しさん
2015/06/29(月) 22:22:02.06ID:rq2QsCgv・日本語で型指定なし変数宣言
・1サブプロシージャ1000行
・ボタンがたくさんあるのにModule1個
痛くはないけど、解析がとにかく辛かった
0374デフォルトの名無しさん
2015/06/29(月) 23:18:19.68ID:s7kCM2zI0375デフォルトの名無しさん
2015/06/29(月) 23:22:41.60ID:3jcGZRUX0376デフォルトの名無しさん
2015/06/30(火) 00:08:24.22ID:oheNslA50377デフォルトの名無しさん
2015/06/30(火) 07:51:30.16ID:ZBtEU6fC0378デフォルトの名無しさん
2015/06/30(火) 07:59:10.10ID:cuvzrYNR0379デフォルトの名無しさん
2015/06/30(火) 08:15:01.29ID:+uB1KRi8Cell とかのアクセスの方が全然遅いし、そもそも Variant で遅いとか言うほどデータ量でかいなら Access とか SQL-Server 使うべきだしね
地味にいまだに 64KB 制限あったりするし w
0380デフォルトの名無しさん
2015/06/30(火) 09:40:46.17ID:GcuTOY9X「VBA 64kb制限」でぐぐってみたら、小学生並みの文章のgoo質問が出てきてすっかり萎えた。
0381デフォルトの名無しさん
2015/06/30(火) 19:46:24.84ID:K4kCbRr+エクセルと同じデータ持たせて何十倍ってデータ量になって実用に耐えないと感じた記憶しかないんだが。
0382デフォルトの名無しさん
2015/06/30(火) 20:22:54.40ID:YayzGG6jExcelだけじゃ集計処理とか大変だし
SQL使えないし、コード突き合わせもクエリで一発
自分だけ使う分ならAccessで十二分
ただし複数人共有で使うのは論外
0383デフォルトの名無しさん
2015/06/30(火) 21:10:44.20ID:I4Ac0QOzExcel と同じデータで mdb が xls の何十倍になってるならなにか間違えてる
0384デフォルトの名無しさん
2015/06/30(火) 21:11:03.98ID:Ws6hqNxp確か1Mくらいまで使えたような
0385デフォルトの名無しさん
2015/06/30(火) 21:26:58.91ID:Ws6hqNxpアクセスと同じようにJet4.0使うならExcel のシートにもSQL投げられるよ。
それどころかフォーマットさえしっかりしていればCSVにだって投げられる。
0386デフォルトの名無しさん
2015/06/30(火) 22:16:11.34ID:BiTNAw1oxmlとかjsonとかが主流になるよ。
SQLは性能劣化とバグの温床だし。
SQLちょいと書き直すと処理能力10倍とかざらだから。
0387デフォルトの名無しさん
2015/06/30(火) 23:01:31.71ID:fROSMXtx連想配列をセルに代入する場合は、どのようにコードを書けばよいのわからず、ハマっています。
手で入力する場合の、Ctrl+Shit+Enterをどうやればいいのか...
VBAで連想配列処理を行うのではなく、連想配列式をVBAでセルに代入したいのですが、やり方がわからない。。
詳しい先輩方、ご指導くださいませ。
0388デフォルトの名無しさん
2015/06/30(火) 23:18:25.32ID:fROSMXtxFormulaArrayプロパティで設定するんですね。
失礼致しました。。
0389デフォルトの名無しさん
2015/06/30(火) 23:31:59.27ID:tOsGp7lHそれ連想配列じゃなくて配列数式だろ?
連想配列ってmapとかのことだぜ。
0390デフォルトの名無しさん
2015/06/30(火) 23:46:00.56ID:fROSMXtxですね。。
なんで検索しても引っかからなくて、質問しちゃったんですね。
"配列数式"って単語がウル覚えで、
検索したら"連想配列"がいっぱいでてくたもんで...
0391デフォルトの名無しさん
2015/06/30(火) 23:56:03.52ID:tOsGp7lH0392デフォルトの名無しさん
2015/07/01(水) 01:10:32.10ID:jqNSI/h3xamlは流行りませんかそうですか
0393デフォルトの名無しさん
2015/07/01(水) 07:04:49.59ID:6h4b9tb70394デフォルトの名無しさん
2015/07/01(水) 07:53:05.06ID:jqNSI/h3データベースとして使うのに耐えうるものなの?
0395デフォルトの名無しさん
2015/07/01(水) 08:53:19.12ID:D21eOTfg0396デフォルトの名無しさん
2015/07/01(水) 11:52:06.80ID:yoCegXat0397デフォルトの名無しさん
2015/07/01(水) 12:03:15.44ID:tJW6CsdE全くと言っていいほど使い物にならないので、廃れましたよ。
完全敗北です。
いまじゃ、MongoDBのようなものも出てきていますしね。XMLDBが復権する
事はもうありませんよ。
0398デフォルトの名無しさん
2015/07/01(水) 12:04:30.63ID:tJW6CsdE第三形態になったフリーザ vs ベジータの戦いみたいなもの。
もちろんベジータがXMLDBだ。
0399デフォルトの名無しさん
2015/07/01(水) 12:17:10.42ID:mPxMjEr/他のプログラムが出力した XML を読み込んで処理するためのものだと思ってたけど...
要するに CSV の代替じゃないのかな?
0400デフォルトの名無しさん
2015/07/01(水) 12:27:12.70ID:iTWnMbVI0401デフォルトの名無しさん
2015/07/01(水) 12:33:07.87ID:D21eOTfgセル範囲に対して
範囲.Value ってやると2次元配列が取得できて便利だね!
だけど 矩形(長方形)じゃない飛び飛びの範囲だと思わぬ結果になって罠だね!
0402デフォルトの名無しさん
2015/07/01(水) 21:49:36.73ID:r6P8NuLo過去の歴史を勉強したまえよww
0403デフォルトの名無しさん
2015/07/01(水) 22:24:17.39ID:huUe7xTBアホ晒して楽しいのか? w
0404デフォルトの名無しさん
2015/07/01(水) 22:25:12.56ID:r6P8NuLo0405デフォルトの名無しさん
2015/07/01(水) 23:43:00.11ID:s4VVys9R2本目はとっておきだ(´・ω・`)b
0406デフォルトの名無しさん
2015/07/02(木) 05:03:52.50ID:D0UhKb7j具体的な内容を書けないなら無理にレスするなよ w
0407デフォルトの名無しさん
2015/07/02(木) 05:22:03.78ID:9qb5cWlQでも意味づけする為に修飾子が大量にくっついてくるわけだから大型のデータベースには向かないのは確かだろうな。
0408デフォルトの名無しさん
2015/07/02(木) 09:37:50.18ID:CcSdJJgrおまえなんか具体的な事書いてんの?
0409デフォルトの名無しさん
2015/07/02(木) 20:19:18.42ID:RENWNoB4という動きをさせたいのですが、以下の式では、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
0410デフォルトの名無しさん
2015/07/02(木) 20:26:36.22ID:cgPWlYAt指定日はDateと比べるんだから、指定日の年はDateの年を設定すればいい
指定日は終了日だけじゃなくて開始日も必要だろう
0411デフォルトの名無しさん
2015/07/02(木) 20:49:29.04ID:RENWNoB45/10から12/10まで MyDate = year(Date)&"月日"
1/10から4/10まで MyDate = year(Date)+1&"月日" とせよ、
という理解であっておりますでしょうか?
その場合、例えば2016/1/10に"12月度"のシートを開いても、
指定日が2016+1 /1/10 となってしまい、処理は実行されないと思うのですが、、、
0412デフォルトの名無しさん
2015/07/02(木) 20:50:31.63ID:9qb5cWlQPrivate 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に貼り付け。
0413デフォルトの名無しさん
2015/07/02(木) 21:01:08.22ID:9qb5cWlQPrivate 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月度が反応しちゃうけど「いつまで反応し続けるか」が条件にないし、年度管理しないとそんなもんかなぁ。
0414デフォルトの名無しさん
2015/07/02(木) 21:04:45.30ID:9qb5cWlQあ、Dayの指定をテスト状態から戻して無かったわ。
下から6行目の所、
If Day(Date) >= 10 then f = True
にしといて。
0415デフォルトの名無しさん
2015/07/02(木) 21:28:54.52ID:cgPWlYAt12月ってのは、当年のなのか?前年または翌年なのか?
当年の12月なら、2016/1/10において12月度(2016/12/11-2017/1/10)はまだ到達してないから
処理が実行されないのは正常だよね
当年度の12月というのであれば、当日が4/1以降かどうかで当年か前年か切り替えないとダメだろう(年度切り替えが4/1だとして)
0416デフォルトの名無しさん
2015/07/02(木) 21:39:28.39ID:R9hbfqH10417デフォルトの名無しさん
2015/07/02(木) 21:59:38.14ID:cgPWlYAt対象の年度が何らかの方法で確定できるなら、ブックに対象年度が無くても理論的には可能です
たとえば
対象の年度は現在の年度とし、現在の年度はPCの操作時の日付より確定できるときとかな
まあ、対象年度の情報はいらないが、年度に関する何らかの情報は必要かもしれんが
年度確定のための情報(年度開始日)とかな
つか俺VBAの話一切してないなw
0418デフォルトの名無しさん
2015/07/02(木) 22:22:25.92ID:R9hbfqH1それはまた随分非論理的な理論ですね。
どこかで発表されているのでしょうか、その理論は?
0419デフォルトの名無しさん
2015/07/02(木) 23:49:36.87ID:PhnYLcQwうん。俺も無理だと思った。
頭が決まってないんだから、何をもって年が始まったばかりなのか、
1周して来たのかを確定出来ないと思う。
0420デフォルトの名無しさん
2015/07/03(金) 00:18:24.08ID:xQFZnjt90421デフォルトの名無しさん
2015/07/03(金) 08:21:48.74ID:zaw8UGxRもうそういう反吐の出るような作り方してる奴は無視でいいよ。
0422デフォルトの名無しさん
2015/07/03(金) 10:14:07.01ID:bMlB0lViそういう解決法はありありだと思うけどなぁ。
シート名に情報入れといて抜き出すとかも。
0423デフォルトの名無しさん
2015/07/03(金) 10:48:31.53ID:tIDo5nwi「2015」とか書いて読み取るとか。
0424デフォルトの名無しさん
2015/07/03(金) 11:10:15.29ID:zaw8UGxRドキュメントプロパティを使えよ・・・ブック名なんていい加減なもの使わないで。
0425デフォルトの名無しさん
2015/07/03(金) 12:22:12.36ID:xJ8vVgP90426デフォルトの名無しさん
2015/07/03(金) 12:26:17.84ID:vPK10GoBその年度の月度毎のテーブル作るようにしといて、
他のページはそこを参照させるとかなら簡単、というかメンテしやすい
まあ、ページ開くとマクロ実行なんてオレは実装しないんで良いけど
0427デフォルトの名無しさん
2015/07/03(金) 13:20:39.05ID:bMlB0lViドキュメントプロパティの読み込みは時間かかるからね。
例えば、1000ファイルの中の処理対象100ファイルを特定するのに、Dir.glob()系の機能で
探した方が高速でしょ。
ドキュメントプロパティにしか情報が無いと、全ファイルをオープンしないと、処理対象が
わからない。
それと、hoge_2015.xlsxというファイルをコピーして2016年用のファイルを作るとき、大抵の
人ならhoge_2016.xlsxというファイル名にするはず。
ドキュメントプロパティに設定しないといけないなんて、思いつく人はほとんどいない。
ただ、ドキュメントファイル内のメタデータを活用できるツールを使ってるなら、ドキュメント
プロパティは積極的に使うのがいいと思う。
0428デフォルトの名無しさん
2015/07/03(金) 14:04:17.97ID:R//i/7GN同意
ただし、速度とかじゃなくて、大抵の利用者にとってその方が簡単で、分かりやすくて、間違いにくいから
データ量が多いなら >>423 とかもあるけど年号程度ならファイル名で充分
ドキュメントプロパティとか言ってる奴は自称℃玄人の臭いがする w
ユーザーに触らせないちょっとした設定とかを置くにはいいんだけどね
0429デフォルトの名無しさん
2015/07/03(金) 14:05:48.12ID:R//i/7GN>>402 に比べれば >>399 の方がより具体的だろ?
0430デフォルトの名無しさん
2015/07/04(土) 13:21:08.55ID:U38uGtdG0431デフォルトの名無しさん
2015/07/04(土) 14:34:10.54ID:WvwJxr10次にお前は「コピペしたままプロパティ修正漏れの犯人誰だ!? コロセ」という
0432デフォルトの名無しさん
2015/07/04(土) 14:47:41.85ID:n+Lf90L5はっ!!
0433デフォルトの名無しさん
2015/07/04(土) 19:49:31.36ID:CDSb/b0p撃てー!!
0434デフォルトの名無しさん
2015/07/05(日) 01:16:07.81ID:YU79Y+KKmyCell = ThisWorkbook.Worksheets("Sheet1").Range("A1")
このような記述の後は、その都度ブック名やワークシート名を明記しなくても、
myCellがThisWorkbookのSheet1のA1セルであることは保証されますか?
つまりブック名やワークシート名を省略しても大丈夫でしょうか?
0435デフォルトの名無しさん
2015/07/05(日) 01:42:12.25ID:SLIL1g2FSet myCell = ThisWorkbook.Worksheets("Sheet1").Range("A1")
これで大丈夫
0436デフォルトの名無しさん
2015/07/05(日) 03:20:04.46ID:YU79Y+KKありがとうございました。
0437デフォルトの名無しさん
2015/07/05(日) 09:04:41.96ID:vbphD8dyデータファイルを与えたらそれを分析して画像ファイルとして出力してくれるものがあるのですが
これらの操作をVBAのコードで書いて自動化することはできますか?
0438デフォルトの名無しさん
2015/07/05(日) 09:08:34.05ID:vbphD8dy本来ならそのアプリケーションを立ち上げた状態で
ファイル(F)→開くで開いて、そのアプリに特有な操作(といってもツール→出力みたいな操作)をしないといけません。
0439デフォルトの名無しさん
2015/07/05(日) 09:09:42.08ID:vbphD8dy・あるアプリを開く
・そのアプリを操作する (メニューバーからの選択だけのわりと単純)
のコードは書けますか?
0440デフォルトの名無しさん
2015/07/05(日) 09:28:22.63ID:ayYTjQLcコマンドラインからの操作ならWScriptを介せば出来る。ただそのソフトからの出力を直接受け付ける事は出来ない。
0441デフォルトの名無しさん
2015/07/05(日) 09:50:10.08ID:vbphD8dyありがとうございます。
ところでWScriptとはなんでしょうか?
出力はそのソフトが勝手にファイルを作ってくれるなら大丈夫でしょうか?
0442デフォルトの名無しさん
2015/07/05(日) 11:30:21.63ID:XIvEwRaJVBScript (VB)か、JScript (JavaScript)で、
プログラミングする
0443デフォルトの名無しさん
2015/07/05(日) 14:55:03.32ID:CZs4iz8t0444444
2015/07/05(日) 14:55:29.29ID:CZs4iz8t0445デフォルトの名無しさん
2015/07/07(火) 06:53:14.99ID:N5IK5nOl今VB6でExcelのシートを追加して一覧を作成する処理を作ってるんですが
BookやSheetを扱うときはBookやSheet用の変数を用意してそれを使って
最後に必ず解放しないとメモリにゴミが残ると聞きました
RangeやCellsもそうしないとだめですか?
0446デフォルトの名無しさん
2015/07/07(火) 08:28:55.91ID:xJTxnmtV0447デフォルトの名無しさん
2015/07/07(火) 12:33:14.63ID:L2fl7GI9Sheet1.Range()ってやればいいのに、なんでworksheets()ってやる馬鹿が多いの?
シート名変えたら動かなくなっちゃうじゃん。
0448デフォルトの名無しさん
2015/07/07(火) 12:34:16.38ID:IXfNO3Pf0449デフォルトの名無しさん
2015/07/07(火) 12:35:47.32ID:4626lywFオブジェクト名変えたら動かなくなっちゃうじゃん
0450デフォルトの名無しさん
2015/07/07(火) 12:38:02.42ID:L2fl7GI9はw?
シート変えるなら
Sheet2って変えればいいだけでしょ、
コレクションで指定だと、存在しないシート指定してたら実行時までエラーがわからんぞ。
コンパイルで弾くようにしろって。
0451デフォルトの名無しさん
2015/07/07(火) 12:40:05.65ID:L2fl7GI9オブジェクト名変えたら動かなくていいんだよw
シート名変えて、コードないの変えるべきとこ変えないで動いてる方が問題だろw
0452デフォルトの名無しさん
2015/07/07(火) 12:41:29.85ID:L2fl7GI9そういう条件があればそれでいいよ
0453デフォルトの名無しさん
2015/07/07(火) 12:42:58.35ID:L2fl7GI90454デフォルトの名無しさん
2015/07/07(火) 12:43:24.00ID:4626lywF落ち着いて自分のレス読み直してみろ
0455デフォルトの名無しさん
2015/07/07(火) 12:46:45.79ID:L2fl7GI9Sheet1って指定しときゃシート名変えても動くのしらなかった?
名前経由じゃなくてオブジェクトを直接参照してるって仕組みわかってる?
0456デフォルトの名無しさん
2015/07/07(火) 12:46:47.13ID:4626lywF本当に問題があるのは、こうでなければいけないっつー凝り固まった頭。
0457デフォルトの名無しさん
2015/07/07(火) 12:48:12.35ID:L2fl7GI9学習能力がないっていうんだよ。そういうの。
プログラムに関心がないならそう言えばいいじゃん。
0458デフォルトの名無しさん
2015/07/07(火) 13:48:16.88ID:xJTxnmtV0459デフォルトの名無しさん
2015/07/07(火) 16:38:29.00ID:qt5SIPyaまあシートのオブジェクト名わざわざ変えるやつはそうそう居ないだろうけど
シートのオブジェクト名変えてもWorksheetsなら動くけど、Sheet1だと動かなくなるぞ
0460デフォルトの名無しさん
2015/07/07(火) 18:55:06.01ID:L2fl7GI9コンパイルエラーと実行時エラーを同じエラーで済ますのならこれ以上話すことはないです。
0461デフォルトの名無しさん
2015/07/07(火) 19:05:50.43ID:PadiFETBWorksheets(Sheet1.Name)って指定してやることで落ち着いた
0462デフォルトの名無しさん
2015/07/07(火) 19:14:05.52ID:C/6MhKU50463デフォルトの名無しさん
2015/07/07(火) 19:22:06.93ID:kLzThONO怖いよねこれ
0464デフォルトの名無しさん
2015/07/07(火) 21:04:00.08ID:ng2chkeIそれ消されたら、プログラム自体動かなくなるんだし
あとworksheets("名前")って自動メンバ表示されないよね
いっぱいworksheets("名前")って書いてあると、間違えたりしないのかなと気になる
書き方って人それぞれなんだとは思うけど
0465デフォルトの名無しさん
2015/07/07(火) 22:17:02.95ID:kLzThONO0466デフォルトの名無しさん
2015/07/07(火) 22:18:48.65ID:RkSJtY+gおれは知ってるけど
sheet1だの2だの連番だと分かりにくいから名前指定する派
オブジェクト名わざわざ変えるのもメンドイし
シート名を変えるとプログラム動かなくなるから
変えないでねって、禁止すればいいだけの話
ユーザーが勝手にシート名変えられると、
統一感無いシート名になるから嫌だ
パートのおばちゃんとか変なシート名つけるんだよ
全角半角混在とか
0467デフォルトの名無しさん
2015/07/07(火) 22:19:51.01ID:XzarvOcjThisWorkbookから別のブックを開いて参照するのなら以下の方法
手操作などで別途開いてあるブックを参照する方法はわからん
Dim bk1 as Workbook
Set bk1 = Workbooks.Open(ブックを開くための各種パラメータ)
これでブックを開く
あとは
bk1.Sheets("sheet1")で参照する
0468デフォルトの名無しさん
2015/07/07(火) 23:01:33.41ID:L2fl7GI9置換しろ。初心者か
0469デフォルトの名無しさん
2015/07/07(火) 23:37:06.41ID:ZBt1Rm7dあなたの主張の本質と関係ないところで悪いけど、データじゃなくて名前だろ?
全角半角混在なんて何も悪いことはないと思うよ。
0470デフォルトの名無しさん
2015/07/08(水) 00:27:04.34ID:MD3q7WpQ0471デフォルトの名無しさん
2015/07/08(水) 01:35:24.93ID:Jtek8cfL0472デフォルトの名無しさん
2015/07/08(水) 05:58:09.06ID:dAdTeSHa普通、VBA使うような職場だったらメッセージ出して素人でも修正可能な状態に出来るWorksheets()を使うだろうなぁ。
0473デフォルトの名無しさん
2015/07/08(水) 06:36:39.00ID:20FcS8ohシート名も本質的にはデータだよ
0474デフォルトの名無しさん
2015/07/08(水) 06:48:28.72ID:6TnygTyiであればデータ型は文字列なんだから文字列として許されるものならなんでもいい
0475デフォルトの名無しさん
2015/07/08(水) 06:57:00.68ID:z3zUBBg1視覚的に認識しやすいから名前は重要だ
Sheet1って書いてあって何を示すのかはわからないだろ?
そりゃ名前つけたくなるだろ
パートのおばちゃんが正しい
Sheetの左隅にでもルール上の連番アンカ文字列つけて
それを見て判定する様な処理を追加すれば解決する
重複は検出してエラーではじく
0476デフォルトの名無しさん
2015/07/08(水) 07:19:46.04ID:Jtek8cfLどんな作りにするかは、個人で組むなら何でもありだろうけど、
仕事なら社内での取り決めありきじゃないの?
シートの横っちょにアンカー文字付けてたって、
何のゴミだこれと思って消しちゃうパートのおばちゃんだっているかもよ。
0477デフォルトの名無しさん
2015/07/08(水) 07:27:05.60ID:b3kmvtlv基本中の基本
個人的には、小規模ならWithでも可としてる
0478デフォルトの名無しさん
2015/07/08(水) 07:55:49.21ID:Jtek8cfLなんで直接弄らないで変数に一度入れないといけないの?
基本中の基本が分からなくてごめん。
でも本当に分からないから教えて下され。
0479デフォルトの名無しさん
2015/07/08(水) 08:02:24.36ID:20FcS8ohそんな面倒なこと考えなくても重要なデータはプロテクトかければいいんだよ。
シート名は重要だからこそ、パートのおばちゃんにへんてこな名前に変えられないように
してあげるのが優しいやり方。
そもそも、基本的にマクロを含むエクセルファイルはプロテクトをかけるべきだね。
0480デフォルトの名無しさん
2015/07/08(水) 10:11:14.20ID:G6HCaUBj0481デフォルトの名無しさん
2015/07/08(水) 11:28:53.11ID:NFLl29uwOfficeアップデートしたら使えなくなったよ。KB2596787かKB2920794だと思うけど。その後すぐにMicrosoft.NET Framework3.5.1の更新もあてて、最新状態だけど動かない。
「'CommandButton1'コントロールは作成されていないため、デザインモードを終了できません。」と出てきてvbaが動かないよ。
助けて
0482デフォルトの名無しさん
2015/07/08(水) 12:13:25.57ID:Fjn1PRGpなぜ、Setするのが基本なの?
set ws = thisworkbook.worksheet(sheet1.name)
は 結局sheet1と等価なものなのに。
0483デフォルトの名無しさん
2015/07/08(水) 12:19:49.04ID:HWq2i8Xl0484デフォルトの名無しさん
2015/07/08(水) 15:53:22.41ID:HMKJDSG5それ、最近まで有名になってた問題じゃんww
とっくに解決策でてるよ
0485デフォルトの名無しさん
2015/07/08(水) 18:53:12.84ID:pxdeghu8VBAでDBに接続して、出力するセルを指定して
既存の帳票にデータを表示するのが面倒臭くなってきたし
何よりweb化できるっていうのが気になる
0486デフォルトの名無しさん
2015/07/08(水) 19:44:47.46ID:dAdTeSHaSet WS = ThisWorkbook.Worksheets("Sheet1")
はSheet1と等価じゃないから。
というかこの話が分からないのはVBA触ったことないヤツだけだろ。
0487デフォルトの名無しさん
2015/07/08(水) 20:42:07.16ID:20FcS8oh0488デフォルトの名無しさん
2015/07/08(水) 20:46:23.12ID:PAkk6Hqa等価でない理由を教えてちょーだぁ〜
0489デフォルトの名無しさん
2015/07/08(水) 22:13:57.79ID:NCKypISk小数点がピリオドじゃない言語圏で、小数を含む文字列を安全に数値に変換するとしたらどんな方法があるでしょうか。
同じソフトを流用したいのだけど、おフランスだと小数点がカンマなんだよね。。。
0490デフォルトの名無しさん
2015/07/08(水) 22:45:14.03ID:85bEY6Fg0491デフォルトの名無しさん
2015/07/08(水) 23:40:21.27ID:FO1XXzvvオプションで小数点記号と桁記号を変更できるから
おフランス式に設定した後に
=value("123.456,789")
でいいんじゃないかい
0492デフォルトの名無しさん
2015/07/08(水) 23:43:19.85ID:Czg0GgmD等価かわからないけど、こう書く派。
後から読んでわかりやすいから。
ま、書きたいようにかけ。
規約があるなら則れ。
0493デフォルトの名無しさん
2015/07/08(水) 23:52:44.95ID:oZ2b660+おれは面倒だから、設定値記入用のワークシート(これだけは名前固定)を用意しているけどな。
0494489
2015/07/09(木) 00:41:06.11ID:AOeRDpks>>490
じつは自分も最初そう思った。w
でももっと安全な方法もないかな〜とここで質問させて貰いました。
ケースが限定されているので、それでもたぶん大丈夫だとは思うんだけど。
>>491
そんな設定があったのですね。
設定を変えてしまうと影響範囲が大きいかも知れないので、まずそっちを確認してみるです。
‥‥逆に、小数点の情報をプロパティから拾えれば、変換前に双方を置換で済ませられるかも。
0495デフォルトの名無しさん
2015/07/09(木) 02:54:43.58ID:Vp2Vvxuo=で比較してみろハゲ
0496デフォルトの名無しさん
2015/07/09(木) 03:35:26.14ID:JlZfMmHC試した事ないからちゃんと動くかどうかは知らんが
CCurとかのCxxx系の変換関数は、国別情報に従って変換するはず
0497デフォルトの名無しさん
2015/07/09(木) 03:43:39.04ID:JlZfMmHC=で何を比べろと?
Sheet1やWorksheetにデフォルトプロパティはなかったはずだけどなぁ
If Sheet1 = ws とかやれって言ってるの?
そもそもSetされてる変数は参照をもってるわけで
参照となにかが等価ってのがどういう状況の事を言ってるのかよくわからんが
ちなみに
Set ws = ThisWorkbook.Worksheets("Sheet1")
MsgBox ws Is Sheet1
だとTrueって表示されるんだが、これについてはどう思ってるの?
0498デフォルトの名無しさん
2015/07/09(木) 04:43:53.99ID:IJ3FUG93Worksheetの名前がSheet1である事と、オブジェクト名がSheet1である事は保証されていないから。
特に複数ファイル読み込んでバッチ処理するような時にオブジェクト名を直に指定とかしてたら、
一つでも該当のオブジェクト名が無かったらその度に止まって使い物にならない。
シート名で指定するなら最初に目的のシート名がブック内にあるかどうか探せばエラーを回避できるんで、普通はWorksheets()を使う。
真面目に解説するのがアホらしくなるくらい基本中の基本。
というか今までの流れ見てるとシートに直接コード書いちゃうヤツが結構いるのか。
ワークシートはセルに情報を書いたり消したりする度に容量が増えるから定期的に新しいシート作ってコード全て移すメンテナンスが必要になるぞ。
0499デフォルトの名無しさん
2015/07/09(木) 06:09:50.02ID:4VH0pnreああ、演算子の等値比較とか等価比較の事だと勘違いしちゃったんだね。
でも、今は言語のシンタックスを論じてる訳ではないからそういう区別はいらないよ。
普通は、等値=等価という意味で使って問題ない。
0500デフォルトの名無しさん
2015/07/09(木) 06:15:21.28ID:0cZHnh39>ブックもシートもSetしてから使うもんだろ
と、
>Worksheetの名前がSheet1である事と、オブジェクト名がSheet1である事は保証されていないから。
は、全然関係無さそうな気がするなぁ。どっちも変えられるのこそ当たり前の話だし。
そもそも直接Objectを設定したり、その名前を使うと言うのなら
Objectが無い時点でコンパイルエラー起こすからその場ですぐ判る訳だし。
そこを踏まえて何で基本中の基本なのかもう一度説明して欲しいなぁ。
0501デフォルトの名無しさん
2015/07/09(木) 06:32:59.88ID:M1CA7AhUシートに直接コードを書くとはどういう意味ですか?
それがよくないのなら、どうすればよいですか?
0502デフォルトの名無しさん
2015/07/09(木) 06:58:14.40ID:0cZHnh390503デフォルトの名無しさん
2015/07/09(木) 07:03:09.36ID:yvZx6GXv確かダメ
0504デフォルトの名無しさん
2015/07/09(木) 07:22:06.12ID:0cZHnh39でもObjectから指定する場合は自ブックひとつで纏まってるもので、
運用的にシートを削除してはいけない取り決めがあるものなら、
運用から「シート名を変えてはいけない」という規制を外すことができる。
だから最初の設計の時点でどっちにするか決めることで
その前に絶対どっちかに決まることじゃないと思うけどな。
もっともそれはSetを使うのが基本中の基本と言うのとは全く別の話。
Set使わなくてもシート名指定でもObject指定でも使えるからね。
0505デフォルトの名無しさん
2015/07/09(木) 08:09:53.67ID:r4sommXw30秒以内にすべてコピーペーストすることって技術的に可能ですか?
1ページずつやってたら、一回のコピーペーストで0.5秒くらいかかっちゃいますが
なので一遍にやる事って可能です?
もしくはコピーペーストじゃなくても、内容を更新の度にそのまま転送できる方法とかってあるんですか?
よくなんかの情報サイトとかで、
一分一秒で一気に更新されてる情報サイトとかありますよね。
ああいうのもプログラムで一遍にやってるわけですよね?
あとIQテストの問題みたいに、あるデータの中にある規則性を発見させる事って技術的に可能ですかね?
プログラムを書く自分が答えをわかってなくても、です。
人工知能の領域に入っちゃいますかね?
例えば
●●●?●●●
この?に入るものは何か(答えは●)
って時に
予めプログラムで●って入力してれば、この問題が出た時に●って入れるんでしょうけど
一切自分答えがわからなくても、コンピュータが自分で計算して●って答えを出してくれるような感じです。
例えば将棋のソフトなんて、作ってる人は将棋の初心者程度の実力しかなかったりっていいますよね。
にも関わらず、人間より強いソフトを作ったりしますよね。
チェスやオセロなんか、人間をはるかに超えてるわけじゃないですか。
0506デフォルトの名無しさん
2015/07/09(木) 08:34:48.47ID:n0IdOdTN0507デフォルトの名無しさん
2015/07/09(木) 08:39:00.10ID:Vp2Vvxuoコンパイルって機能しってますか?
基本中の基本ですよ
0508デフォルトの名無しさん
2015/07/09(木) 08:50:08.88ID:yvZx6GXvwebページをコピペする速さと、更新する速さは別の作業を比較しているようで、意味無いんじゃあないのか?
0509デフォルトの名無しさん
2015/07/09(木) 09:39:12.22ID:0zCUc4Y+機械学習の分野だなぁ
0510デフォルトの名無しさん
2015/07/09(木) 10:05:02.59ID:r4sommXwどういうことでしょうか?
例えば
ttp://www.chikuwachan.com/live/
これなんかはニコニコ生放送の何千とあるほぼすべての放送のコメント数をリアルタイムで表示しています。
こういうのはどうやってるんでしょうか?
一気に数千窓開いてコピーしたりっていう?
まあこんな感じで一気に数千のデータをリアルタイムで集めてエクセルに記録したいのですが。
可能なんですか?
どういう方法をやってるんでしょうか?
>>509
エクセルのVBAでは無理がありますか?
0511デフォルトの名無しさん
2015/07/09(木) 10:08:15.75ID:hn2NpzTq0512デフォルトの名無しさん
2015/07/09(木) 10:23:16.06ID:yvZx6GXvそのサイト開いて見たが、時事刻刻変化しているようには見えないが。
0513デフォルトの名無しさん
2015/07/09(木) 10:35:12.65ID:SLWTmnwe> 約5000ページあるwebページを、
> 30秒以内にすべてコピーペーストすることって技術的に可能ですか?
対象が第三者のサーバなら、技術的に可能か不可能かの前に、それはやってはいけない。
常識的なアクセス頻度は1ページ/1secまで。
それを超えるとアタックと見なされる恐れがある。
0514デフォルトの名無しさん
2015/07/09(木) 12:01:20.85ID:r4sommXw何か方法ありませんか?
>>510のページもダメなことしてるってことなんです?
違うページでもダメなんですか?
0515デフォルトの名無しさん
2015/07/09(木) 12:32:46.98ID:/PjUCdQUどうしてもExcelでやりたい? まずはHTMLでどうしてるか理解できないと移植はむつかしい
0516デフォルトの名無しさん
2015/07/09(木) 12:57:12.58ID:mTsNKsHF0517デフォルトの名無しさん
2015/07/09(木) 16:48:31.07ID:JlZfMmHCお前は>>495なのか?
=で比較しろっていっておいて、シンタックスの問題じゃないってか
等値でも等価でも同一インスタンスでもいいけど、=で比較する方法教えろよ
0518デフォルトの名無しさん
2015/07/09(木) 17:09:41.27ID:I9vTAnY90519デフォルトの名無しさん
2015/07/09(木) 20:02:37.24ID:3YNneEoi例えばニコ生のコメント数なんていちいち生放送のページ開かなくても、
検索結果やランキングを見れば50件ぐらいは一気に確認できる
更に言うと、そういう外部サービス向けに情報を利用しやすいようにAPIというものがある
Excelどうこう以前にお前には根本的に発想や知識が足りない
0520デフォルトの名無しさん
2015/07/09(木) 20:05:37.19ID:rrX8SuEu馬鹿すぎ
0521デフォルトの名無しさん
2015/07/09(木) 20:15:01.97ID:4VH0pnre>>495じゃないしうざい
0523デフォルトの名無しさん
2015/07/10(金) 14:36:27.94ID:X6oggqUXアクティブになっているタブをExcelVBAから取得するにはどうやればいいですか?
0524デフォルトの名無しさん
2015/07/10(金) 19:15:07.74ID:jiYZdnGq0525デフォルトの名無しさん
2015/07/10(金) 19:31:25.87ID:w5pjce7S0526デフォルトの名無しさん
2015/07/10(金) 19:56:00.17ID:E85QWjLbあくまで表計算ソフトですからね?
0527デフォルトの名無しさん
2015/07/10(金) 20:35:34.68ID:X6oggqUXそんなんもわからんのか
たくさんタブ、という意味だ
0528デフォルトの名無しさん
2015/07/10(金) 20:38:09.45ID:I8IKrBJTようけ
ようさん
は同じですか?どう使い分けるんですか?
0529デフォルトの名無しさん
2015/07/10(金) 21:25:28.34ID:jiYZdnGqごめんなさい。
ネットで調べて分かりました。方言なんですね。
茶受けの一種かと思ってしまいました。
0530デフォルトの名無しさん
2015/07/10(金) 23:12:56.17ID:bM2M5Hwn0531デフォルトの名無しさん
2015/07/12(日) 04:10:07.01ID:AZzVj68Fフィルターかけたあと
最終行の1行下に文字を入力したい
例えば
1 あ
2 い
3 う
4 あ
5 え
として 「あ」にフィルターをかけると
1 あ
4 あ
となる
抽出結果が少なければ
offset(1,0)で組めばいいのですが
5 え 以下
大量に情報があればoffset(1,0)でやってしまうと
文字が上書きされてしまい、画面に表示されない場合があります。
フィルター抽出結果の見たままで
下に文字を入れたい場合
どうすればよいですか?
ググっても別シートに貼り付ける方法しかなく
やり方が見つからなく困ってます。
0532デフォルトの名無しさん
2015/07/12(日) 04:33:35.01ID:CzmmcRK9Rows( ).Hiddenプロパティを順番に調べてくのが順当な方法なんだろうけど
最後にデータを追加するのが目的なら、まず最終行の次の空白に「あ」を入れといてからフィルターをかけて、
xlUpすれば追加した「あ」のセルに一発で飛ぶから、そこに目的のデータを入れればいいんでない?
0533デフォルトの名無しさん
2015/07/12(日) 08:19:33.12ID:1BRWNEUl無理
フィルター結果はそれ一つで特別な固まりになってる
「フィルター結果の最終行の一つ下」という概念はExcelにはない
素直に別シートに貼り付けましょう
0534デフォルトの名無しさん
2015/07/12(日) 12:21:39.75ID:kAinUgxG最終データの位置とかまじめに考えると結構むずかしい
オートフィルター対象になってる範囲とかならとれるから、それの下なら
With Sheet1.AutoFilter.Range
Set r = .Offset(.Rows.Count).Resize(1)
End With
r.Value = 設定する文字(配列)
見たいなコードでいけるんじゃね
0535デフォルトの名無しさん
2015/07/12(日) 14:53:58.22ID:eG/EvVrGこういうのはどう
Sub テーブルの見出しを選択してから実行せよ()
ActiveCell.Offset(ActiveSheet.AutoFilter.Range.Rows.Count).Select
End Sub
0536デフォルトの名無しさん
2015/07/12(日) 20:53:56.57ID:2hDUKmaR>>535ありがとうございます。
更に一行下にする場合はCount+1で出来ました。
濡れました。
0537デフォルトの名無しさん
2015/07/13(月) 12:35:11.35ID:/ic4VC8c顧客名簿があります。
A列に名前
B列に性別が書かれているとします。
ボタンを押すと
B列の性別をA列の名前のセルの頭に挿入することはできますか?
関数とかで参照とかはしたくない感じなのですが。
どういう風にすれば良いか教えてください。
0538デフォルトの名無しさん
2015/07/13(月) 14:08:29.28ID:W8qekCen「とか」ってなんやねんというツッコミをいれたい
B列の情報(性別)を一切「参照せずに」どうやって処理を実行できるのか
そんな方法があるならむしろこっちが教えてほしい
0539デフォルトの名無しさん
2015/07/13(月) 14:17:15.88ID:/ic4VC8cごめんなさいね
おいちゃん他人のコードを見様見真似でやってるものであまり詳しくないものでね。
なんと言えばいいのか、、A列にはB列を参照する数式を入れたくないのです。
0540デフォルトの名無しさん
2015/07/13(月) 14:49:13.44ID:Q4XdJ0tCこんな感じでいけるのでは
0541デフォルトの名無しさん
2015/07/13(月) 15:15:47.26ID:W8qekCenSub 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列の頭に付け加えるので
何度も実行すると
鈴木 男 の場合
男男男鈴木 男 とかになる
最初の一文字をチェックするとしても
苗字が「男」で始まるもの(男澤、男鹿、男谷、男山、など)や
「女」で始まるもの(女部田、女屋、女池、など)も実在するので
そういった場合はどうすんのってことにもなりかねない
0542デフォルトの名無しさん
2015/07/13(月) 15:23:41.87ID:W8qekCen顧客名簿として管理するなら
一緒のセルに入れるべきではない(入れてはいけない)っていうのが大前提だけどね
仮に名簿を元に何かの分析をするために
この二つを一緒に出力するとかいうことならまぁわからなくもないけど
0543デフォルトの名無しさん
2015/07/13(月) 15:38:21.93ID:sRi+Sfog> A列のセル = B列のセル.Value & A列のセル.Value
自分自身を参照する計算式は設定はできないよ。
0544デフォルトの名無しさん
2015/07/13(月) 15:39:16.96ID:DovdIZeB0545デフォルトの名無しさん
2015/07/13(月) 18:14:54.33ID:3PtJoPuUああ、ごめん
ありがとう そうやればいいんですね!
実は先頭に挿入するのは性別ではないんです。
都道府県が入っていない住所録に郵便番号から都道府県を引っ張ってきて
都道府県を付与したかったんです
最初からそう書けば良かったですね。
ただ、都道府県が入ってるセルと入ってないセルが混在してるので分かり辛くなるかと思って
単にセルの先頭に代入する方法だけ知れればいいやと思って単純そうな性別の例で聞いてしまいました。
ありがとうございました。助かりました。
0546デフォルトの名無しさん
2015/07/13(月) 19:11:00.10ID:Q4XdJ0tC俺も回答したんだけど
俺は無視?
0547デフォルトの名無しさん
2015/07/13(月) 19:58:13.21ID:CJJidPYg´ω`)ごめんよ
おいちゃん助かったよ
まだ家帰れてないから両方試してないけど・・。
0548デフォルトの名無しさん
2015/07/13(月) 21:07:44.12ID:/p9n5st7せんぱい! 退職されて一年過ぎましたが・・ 部署の連中一同 ほんっっっっ・・・と、、、、、 せいせいしてますw
0549デフォルトの名無しさん
2015/07/13(月) 23:21:50.92ID:XFV6VzSY0550デフォルトの名無しさん
2015/07/16(木) 10:02:45.80ID:ehB1EJEEType PersonalData
ID as String
Name as String
Birthday as Date
・・・
End Type
Dim Person(100) as PersonalData
みたいな感じですわ。
これを配列内でソートするには、一番シンプルで速い方法はどんなものでしょうか?
ソートというのはたとえばBirthdayでソートするとPerson(1), Person(2)・・・・の順に生まれが早い順番に配列内で並べ替えたいんです。
0551デフォルトの名無しさん
2015/07/16(木) 11:18:38.67ID:53Jo2ojE> これを配列内でソートするには、一番シンプルで速い方法はどんなものでしょうか?
シートに書き出して、Excelの機能でソートして、シートの内容をデータに書き戻す。
0552デフォルトの名無しさん
2015/07/16(木) 11:27:39.40ID:ehB1EJEEそれは邪道でしょう。
シートに書き出しは禁止しましょう。
0553デフォルトの名無しさん
2015/07/16(木) 11:38:20.77ID:hFZ123Co0554デフォルトの名無しさん
2015/07/16(木) 11:43:38.40ID:ehB1EJEEクイックソートってなんですか?
0555デフォルトの名無しさん
2015/07/16(木) 11:46:48.84ID:hFZ123Co0556デフォルトの名無しさん
2015/07/16(木) 12:06:45.53ID:ehB1EJEEバブルソートってなんですか?
0557デフォルトの名無しさん
2015/07/16(木) 12:07:40.10ID:ehB1EJEEThredNumber(558).Message & "ってなんですか?"
0558デフォルトの名無しさん
2015/07/16(木) 13:13:18.91ID:53Jo2ojEバブルソートもクイックソートも、自分では実装できずググる気もないんだったら、
シートでソートするのが王道。
シートへの読み書きがわからんなら、もうソート不可能。
0559デフォルトの名無しさん
2015/07/16(木) 14:15:51.16ID:J5o6Kg8hじゃあVariant配列に書き出して、適当な配列ソートライブラリを使え。
0560デフォルトの名無しさん
2015/07/16(木) 15:23:47.90ID:GEks0S8S0561デフォルトの名無しさん
2015/07/16(木) 15:32:16.35ID:WG4jVMdb質問の内容にExcelが全く絡んでないからスレ違い
0562デフォルトの名無しさん
2015/07/16(木) 19:35:58.76ID:J5o6Kg8h1列目にそれを入れて2列目に0〜Nの連番を入れた配列を作ってソートする。
そうすれば2列目にインデックスが出来上がるから、その順に並べかえればいいのさ。
0563デフォルトの名無しさん
2015/07/16(木) 20:32:27.57ID:qYHM89EDttp://home.att.ne.jp/zeta/gen/excel/c04p41.htm
0564デフォルトの名無しさん
2015/07/17(金) 09:45:36.21ID:oIBga42rWordにどんどん貼り付けたいのですが
すでに開いているWord文書のアクティブDocumentの末尾にどんどん追加していくにはどうすればいいですか?
CreateObject("Word.Application")を使うと新たに新規文書としてそれを作ってしまう。
いま現状で開いているWord文書の末尾に追加したいのですが
0565564
2015/07/17(金) 11:11:01.99ID:oIBga42r助けてください!
GetObject("Word.Application")と、「GET」のほうですでに開いてるWordを取得できないのですか?
0566デフォルトの名無しさん
2015/07/17(金) 12:04:31.71ID:oIBga42rSet wd = GetObject(, "Word.Application")
として
wd.ActiveDocument.Content.InsertAfter ・・・
みたいにすればokか?
0567デフォルトの名無しさん
2015/07/17(金) 12:06:19.86ID:oIBga42rところでWordがまだ開かれてなければCreateObjectを
Wordがすでに開かれていたらGetObjectを使いたいのですが
その場合分けのif文はどう書けばいいですか?
0568デフォルトの名無しさん
2015/07/17(金) 13:20:15.48ID:id5On6lDワードのことは知らんけどエクセルの場合だと
開かれてるワークブックはそのマクロを実行しているブック自身も含めて
Workbooksコレクションに入ってるから
Workbooks.countが2以上なら
自分自身以外のブックが既に開かれている事がわかる
ワードにもなんかそんなコレクションがあるんじゃないの?
0569デフォルトの名無しさん
2015/07/17(金) 13:57:42.57ID:oIBga42r開かれてなかったらDocumentsのコレクションは存在しないし
そもそもWordを参照するためのオブジェクトすら存在しないからできないんだよ。
0570デフォルトの名無しさん
2015/07/17(金) 17:41:07.98ID:oIBga42r0571デフォルトの名無しさん
2015/07/17(金) 19:45:50.08ID:/l5uRIt/0572デフォルトの名無しさん
2015/07/17(金) 20:33:19.18ID:syB7WThG> Wordがすでに開かれていたらGetObjectを使いたいのですが
逆じゃね、GetObjectしないでどうやって既に開かれてるか知るつもりだよ。
0573デフォルトの名無しさん
2015/07/17(金) 20:37:41.79ID:oIBga42r開かれていない状態でGetObjecをするとエラーがでてしまうんだよ
0574デフォルトの名無しさん
2015/07/17(金) 20:39:06.86ID:rBy1sMGX0575デフォルトの名無しさん
2015/07/17(金) 20:47:16.88ID:oIBga42r0576デフォルトの名無しさん
2015/07/17(金) 21:34:24.03ID:/wl7lj/J0577デフォルトの名無しさん
2015/07/18(土) 01:03:10.73ID:vrPIhyd3何がしたいかというと、ワードやOutlookのクイックパーツみたいなのを
作れればと便利かなと思ったのですが
他にはフォームにテキストボックスをずらりと並べて
ダブルクリックしたら選択中のセルに入力するとか・・・
くらいしか思いつかないです
0578デフォルトの名無しさん
2015/07/18(土) 05:35:55.89ID:T5F58RSlクイックパーツと複数行のコンボボックスがどう関係してるのかさっぱりわからん
0579デフォルトの名無しさん
2015/07/18(土) 13:43:18.39ID:vrPIhyd3コンボボックスの複数行が出来ればクイックパーツもどきが出来そう、という思いつきから
そういう発想になりました
朝からフォームにテキストボックス並べる方法で作ってみたところ、
イメージに近いものが出来たので、今はこれでいいかなと思ってます
0580デフォルトの名無しさん
2015/07/19(日) 01:12:52.23ID:yGfbtuavForループのカウンタ変数をループから抜けた後で値の比較に使ってますが、
Exit Forを使わずにForループを抜けた場合にカウンタ変数は最終値+Step値になる
というような事がVBAの仕様として決まってるんでしょうか?
それともたまたまそうなったから深く考えず記載してるだけでしょうか?
後者だとしたらちょっと気持ち悪いなぁ
http://www.moug.net/tech/exvba/0050065.html
0581デフォルトの名無しさん
2015/07/19(日) 01:20:46.05ID:rAxj5bhn仕様かどうかは知らんけど経験則でそうなってるから俺も使ってる
少なくとも今後マイクロソフト側で変更しない限り
現行のものでは使えてるんだしそこまで気に病むことでもないと思う
0582デフォルトの名無しさん
2015/07/19(日) 01:28:01.93ID:Pqkg92al正確なVBAの言語仕様はみたことないけど、仕様としてそうなると思っていいんじゃね
たまたまではなくて、ヘルプ等で動作みるとそうならないとおかしい
保証はないかもしれんが、それで問題になった事はないし、そこに変更入るとも思えん
昔のFor Nextのヘルプ、思いっきり嘘書いてた時代もあるけどなw
0583デフォルトの名無しさん
2015/07/19(日) 01:29:58.29ID:yGfbtuav何か根拠があってやってるのかと思った
0584デフォルトの名無しさん
2015/07/19(日) 01:32:53.03ID:yGfbtuav結構いい加減な感じなのね
参考になりました
0585デフォルトの名無しさん
2015/07/19(日) 01:38:37.71ID:Pqkg92alFor Nextは前判定するから、ループの最低実行回数は0回なんだが
あのヘルプの書き方だと後判定にしか読めん
昔は後判定でも誤動作しないように判断入れさせられたりしたなぁ
0586デフォルトの名無しさん
2015/07/19(日) 02:12:32.63ID:OOt2nbBY普通はDo Loopなど変数の変化が確実に制御できる方法で置き換えるし、
あとで必用になる値ならリミットやステップは変数に入れておくべき
ドキュメント外の経験則なんて不確実な物に頼るのは三流以下
0587デフォルトの名無しさん
2015/07/19(日) 03:54:08.71ID:yGfbtuavつまり信用に関わるってこった
0588デフォルトの名無しさん
2015/07/19(日) 06:01:07.14ID:mDVOiq6Z動作に確証が持てるならそのままでもいいんじゃと
言い出す人もいるかと思ったのに
0589デフォルトの名無しさん
2015/07/19(日) 06:08:32.17ID:eGN6omT4間違いを放置していることも多々あるからな
俺は目の前の実装の動作を信じる派だ
0590デフォルトの名無しさん
2015/07/19(日) 06:43:14.14ID:Unt8HnGc例えば5行10行の関数内でやるとかなら。
0591デフォルトの名無しさん
2015/07/19(日) 08:09:39.14ID:mDVOiq6Z同意
例え正しい動作で動くとしてもスコープは意識しておかないと
煩雑になる可能性があるもんな
0592デフォルトの名無しさん
2015/07/19(日) 08:40:06.43ID:0azLbtwjそれが仕様というもの
つーかループ抜けたらカウンタ変数使うなって誰が考えたんだろうか
仕様をよく理解してないから、こんなバカセオリーが作られていく
0593デフォルトの名無しさん
2015/07/19(日) 10:45:03.48ID:gfc2emHiどこかのヘルプかなんかでそう言う風な仕様って見たような気がする
0594デフォルトの名無しさん
2015/07/19(日) 11:06:50.09ID:OOt2nbBY個人が趣味で書く「動けばいい」コードなら何やっても自由だけど、それを他人にも薦めるのは問題がある
実験して結果を確認とか、一番やっちゃいけないレベル
仕様書を見れば、いちいち実験なんかしなくても結果は予測できる
もちろん仕様書にもミスはあるけど、ミスを完全になくすのは不可能だから、
そのミスがきちんと認知されていれば問題ない
0595デフォルトの名無しさん
2015/07/19(日) 12:08:21.20ID:4JrdJist仕様書に書いてないものはダメと言いながら
仕様書のミスは認知されてればおkって
そんなのダブルスタンダードじゃん
だったらfor nextのカウンターの件だって
認知されてるんだからおkって話になっちゃうよ
0596デフォルトの名無しさん
2015/07/19(日) 12:16:27.67ID:OOt2nbBY「書いてない(保証されない)、意図していない」
と
「間違ったことが書いてある、開発側が意図した正解はちゃんとある」
ってのは別
この違い、わかる?
0597デフォルトの名無しさん
2015/07/19(日) 12:20:14.08ID:gdmrFD6e「書いてない、開発側が意図した正解はちゃんとある」
「間違ったことが書いてある、意図していない」
0598デフォルトの名無しさん
2015/07/19(日) 12:25:07.00ID:0azLbtwj所謂「処理系依存」て言葉を誤解してるな。
これは、独立して言語仕様が定められていて、開発者がその仕様に準じた実装をする場合に用いられる言葉。
この時、言語仕様として明確な定義がない動作は、処理系依存として開発者に委ねられる。
つまり、ANSI Cなんかでよく使われる言葉。
VBAのようなマイクロソフト一社が開発、実装をしている言語に処理系依存の動作はなく
実装が唯一の仕様になるんだよ。
0599デフォルトの名無しさん
2015/07/19(日) 12:25:45.05ID:r330jZtM読み手側が適宜修正を挟めるなら仕様書に書いてあっても実験して結果を確かめる必要性がある。
0600デフォルトの名無しさん
2015/07/19(日) 12:29:40.33ID:MA6NEEKTお前みたいなのを馬鹿丸出しっていうんですよwww
0601デフォルトの名無しさん
2015/07/19(日) 12:33:18.63ID:WqS3++Gnhttps://msdn.microsoft.com/ja-jp/library/office/gg251601.aspx
でもStepの規定値が0とは知らんかった
てっきり1だと思ってた
0602デフォルトの名無しさん
2015/07/19(日) 12:38:35.15ID:gdmrFD6e英語の方はoneってなってた。oneを0に訳すってどんだけ・・・
https://msdn.microsoft.com/en-us/library/office/gg251601.aspx
0603デフォルトの名無しさん
2015/07/19(日) 12:41:03.89ID:gdmrFD6e想像だけで突っ走ってたってこと?
0604デフォルトの名無しさん
2015/07/19(日) 12:54:52.18ID:eGN6omT4何かあるごとに俺ポリシーを唯一絶対の法則のごとく書き散らす
「一番やっちゃいけない」とかお前は何様かと
0605デフォルトの名無しさん
2015/07/19(日) 13:17:43.83ID:UQShnz8E今回みたいな場合なら、こんな議論じみたことするの面倒だから別に変数を持たせて最後の比較時の値を残しておくことを考えるかな。
それはそれとして、ループカウンタって、現在値と指定された最大値とを比較してループの実行を決めると思ってたから
最後の step 数が加算されるかどうかが処理系によるってのは全く考えたことなかった。w ちょっと参考になった。
0606デフォルトの名無しさん
2015/07/19(日) 13:39:37.34ID:0azLbtwj処理系じゃなく言語仕様な。
ちなみにforループの仕様すらまともに決まってない言語仕様など見た事がない。
0607デフォルトの名無しさん
2015/07/19(日) 13:45:54.11ID:bp/gXhOBひどい誤記だな
こういうのがあるからヘルプって信用できないよね!
ほかにも右と左を間違えるとか、ひどいよね
https://msdn.microsoft.com/ja-jp/library/dxs6hz0a.aspx
0608デフォルトの名無しさん
2015/07/19(日) 13:48:28.95ID:bp/gXhOBループを抜けた後のカウンタ値ってforの仕様に含まれるっけ?
0609デフォルトの名無しさん
2015/07/19(日) 13:52:17.65ID:gdmrFD6eふはは、めちゃくちゃやな
0610デフォルトの名無しさん
2015/07/19(日) 14:06:50.40ID:Unt8HnGc曖昧なのは仕様じゃなくてそいつの知識。
0611デフォルトの名無しさん
2015/07/19(日) 14:14:40.40ID:gfc2emHiend の値がいつ評価されるかをちゃんと書いてあるドキュメント教えてくれ
>>607
> こういうのがあるからヘルプって信用できないよね!
「日本語」ヘルプはって言ってくれ
0612デフォルトの名無しさん
2015/07/19(日) 14:58:37.69ID:0azLbtwjループの仕様とかではなく、forで新たにスコープが作られる言語があって
そういう言語のバッドノウハウが、いつの間にか一人歩きしてるだけ。
VBAではスコープが同じなのでループ内での最後の値は変わらない。
0613デフォルトの名無しさん
2015/07/19(日) 15:14:49.12ID:qsMi3+rDC++では、forにスコープがあるから、
変数iは、for{}内のみで使える変数
var i = 0
for( , i < 10, i++){}
一方、JavaScriptでは、forにスコープが無いから、
for()内で変数宣言せずに、
for外で変数宣言した方が、誤解しない
0614デフォルトの名無しさん
2015/07/19(日) 16:56:05.17ID:OryvopCIまたC++の人か
鬱陶しいな
0615デフォルトの名無しさん
2015/07/19(日) 16:56:51.47ID:o2GoxnAV0616デフォルトの名無しさん
2015/07/19(日) 17:02:24.73ID:OryvopCI男には使いたくないと思っていても
使わなければならないときがある
0617デフォルトの名無しさん
2015/07/19(日) 17:12:38.77ID:kvcDaKH10618デフォルトの名無しさん
2015/07/19(日) 18:12:50.64ID:ZuB4UjIDSet pic = LoadPicture(PicFile)
はば = pic.Width / 100
高さ = pic.Height / 100
で、単位mmで、それぞれサイズが出るようなんですが
解像度を求めることは、できないんでしょうか?。
0619デフォルトの名無しさん
2015/07/20(月) 19:12:04.97ID:51dMWdzw0620デフォルトの名無しさん
2015/07/20(月) 20:52:45.28ID:NI++k4bU0621デフォルトの名無しさん
2015/07/20(月) 21:46:50.67ID:4iREVrk00622デフォルトの名無しさん
2015/07/20(月) 21:50:23.17ID:HZ7E+BkF0623デフォルトの名無しさん
2015/07/20(月) 22:11:31.53ID:4iREVrk0わかりました
0624デフォルトの名無しさん
2015/07/20(月) 22:19:36.79ID:VFsFABu10625デフォルトの名無しさん
2015/07/20(月) 22:29:25.25ID:4iREVrk0どうやって気をつければいいんだよ
0626デフォルトの名無しさん
2015/07/20(月) 23:15:10.11ID:AGKnnOa8感染症になりそうなら素早く抜く
0627デフォルトの名無しさん
2015/07/20(月) 23:26:21.65ID:dHG3/QFfそれよりもベッドが汚れるので必ずバスタオルを敷くこと
0628デフォルトの名無しさん
2015/07/20(月) 23:26:55.15ID:th8mhDMf0629デフォルトの名無しさん
2015/07/21(火) 00:37:29.30ID:s5SYmwNrコレクションの使い方を復習しようと
なにか通勤列車で読めるような中上級向けの本がないか探したが
なくない?
なぜ入門書ばかりなんだろう
あれば教えてください
0630デフォルトの名無しさん
2015/07/21(火) 04:27:12.96ID:1F0zJxbfというのはおいとくとしても、VBAは本買うより目的ごとに検索した方が早い。
0631デフォルトの名無しさん
2015/07/21(火) 11:03:54.91ID:s5SYmwNrそうですか。
不便ですね。
電車の中で本を読んで復習しようと思ったのに。
ところでVBAでクラスをつくるとき
わざわざsetterやgetterをつくるの面倒ではありませんか?
単にプロパティという読み書きできるようにできない?
0632デフォルトの名無しさん
2015/07/21(火) 11:04:33.56ID:s5SYmwNro プロパティとして
0633デフォルトの名無しさん
2015/07/21(火) 15:47:35.82ID:rmCqwoyN0634デフォルトの名無しさん
2015/07/21(火) 15:58:52.78ID:s5SYmwNrできた。
なんだできるじゃん。
0635デフォルトの名無しさん
2015/07/21(火) 16:16:59.32ID:8Y3JIaa70636デフォルトの名無しさん
2015/07/21(火) 23:04:38.04ID:nI7QiMxBVBAのプロパティは何故かLetとSetの使い分けがあるんだよね
あれ何で?
0637デフォルトの名無しさん
2015/07/21(火) 23:20:44.80ID:1F0zJxbfVBAでは任意のオーバーロードを作れないのと、ポインタを使えないという制約があるのと、
さらにポリモーフィズムも無いという環境のせいで、オブジェクトの代入を他のものと区別する為にあるんじゃないの?
0638デフォルトの名無しさん
2015/07/22(水) 00:26:31.15ID:JGPtgvwfあれ?ポリモーフィズム無いんだっけ?
じゃインターフェースは何のためにあるの?
0639デフォルトの名無しさん
2015/07/22(水) 02:33:30.51ID:vbbcVbHR何故かって、VBAではSetとLetは別だから、区別があるのがむしろ当然
>>637
オブジェクトの代入を区別できないのは、デフォルトプロパティのせいなんで
オーバーロードとかポインタとかポリモーフィズムとか直接無関係です
0640デフォルトの名無しさん
2015/07/22(水) 05:40:28.69ID:E01nq8P+あんなのなくても代入して欲しい
0641デフォルトの名無しさん
2015/07/22(水) 06:11:09.77ID:hGLrxrN5ポインタとかさらに意味不明だしね
0642デフォルトの名無しさん
2015/07/22(水) 06:56:36.99ID:u4/X55npあっ(察し)
0643デフォルトの名無しさん
2015/07/22(水) 08:05:56.22ID:l4QssRUOSet無しでおkにするとVariant型変数にセルの値を入れたいときに
ちょっと困る
Sub hoge()
Dim var As Variant
var = Range(A1:G5)
Set var = Range(A1:G5)
End Sub
上のコード、Set有りと無しでは挙動が変わるんだけど、こういう時どうすんの?
0644デフォルトの名無しさん
2015/07/22(水) 08:07:30.81ID:l4QssRUO0645デフォルトの名無しさん
2015/07/22(水) 08:25:18.56ID:maciFGiVSetありなしとは関係ないけど、上は
var = Range("A1:G5").Value
とValueを省略せず書くのがいいと思う。
0646デフォルトの名無しさん
2015/07/22(水) 08:27:54.81ID:a/YZpM4jセットしないとただの配列になった気がする
0647デフォルトの名無しさん
2015/07/22(水) 14:00:12.80ID:vbbcVbHRこれはVBAのルール
ところでお前ら、Letって命令あるのちゃんと知ってるか?
常に省略可能な命令なんだぜw
0648デフォルトの名無しさん
2015/07/22(水) 14:27:07.44ID:9uF/bA4uおまえはなw
文末に書いてるw
「w」を省略したほうがいいぜw
0649デフォルトの名無しさん
2015/07/22(水) 14:58:32.27ID:1AHyolcGCall もあるし、別にどやるほどのネタじゃないぞ
0650デフォルトの名無しさん
2015/07/22(水) 16:04:40.72ID:zA65uI1C動作の違いの確認
Sub test1()
Range("A1").Value = "abc"
Set v1 = Range("A1")
Let v2 = Range("A1")
Debug.Print TypeName(v1)
Debug.Print TypeName(v2)
End Sub
0651デフォルトの名無しさん
2015/07/22(水) 17:34:18.21ID:SOhZ1+VBと思ったが、大昔のベーマガにはLETで代入してたソースがあった気もするな
0652デフォルトの名無しさん
2015/07/22(水) 19:25:17.64ID:vbbcVbHR機種によるけど、Then Let の場合、ThenかLetを省略できるので、Thenを省略してより短いLetを残すことがった
あとはLet省略しても、自動的に補完される機種もあったな
0653デフォルトの名無しさん
2015/07/22(水) 20:53:03.95ID:h8BR7O6Q0654デフォルトの名無しさん
2015/07/22(水) 21:51:43.71ID:JCiitdGg今時 Let とか言い出したアホに言ってくれよ
0655デフォルトの名無しさん
2015/07/22(水) 22:14:32.64ID:f2fD5abO0656デフォルトの名無しさん
2015/07/22(水) 23:16:34.02ID:EIwMW7nuMID(文字列,開始位置,文字数)
じゃなくて、
関数(文字列,開始位置,終了位置)
で指定したいです
0657デフォルトの名無しさん
2015/07/23(木) 00:01:42.48ID:a8nLYx9Z関数 = mid(文字列,開始位置, 終了位置 - 開始位置)
end function
0658デフォルトの名無しさん
2015/07/23(木) 00:11:50.48ID:FtGSRY1fありがとう
天才だな
0659デフォルトの名無しさん
2015/07/23(木) 00:19:40.71ID:FtGSRY1fありがとう
天才だな
0660デフォルトの名無しさん
2015/07/23(木) 00:30:11.92ID:fIFeUYpQもともとはSetとの対比でLetって話だったはずだが
0661デフォルトの名無しさん
2015/07/23(木) 05:50:04.22ID:OfB5opukLet の省略 って書かんとわからんか
0662デフォルトの名無しさん
2015/07/23(木) 05:57:57.83ID:CPvEDQbc>>657 だと一文字切れると思うよ
正しくは
function 関数(文字列,開始位置,終了位置)
関数 = mid(文字列,開始位置, 終了位置 - 開始位置 + 1)
end function
>>661
それがそもそもsetとの対比の話題で出てきたんでしょ?
0663デフォルトの名無しさん
2015/07/23(木) 06:13:33.37ID:OfB5opuk省略とか言い出したのは >>647
そもそも Let の話してるのに
> ところでお前ら、Letって命令あるのちゃんと知ってるか?
とか言い出したり、ちょっとアレな人なんだろうと思う
0664デフォルトの名無しさん
2015/07/23(木) 06:48:31.93ID:H5D81+vI「終了位置」の定義によるだろう。
普通は、長さ = end - begin となるようにするから>>657でいいと思うが。
0665デフォルトの名無しさん
2015/07/23(木) 07:14:32.88ID:CPvEDQbc>定義による
まさにその通りなんだけど、
たとえば、文字列 "あいうえお" から "うえ" を取り出したいときには
Midなら Mid("あいうえお", 3, 2)
となります
これの開始位置とはすなわち3文字目の "う" であり
終了位置は4文字目の "え" なわけですよ
そうするとこれを>>657に適用するなら
関数 = Mid("あいうえお", 3, (4 - 3))
ではなく
関数 = Mid("あいうえお", 3, (4 - 3) + 1)
にしとかないとおかしいんじゃないの?
というのが>>662の主張な訳です
こっちのほうが普通だと思いますね
0666デフォルトの名無しさん
2015/07/23(木) 07:20:09.47ID:Vrk4ENFdどんな普通だよ w
'あいうえお' の2文字目から4文字目って言われたら大抵の人は 'いうえ' って思うんじゃね?
0667デフォルトの名無しさん
2015/07/23(木) 07:21:49.64ID:Vrk4ENFdリロードしとらんかった...
例えが同じすぎて笑たわ
0668デフォルトの名無しさん
2015/07/23(木) 07:22:43.57ID:Z5SWxUfX関数("あいうえお", 3, 5)
とするわけだが、配列の長さは UBound - LBound + 1 だったりするから何が「普通」かは一概に言えない。
0669デフォルトの名無しさん
2015/07/23(木) 07:53:15.29ID:h4tQPyFC0670デフォルトの名無しさん
2015/07/23(木) 07:57:28.09ID:Z5SWxUfXつまり終了位置のひとつ先を引数に設定するのは「普通」のうちに含まれるという主張。
0671デフォルトの名無しさん
2015/07/23(木) 08:13:20.35ID:h4tQPyFC0672デフォルトの名無しさん
2015/07/23(木) 08:20:43.91ID:Vrk4ENFdむしろその +1 って >>662 の +1 と同じだし
>>671
下限は LBound で取れるので Option で指定しても成り立つ
0673デフォルトの名無しさん
2015/07/23(木) 09:36:32.54ID:Z5SWxUfX>>657 方式だと
関数("あいうえお", 3, 5) と指定する
>>662方式だと
関数("あいうえお", 3, 4) と指定する
+1するってのは使う側が引数に+1するって意味だよ。
0674デフォルトの名無しさん
2015/07/23(木) 09:41:39.58ID:P0N6qRSqこういう場合に+1する・しないで俺は昔からよく混乱する事があったんだが、最近では何も考えずに無の境地でプログラミングすると、一発で上手く行くようになったよ。
0675デフォルトの名無しさん
2015/07/23(木) 11:46:51.39ID:SI8SSCXa誰がどう見ても>>662の勝ちだな
0676デフォルトの名無しさん
2015/07/23(木) 11:54:13.42ID:Z5SWxUfX俺は、[3, 5), [5, 9), [9, 11) みたいに漏れ重複なく区間を並べられる書き方が好み。
0677デフォルトの名無しさん
2015/07/23(木) 11:56:02.55ID:dbj+2vsWInStrで「う」と「え」をサーチしたあとに取り出したいとかあるから
関数("あいうえお", 3, 4)
の方が使い勝手がいいと思う
それから「あいうえお」からこの関数をあえて使って「えお」を取り出すときに
関数("あいうえお", 4, 6) だとちょっと気持ち悪いというのもある
個人的な意見だけど
0678デフォルトの名無しさん
2015/07/23(木) 12:57:29.05ID:Vrk4ENFd書き方は色々あっていいけど、終了位置って普通最後の文字を指すでしょ
0679デフォルトの名無しさん
2015/07/23(木) 15:55:49.36ID:fIFeUYpQSet有りと無しではとか言ってる人に、Letって知ってるかって言うのはおかしくないだろ
そこはSetとLetでって書くべきなんだから
0680デフォルトの名無しさん
2015/07/23(木) 16:12:59.04ID:mmfWdiQl0681デフォルトの名無しさん
2015/07/23(木) 16:53:53.03ID:Vrk4ENFdスレを辿ることもできないのかよ...
>>636 からの話だぞ
0682デフォルトの名無しさん
2015/07/23(木) 17:01:14.71ID:Vrk4ENFd(出川口調で)お前はバカか w ⇒ >>656
0683デフォルトの名無しさん
2015/07/23(木) 17:44:01.97ID:fIFeUYpQその流れがあるからこそ、SetのあるなしじゃなくてSetとLetだろって話なんだが
まあ話が通じないならもういいや
0684デフォルトの名無しさん
2015/07/23(木) 19:13:36.15ID:Z5SWxUfXと
(長さ、終了位置)
のどっちだったか思い出せなくて悩むはめになる。
0685デフォルトの名無しさん
2015/07/23(木) 19:23:54.97ID:Vrk4ENFd> SetとLetだろって話なんだが
Set と Let の話してる奴等に
>> ところでお前ら、Letって命令あるのちゃんと知ってるか?
とか言い出したアホがいるって話なんだけど...
0686デフォルトの名無しさん
2015/07/23(木) 19:24:52.80ID:jdzUEZ4l0687デフォルトの名無しさん
2015/07/23(木) 19:25:27.87ID:jdzUEZ4l0688デフォルトの名無しさん
2015/07/23(木) 21:34:40.50ID:fIFeUYpQSetのあるなしじゃなくて って所を外してるのは、わざとですか?
そこが重要だと理解できてないのですか?
0689デフォルトの名無しさん
2015/07/23(木) 23:17:13.99ID:OfB5opukわざとです
論点はあくまでも >>636 ですから
0690636
2015/07/23(木) 23:55:08.79ID:h4tQPyFC0691デフォルトの名無しさん
2015/07/26(日) 02:05:49.12ID:PMtslnm/選択中の値・・・ドロップダウンリストが表示された状態で
マウスカーソルがあわさっている値を取得、なんてできますか?
0692デフォルトの名無しさん
2015/07/26(日) 02:31:29.01ID:2OSSYxBC0693デフォルトの名無しさん
2015/07/26(日) 11:51:18.54ID:PMtslnm/リストボックスにしてみます
0694デフォルトの名無しさん
2015/07/29(水) 22:52:06.65ID:P4eNlM/m0695デフォルトの名無しさん
2015/07/29(水) 22:54:37.84ID:c3o2n8R70696デフォルトの名無しさん
2015/07/29(水) 23:36:18.80ID:P4eNlM/m何かのタイミングでactiveが変わってしまったら危ないんじゃないかと思ったんですが、そういう事は起こり得ないんですか?
0697デフォルトの名無しさん
2015/07/29(水) 23:50:54.16ID:c3o2n8R7"Book1 - copy.xlsx"
みたいになると思うので、その名前を使えば良いんじゃないの?
0698デフォルトの名無しさん
2015/07/29(水) 23:59:24.34ID:HfzTZxWN0699デフォルトの名無しさん
2015/07/29(水) 23:59:46.07ID:hQM1TMMz0700デフォルトの名無しさん
2015/07/30(木) 00:00:27.52ID:ds/Apgk5名前もその時の状況で変わるので使いづらいです
自分が書いたコードではworkbookオブジェクトを新しく作ってからそこにシートコピーしてるのでactiveworkbookはつかってないんですが、
workbook.sheets(1).copyからもactiveworkbookを使わずオブジェクトを取得できたら楽かなぁと思って質問した次第です
0701デフォルトの名無しさん
2015/07/30(木) 00:15:11.00ID:AfvBuYEQ事前にチェックすれば良いだけだろハゲ
0702デフォルトの名無しさん
2015/07/30(木) 01:58:48.20ID:iv9Zs1qnWorksheets(1).Copy
Set mybook = Workbooks(Workbooks.Count)
mybook.Sheets(1).Range("A1") = "ABC"
End Sub
0703デフォルトの名無しさん
2015/07/30(木) 04:18:29.77ID:3TLsFD+RDim 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
0704694
2015/07/30(木) 22:02:11.70ID:ds/Apgk5ありがとうございました
0705デフォルトの名無しさん
2015/07/31(金) 03:12:44.99ID:aPbYdwRE馬鹿なのお前?
0706デフォルトの名無しさん
2015/07/31(金) 23:33:53.17ID:q+UwAnSR0707デフォルトの名無しさん
2015/07/31(金) 23:40:31.13ID:pDlCqfLx0708デフォルトの名無しさん
2015/07/31(金) 23:44:01.31ID:q+UwAnSR0709デフォルトの名無しさん
2015/08/02(日) 08:29:07.26ID:lFlP6vKjところが普通に名前をつけて保存だと"を付いてくれないっぽい
"aaa,bbb","cccc","d","eee","ff"
こういうcsvファイル作りたいんだけど、
VBAからテキストに書くしか方法ない?
元のEXCELファイルでは
カンマが入力されてる位置も数も法則性はありません
0710デフォルトの名無しさん
2015/08/02(日) 09:24:03.34ID:js+6DYN9それがExcelの仕様
諦めてVBAを書くか、""なしで書き出したテキストファイルを
PerlやRuby等の簡易な言語で加工するか
0711デフォルトの名無しさん
2015/08/02(日) 10:54:43.64ID:pHbT44ug特にC++はアスペ
0712デフォルトの名無しさん
2015/08/02(日) 11:55:18.99ID:zAkA6wkz0713デフォルトの名無しさん
2015/08/02(日) 12:23:27.67ID:lFlP6vKj行数多いので処理時間が少し心配ですが、
VBAでやってみます
他言語はvbsで保存後に「,」を「","」に置き換え
加工できるかなとは少し考えてました。
でも置き換え対象外の「,」もあるわけで、
保存後だと判定が難しそう
0714デフォルトの名無しさん
2015/08/02(日) 13:06:35.44ID:ZRhH79SV試した範囲では、少なくともセル中にカンマを含む場合はちゃんと""で囲んでくれるようだが
まあ、CSVはいろいろ細かいとこが違うから気に入らないなら自分で書き出すのが確実だけど
0715デフォルトの名無しさん
2015/08/02(日) 14:52:37.26ID:egshDkukこの処理中にリンクされたセルの値が変化した場合、
実行中のWorksheet_Changeは中断され、新たにWorksheet_Changeが開始されるのでしょうか?
それとも、実行中のWorksheet_Changeは引き続き実行され、同時並行にWorksheet_Changeが開始されるのでしょうか?
また、上記のどちらであるかを確認する方法があるようでしたら教えていただきたいのです。
よろしくお願いします。
0716デフォルトの名無しさん
2015/08/02(日) 15:09:53.80ID:QrDJWkft処理の中に対象セルの値を変化させるコードがある場合、そこから新たに実行される。
Private Sub Worksheet_Change(ByVal Target As Range)
Dim i
Debug.Print "preexe"
Target = i
Debug.Print "Postexe"
End Sub
とかで実行してみてイミディエイトウィンドウを確認すると分かりやすい。
0717デフォルトの名無しさん
2015/08/02(日) 15:18:10.64ID:9vFz/e2c0718デフォルトの名無しさん
2015/08/02(日) 16:32:16.48ID:dkS/+hk9A列 金種
B列 枚数
C列 金額
でB、Cの何れか片方に入力されたらもう片方を再計算するようにしたことならあるけど…
0719715
2015/08/02(日) 17:32:28.59ID:egshDkuk>>715のWorksheet_ChangeはWorksheet_Calculateに読み替えてください。
↓が正しいです。すみません。
"リンクされたセルの値が変化した際に実行する処理をWorksheet_Calculateに記述しております。"
>>716
>そこから新たに実行される
実行中のWorksheet_Changeは中断され新たにWorksheet_Changeが実行されるということでしょうか?
提示してもらったコードを参考にWorksheet_Calculateでの動作を確認してみます。
>>717
Worksheet_Calculateが実行中にリンクされたセルの値が変化することもあれば、変化しないこともありますので
必ずしも無限ループとはなりません。
>>716は無限ですけど。
0720デフォルトの名無しさん
2015/08/02(日) 18:39:22.01ID:MF9TQU9sそういうのがわずらわしいからTab文字でセパレートするんやで
つーか全レコード舐めて使ってない文字なら何でもいいが
0721デフォルトの名無しさん
2015/08/03(月) 10:07:35.51ID:IvRPgtVsアドイン探したらあったよ?
Excel CSV I/O
使ってみたら。
0722デフォルトの名無しさん
2015/08/03(月) 15:40:21.92ID:JhhThk5t0723デフォルトの名無しさん
2015/08/04(火) 18:12:48.60ID:Xu3GeQZL0724デフォルトの名無しさん
2015/08/04(火) 19:13:09.63ID:qaA+gaVg-encoding で、UTF-8, Shift-JIS のエンコードも指定できる
Excelのファイル形式では、
6 CSV
22 Mac CSV
23 Windows CSV
24 MSDOS CSV
"a,b","a b"
こういうように、文字列の中に、
カンマや空白が入っていると、
ややこしいので、タブ区切り(TSV)を使う
0725デフォルトの名無しさん
2015/08/05(水) 00:47:49.40ID:Xk+R3C8+tsvってなんでExcelに関連付けされてないんだろう
名前をつけて保存でも出てこないし
拡張子協会?みたいのがあって、そこには認められて無くて
タブ区切りだからtsvって一部の人が呼んでるだけなのだろうか
なんて想像してしまう
0726デフォルトの名無しさん
2015/08/05(水) 04:31:59.24ID:yfcMdSNWExcelでのタブ区切りはテキスト形式指定で保存できる
関連付けは.txtなのでメモ帳になってるのが一般的だな
開くのはEXCELでちゃんと開ける
そもそもcsvはComma-Separated Valuesの略だとされてるから
タブ区切りがcsvじゃおかしいだろうって言う話があってtsvと呼んだりするけど
それ以外の区切り形式も全部ひっくるめてcsvと呼ぶこともある
いちおう今はRFCとかもあるけど、それ以前から存在するし実はかなりカオスな形式
0727デフォルトの名無しさん
2015/08/06(木) 21:55:53.33ID:i7HDVQtVCreateObject("Outlook.Application").CreateItem(0)
でメールの下書きをいくつかたくさん作ります。
そのあとつくった全部に対して同じ処理をしたいのですが
このCreateItem(0)で作ったメールの下書きのコレクションを取得する方法ってどうやればよいでしょうか?
0728デフォルトの名無しさん
2015/08/06(木) 22:24:14.34ID:JI2t4Gst0729デフォルトの名無しさん
2015/08/06(木) 23:00:42.60ID:hJ1X31cMoutlook研究所に行けよ
0730デフォルトの名無しさん
2015/08/06(木) 23:53:13.21ID:3nTeNGfy0731デフォルトの名無しさん
2015/08/11(火) 21:35:11.54ID:gtl50mbfAAA BBB AAA CCC
と表示されているのを
AAA BBB CCC
と、つまり重複文字列を
削除するVBAのコードを何卒
お願いしますm(_ _)m
0732デフォルトの名無しさん
2015/08/11(火) 22:49:00.10ID:my6QzTuQ0733デフォルトの名無しさん
2015/08/11(火) 23:00:31.84ID:gtl50mbf一つにセル内の話です。
例えばA1内に
あああ あああ 200 200
と文字列がある場合に
マクロ実行で
あああ 200
のように。
(かなり困ってますので
お助けを…(_ _))
0734デフォルトの名無しさん
2015/08/11(火) 23:02:52.20ID:Rnp54Swm0735デフォルトの名無しさん
2015/08/11(火) 23:14:47.60ID:Rnp54Swm0736デフォルトの名無しさん
2015/08/11(火) 23:24:55.02ID:3YchA3jD0737デフォルトの名無しさん
2015/08/11(火) 23:43:59.37ID:gtl50mbf単一セル内
>>735
スペースは入っています。
元のプログラムでは
文字列型の変数に
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の中身の重複を
削除する方法です(_ _)
0738デフォルトの名無しさん
2015/08/12(水) 00:05:07.74ID:AxCPtTKKSub こんなんどないや()
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
0739デフォルトの名無しさん
2015/08/12(水) 00:26:19.28ID:g9g1aoHIありがとう御座います。
明日、会社で試してみます。
なんか出来そうな予感は
して来ました(笑)
(夜分遅くに本当に感謝です、他にも
ありましたら何方かなるべくシンプルな
やつでお願いします(^ ^;))
0740デフォルトの名無しさん
2015/08/12(水) 01:06:27.62ID:svAFeBJnエラー無視させるかキーが当たったら登録させないかは好みで分かれるところだな
0741デフォルトの名無しさん
2015/08/12(水) 09:21:11.40ID:ybFGXm8Qエラートラップとかはできる限り使いたくないから
> キーが当たったら登録させない
派だな
0742デフォルトの名無しさん
2015/08/12(水) 12:37:40.94ID:bqbcCRVaカメラで撮ったらシートに画像がすぐに貼り付けられるとか
バーコード呼んだらセルに入力されるとか
0743デフォルトの名無しさん
2015/08/12(水) 13:40:00.14ID:CjCTxmpZまあ元のソースが別のセルに入ってるのをわざわざ連結してから処理してる意味がわからないけど
0744デフォルトの名無しさん
2015/08/12(水) 13:42:43.23ID:Qp9NewvKgoogleスプレッドシートでやるといいよ
0745デフォルトの名無しさん
2015/08/12(水) 17:15:44.92ID:e6JBBjJ+挿入 ― 図 ― (d:\gazo\a000.jpg) ― ファイルにリンクで
貼り付けた画像があるとして、この画像のフルパス(d:\gazo・・・.jpg)を
知ることはできるでしょうか。Excel2007では,代替えテキストに
フルパスが入っていますが、Excel2010では、何も入りません。
(Excel側で、設定とかある?)、どこかに、情報は持っているはずと
思うのですが、VBAで知る方法、わかるかた教えてください。
代替えテキストは、下記でわかるようなのですが。
pic.ShapeRange.AlternativeText
0746デフォルトの名無しさん
2015/08/12(水) 23:05:01.82ID:G8qcToBK思わないな
0747745
2015/08/12(水) 23:40:12.65ID:e6JBBjJ+じつは、マクロで図を挿入するのを作っていて、「Excel2010でPictures.Insertすると
リンク貼り付けになる」ということなので、いろいろ調べたら「代替テキストに画像のフルパスが
あるなら、挿入にできる」っていうのを見つけた。で、2007だと代替テキストにフルパスが
入ってるけど、2010は、なし。じゃ、ということで2010で代替テキストにフルパスを書き込む
ようにした。で、リンク貼り付け→挿入にできるようになったんだ。これ、>>745カキコしてから
ようやっとできた。だけど、んにゃ、どっかにフルパス情報当然あるはず、と思うんだけど。
ちなみに「AddPicture」は、どうもしっくりこなくて。
0748デフォルトの名無しさん
2015/08/13(木) 01:00:44.65ID:CPI6SZk7「代替テキストに画像のフルパスがあるなら、挿入にできる」って
なにそれリンクプリーズ
0749デフォルトの名無しさん
2015/08/13(木) 01:24:42.76ID:UOPmO2ID0750デフォルトの名無しさん
2015/08/13(木) 09:28:42.30ID:jLoATrScこれです。
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1284060567
要は、画像リンクで貼り付けられてる、画像のフルパスがわかれば、リンク貼り付け→挿入にできる。
Excel2007は、代替テキストに入ってるから、もしリンク貼り付けでも対処できる。2010は、手動貼付けや
Pictures.Insertでは、代替テキストにはフルパスは入らない。マクロで入るようには、もちろんできる。
じゃ、すでに手動なりでリンク貼り付けになってる(フルパス情報なし)のを、挿入にしたいから
図のフルパスを知りたい、ってことなんだわ。ネットで、いろいろググってるんだけど、見つからなくて。
0751デフォルトの名無しさん
2015/08/13(木) 10:30:47.40ID:XEpKKFYz0752750
2015/08/13(木) 11:38:58.21ID:jLoATrScレスありがとう。教えてもらった通りの操作を、マクロ記録してみました。
それを利用して、画像フルパスなくても、一度に何枚のリンク画像でも、
挿入にできました。この方法は、思いつきませんでした。日頃のExcel操作が
大事だと改めて思いました。教えていただき、ありがとうございました。
(目的を達成したので、とりあえずリンク画像のフルパス取得は、保留にします。)
0753デフォルトの名無しさん
2015/08/13(木) 14:10:15.23ID:XEpKKFYzコピペも対処療法的な感じで非常にアレだ
0754デフォルトの名無しさん
2015/08/13(木) 18:40:42.85ID:e6rsnF6N「対処療法」じゃなくて正しくは「対症療法」だよ
0755デフォルトの名無しさん
2015/08/14(金) 20:13:43.07ID:8ARrFh/Iこう書くと数式も含まれてコピーされるようですが
値のみを繁栄させたい場合はどう書けばいいのでしょうか?
0756デフォルトの名無しさん
2015/08/14(金) 20:19:39.62ID:kkHnja52マクロ記録モードにして
「値で貼り付け」の操作をするとわかる
0757755
2015/08/14(金) 20:21:57.58ID:8ARrFh/Iこの質問の意図は
Range("A1").Copy
Range("B2").PasteSpecial Paste:=xlPasteValues
とすれば出来るのでしょうが1行で記述したいということです。
>>756
ありがとうございます
0758デフォルトの名無しさん
2015/08/14(金) 20:43:22.05ID:GC+yzDGQ私の記憶が確かなら、.valueは計算結果の値であって、数式はとれないはずですが。
EXCELのバージョンは?
0759755
2015/08/14(金) 20:54:01.53ID:8ARrFh/I2003です、、
表の集計で使っていますが
今まではダイレクトに書かれた数値をコピペしていたところを
=a1 のようなセル参照で抽出する用に変えたのですが
結果の数値が全部0になりよく調べると =a1 ごとコピーされて
結果セルの式は=a100とかと表示されていてだめだこれはといった感じです
0761デフォルトの名無しさん
2015/08/14(金) 22:41:06.93ID:kkHnja52できない
「値で貼り付け」はPasteSpecialメソッドにしかない機能なので
まずCopyしておく必要がある
0763デフォルトの名無しさん
2015/08/14(金) 23:45:05.71ID:G78FLFmYうちは2007だけど
Range("a1").Value = Range("b1").Value
でちゃんと数値がコピーされるなー
ところでこんなんどないや
Range("a1").Value = Evaluate(Range("b1").Formula)
0764デフォルトの名無しさん
2015/08/15(土) 00:27:53.07ID:fL/PzS3/2010でもその通り、値のコピーとなった。
>>761はウソ。
0765デフォルトの名無しさん
2015/08/15(土) 00:46:57.24ID:tvgFL4BIこれは動くのですが
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の使い方がわるいのでしょうか
0766デフォルトの名無しさん
2015/08/15(土) 07:06:47.86ID:j7Z0urAN1つのブックに600シートぶち込んでしまうのと
300シートに分割して2ブックにするのと
200シートで3ブックにする
のではどれがお勧めでしょうか?
600シートの総データ数は300MBほどです。
1ブック200シートのデータ作成は成功しましてまあそれなりに止まることなく動くというのがわかりました。
0767デフォルトの名無しさん
2015/08/15(土) 10:12:24.14ID:Rw3ql/9W0768デフォルトの名無しさん
2015/08/15(土) 10:27:23.30ID:cR607+81自分で作れてるんなら、実用性次第じゃないの?
0769デフォルトの名無しさん
2015/08/15(土) 10:42:17.52ID:p/7d84Nq0770デフォルトの名無しさん
2015/08/15(土) 15:23:11.33ID:7AZQcdGh150シートに分割して4ブックにすることもできすし
120シートに分割して5ブックにすることもできすし
100シートに分割して6ブックにすることもできす。
しかし分割して7ブックにすることはできません。
これは7が600の約数ではないからです。
小学生の算数の授業でした。
0771デフォルトの名無しさん
2015/08/15(土) 15:48:36.88ID:Bgl+GJFE分割は等分とは限らないんだぜ?
0772デフォルトの名無しさん
2015/08/15(土) 16:23:48.83ID:mbZast3u0773デフォルトの名無しさん
2015/08/15(土) 16:33:01.59ID:HxCw3c0C0774デフォルトの名無しさん
2015/08/15(土) 17:04:42.31ID:B4BgWceW0775デフォルトの名無しさん
2015/08/15(土) 17:10:19.88ID:B4BgWceWShapes.Rangeの引数は、配列は許すがコレクションは許さない
0776デフォルトの名無しさん
2015/08/15(土) 22:40:04.13ID:+545fZTC0777デフォルトの名無しさん
2015/08/15(土) 22:51:46.86ID:4BB87GxSネットの解説ページで充分
0778デフォルトの名無しさん
2015/08/15(土) 22:53:48.65ID:fL/PzS3/0779デフォルトの名無しさん
2015/08/15(土) 22:55:28.05ID:EaRAq5430780デフォルトの名無しさん
2015/08/15(土) 22:58:58.19ID:UUBlauo70781766
2015/08/15(土) 22:59:00.32ID:4BB87GxS100メガぐらいある200シートあるファイルを作り3つを同じに開いて処理させようとしたら・・・
3つめでリソース不足で開けませんと出てきました THE END
まだ推測段階ですが1ブック400シート統合したファイルは開けたと思いますので巨大な1つのブックを作るのが正解のようです。
0782デフォルトの名無しさん
2015/08/15(土) 23:01:44.13ID:fL/PzS3/0785デフォルトの名無しさん
2015/08/15(土) 23:21:14.62ID:+545fZTCアドバイスありがとうございます。
パソコンスクールは不要そうですね、自力でやります
0786766
2015/08/15(土) 23:28:20.54ID:FJpG/yMJプログラミングの基礎知識があればネットで充分
プログラム未経験で1から始めるならネットで見てわからなければ、本でやってみて、それでもだめならスクールかな
0787デフォルトの名無しさん
2015/08/15(土) 23:43:38.64ID:+545fZTCありがとうございます。プログラムは初心者ですが実務で使えるレベルになりたいのです。
カエルが出てくるベストセラー入門書を読み込んでみます
0788デフォルトの名無しさん
2015/08/16(日) 00:07:46.48ID:ulfn6A7k全くの未経験の感覚は分からん
0789デフォルトの名無しさん
2015/08/16(日) 02:37:33.95ID:7WiTockH0790デフォルトの名無しさん
2015/08/16(日) 05:49:34.88ID:ENl5jplpループやifはないけど
0791デフォルトの名無しさん
2015/08/16(日) 10:11:51.00ID:gGxBx6VU下手にループを組んだりするより、圧倒的に短く済む書き方を発見することがある
俺のVBA人生で一番驚いたのが、セルポインタの右下の黒点をWクリすると
左隣のセルに沿ってセル内容を自動コピーできること
コピー範囲の指定やif判定など一切が不要
0792デフォルトの名無しさん
2015/08/16(日) 10:29:13.12ID:piHLRckr0793デフォルトの名無しさん
2015/08/16(日) 11:32:03.58ID:ulfn6A7kそんな事出来たのかと思って試してみたけど
これってつまりオートフィル?
0794デフォルトの名無しさん
2015/08/16(日) 12:03:28.50ID:gGxBx6VUオートフィルだね
ループ組んで1セルずつ処理するコードを書くことしか頭になかったから
当時かなりの衝撃を受けた
関数内のセル参照式を自動でインクリメントしてくれるので、関数を含む
表をVBAで作る(割とよくある)場合に非常に役立つ
0795デフォルトの名無しさん
2015/08/16(日) 12:07:18.75ID:+v5OIrpT0796デフォルトの名無しさん
2015/08/18(火) 00:21:58.08ID:XBdAgPinこのあいだ適当に安定ソート組んだら組み込みのシート関数のSortのが速くてショック死した
0797デフォルトの名無しさん
2015/08/18(火) 04:01:26.32ID:fz3Mk9gj0798デフォルトの名無しさん
2015/08/18(火) 07:16:21.63ID:Nc1vlm2A反例が出ればはっきりする。出なきゃ何とも言えんが。
0799デフォルトの名無しさん
2015/08/18(火) 15:40:30.31ID:7IvcIIuj0800デフォルトの名無しさん
2015/08/18(火) 21:06:25.20ID:Nc1vlm2Aそうさ。君ならできる。
0801デフォルトの名無しさん
2015/08/20(木) 00:38:14.85ID:/DfWyQwS安定だよ
適当にセルに値埋めてキー列を変えながらソートしていけば不安定と何が違うか判る
0802デフォルトの名無しさん
2015/08/20(木) 00:47:34.83ID:C5756yL10803デフォルトの名無しさん
2015/08/20(木) 09:33:43.09ID:X9vYl0u8個人的な実験で調べるのは無理
安定ソートと同じ結果になったのが偶然じゃないと証明することはできない
0804デフォルトの名無しさん
2015/08/20(木) 11:22:47.70ID:4mlXzkea(どうすんのかは知らんけど)
それか、最初から使わなければ良い
0805デフォルトの名無しさん
2015/08/20(木) 12:06:50.75ID:mAnYGFvy0806デフォルトの名無しさん
2015/08/20(木) 12:09:54.61ID:mAnYGFvy0807デフォルトの名無しさん
2015/08/20(木) 17:06:23.21ID:GEWaWf2/訊かれてるのに頓珍漢な答えを返すの?
0808デフォルトの名無しさん
2015/08/20(木) 18:11:06.62ID:n0ICmDs/0809デフォルトの名無しさん
2015/08/20(木) 20:53:52.58ID:mAnYGFvy0810デフォルトの名無しさん
2015/08/20(木) 22:46:58.59ID:abJwgas40811デフォルトの名無しさん
2015/08/20(木) 23:25:51.90ID:4mlXzkeaWith wkR
.CursorLocation = adUseClient
.Open sqlstr, MgDB, adOpenStatic, adLockReadOnly
End With
みたいにしてっけど、こういう事じゃない?
0812デフォルトの名無しさん
2015/08/21(金) 00:12:09.87ID:AQjOsTG4こういうことですが、&でセルの値はなにも囲まないんですね
0813デフォルトの名無しさん
2015/08/21(金) 00:23:47.20ID:mP5B+B9x811だけど、これMySQLで俺がやってるもの。ACCESSではどうだったか。
MySQL出やる時、日付や文字列は "'" 半角のクォーテーションでくくってる
sqlstr = " 〜 '" & Cells(i,3) & "'" みたいに
そこら辺は適時修正してくれ
0814デフォルトの名無しさん
2015/08/21(金) 14:19:51.00ID:yaZ860HY脆弱性たっぷりに見えるので、もう少し頑張れ・・・(´・ω・`)
0815デフォルトの名無しさん
2015/08/21(金) 16:50:53.01ID:lpkbHdP+元の場所に同じ名前のファイルをCreateTextFileやOpenTextFileで新規作成すると
作成時にたまにランタイムエラーになる
MoveFileが非同期で処理してんのかなあと思った
FileExistsで移動が完了するまで待った方がいいのか、別名で新規作成するべきか
どっちがいいと思います?
0816デフォルトの名無しさん
2015/08/21(金) 16:59:03.93ID:CXs5osz9目的による
処理を急ぐなら別名で、同名じゃないと困るなら完了まで待つ
0817デフォルトの名無しさん
2015/08/21(金) 17:29:16.31ID:U/GX80hFbook1で次のコードを実行するとNの値がエンプティになってしまいます。
変数を使うにはどうしたらいいですか?
Public N As Integer
N = 100
Application.Run "book2".xls!updata"
0818デフォルトの名無しさん
2015/08/21(金) 17:55:38.56ID:CXs5osz9Application.Run ("book2.xls!updata", N )
0819デフォルトの名無しさん
2015/08/21(金) 18:38:34.66ID:lpkbHdP+ありがとうございます
コメントも無い他人のソースなんで、何でこんなことしてるのかはまるで不明なんですが
別名路線でいくというか、もう移動先に直接作成することを考えております
参考になりました
0820デフォルトの名無しさん
2015/08/21(金) 18:44:54.74ID:U/GX80hF返信ありがとうございます
実行すると コンパイルエラー 修正候補: =
と出てしまいます。
0821デフォルトの名無しさん
2015/08/21(金) 20:21:41.59ID:U/GX80hFちょっと別の方法でやってみます
ありがとうございました
0822デフォルトの名無しさん
2015/08/23(日) 14:00:42.68ID:mtt7apD70823デフォルトの名無しさん
2015/08/23(日) 14:58:01.35ID:CbBvys+jこのVBAのVariant型の変数の正体ってなんですか?
かなり詳しく知りたいのですが。
0824デフォルトの名無しさん
2015/08/23(日) 14:59:12.06ID:CbBvys+jこれらはメモリにどのように記憶されているか、ということまでは最低でも知りたいんです。
プロ目指してますんで(ワラ
0825デフォルトの名無しさん
2015/08/23(日) 15:04:43.71ID:WA8SS6t8VBAはソースも設計書も公開されていないので誰にもわからない
0826デフォルトの名無しさん
2015/08/23(日) 15:14:25.56ID:CbBvys+jそりゃないよかあちゃん
0827デフォルトの名無しさん
2015/08/23(日) 15:20:55.56ID:J+cRYQ7VVariantはOS(Windows)で定義されてる型
中は二つに分かれていて、データの種類と実際の内容が入ってる
VBAはそれを継承してるだけなので、Windowsクラスの仕様を探せば詳しいことがわかると思う
実際に消費するバイト数とかどっかで見た記憶があるんだけど思い出せん
0828デフォルトの名無しさん
2015/08/23(日) 15:24:51.94ID:CbBvys+jありがとうございます。
ではなにを調べればよいのでしょ?
VBAの元になったVB.netの本には書いてそうですか?
0829デフォルトの名無しさん
2015/08/23(日) 15:37:58.52ID:J+cRYQ7VVB.netはVBAの元じゃないです
歴史的に見れば.netよりVBAの方がずっと古いです
VBAの言語仕様 (文法)はWindowsよりもっと前のMS-DOSの時代に流通していたMS-BASICの影響が強く残っています
とりあえずVariantについてはWindowsクラスを調べてください
0830デフォルトの名無しさん
2015/08/23(日) 15:45:58.27ID:CbBvys+jわかりました。
ではWindowsクラスはどうやって調べますか?
VBAのクラスだとコード書くところでF2押してそのオブジェクトウインドウでクラスを調べることができますが
Windowsクラスはどこをさわってどこを見ればよいのでしょうか?
0831デフォルトの名無しさん
2015/08/23(日) 15:48:38.19ID:Sv2KumfAあんたエラいな
もう面倒臭いから
「VB.Netを調べればVariantのことならバッチリです」って書き込む衝動に駆られたよ
どうせVB.NetにはVariantなんて概念無いから調べればすぐ分かるだろうし
0832デフォルトの名無しさん
2015/08/23(日) 16:10:13.13ID:MIuOfpHO0833デフォルトの名無しさん
2015/08/23(日) 16:12:01.44ID:HWLa8qp/ほらよ
http://marupeke296.com/IKDADV_CPP_VARIANT.html
0834デフォルトの名無しさん
2015/08/23(日) 16:14:09.85ID:CbBvys+jぉぉ、ありがとうございます。
さっそく読んでみます
0835デフォルトの名無しさん
2015/08/23(日) 19:08:05.67ID:pAcPKBpl0836834
2015/08/24(月) 11:52:15.07ID:kqGleJUR結局はVariant型の変数の正体はどうなっているのですか?
0837デフォルトの名無しさん
2015/08/24(月) 11:58:00.74ID:mvfSohk+0838デフォルトの名無しさん
2015/08/24(月) 12:07:55.55ID:v68vlkfs>>833で紹介されてるサイトに明確に書いてるじゃんよ。
::VariantInitしたあとvtに型識別の定数入れてその型の値を入れりゃ使えるんだよ!
0839デフォルトの名無しさん
2015/08/24(月) 12:23:46.05ID:yOjBToOIC/C++を勉強しろ
0840デフォルトの名無しさん
2015/08/24(月) 14:05:05.16ID:BYoao/vRヨボヨボのおじいさんと
何も聞かずにその荷物を持ってあげる親切な若者の2人組
ほら空港によくいるだろ
0841デフォルトの名無しさん
2015/08/24(月) 17:05:32.04ID:J76Yg4NIいやだ。という事だろう。
0842デフォルトの名無しさん
2015/08/24(月) 17:34:27.17ID:Kuhf7pjv833のリンク先を見て理解できないのは勉強が足りてないだけ
たいがいの変数は型が最初から1種類に決まってるのに対して、Variantは「型が何か」と「値」のペアを入れるようになってるから
同じ変数に色々な値を入れることができる
「型が文字列で値が"abc"」とか、「型が整数で値が1234」とか
VBAでは型を勝手に判定してくれるのと、その判定基準が(たぶん)非公開なので理解しにくいってのはあるけど
0843デフォルトの名無しさん
2015/08/24(月) 18:06:39.68ID:CxEN4gra私もこのリンク先は理解できませんでした
勉強します。はい。
0844デフォルトの名無しさん
2015/08/24(月) 19:35:51.19ID:EZ01N8pB0845デフォルトの名無しさん
2015/08/24(月) 19:41:39.58ID:L+YG8AD90846デフォルトの名無しさん
2015/08/24(月) 19:56:40.68ID:j4ltc4Df目的によるがメモリ管理なんかを勉強するなら最低でもCの挙動について知っておく必要がある。
newすりゃインスタンスがメモリ上にポンと出来るなんて甘々の高級言語なんか使ってたらいつまでもプログラマになれんのですよ!
0847デフォルトの名無しさん
2015/08/24(月) 20:07:49.84ID:EZ01N8pBじゃCとC#でいいや
3DSよりVITAのソフト作れるようになりたい
0848デフォルトの名無しさん
2015/08/24(月) 20:13:49.27ID:j4ltc4Df「○○でいいや」精神でゲーム作るならUnityなんかのAPIに慣れておく方が建設的。
まぁ一回、根幹的な仕組みを勉強してからの方が覚えやすいから無駄にはならないけど。
0849デフォルトの名無しさん
2015/08/24(月) 20:31:57.81ID:Kuhf7pjv今はスマホアプリで我慢しとけ
0850デフォルトの名無しさん
2015/08/24(月) 20:48:16.48ID:EZ01N8pBじゃWindowsパソコンしか持ってないからAndroidStadioでJavaか
0851デフォルトの名無しさん
2015/08/24(月) 22:50:47.21ID:hopDjYVC> newすりゃインスタンスがメモリ上にポンと出来る
そう言うのを作る側に回ったことはないのか?
もしそうなら、そりゃスクリプト言語使ってるのとたいして変わらんかもな w
0852デフォルトの名無しさん
2015/08/24(月) 23:06:13.03ID:EZ01N8pBひょっとするとインスタンス作るのに物凄く苦労するとか
0853デフォルトの名無しさん
2015/08/25(火) 00:20:48.67ID:fH+tecmUそれをどうコントロールするかに気を使うことになる。
0854デフォルトの名無しさん
2015/08/25(火) 00:28:47.69ID:SVRUkRRq0855デフォルトの名無しさん
2015/08/25(火) 00:51:30.40ID:LKq1O+0D0856デフォルトの名無しさん
2015/08/25(火) 01:02:46.86ID:SVRUkRRqとか、こんなのを100コなんですが。右辺のセルは連続してません。
0857デフォルトの名無しさん
2015/08/25(火) 01:03:22.37ID:3oudZYDo何を聞きたいのか質問がさっぱりわからん
「早く書く」って、どこに何を書きたいんだ
0858デフォルトの名無しさん
2015/08/25(火) 01:05:58.97ID:3oudZYDoその右辺のセルの一覧はどっから入手すんだよ
紙にでも印刷されてんのか?
で、左辺には法則があんの?
0859デフォルトの名無しさん
2015/08/25(火) 01:11:57.38ID:SVRUkRRq右辺のセルはバラバラです。
cells(i,2)
cells(i,3)
•
•
0860デフォルトの名無しさん
2015/08/25(火) 01:16:53.20ID:nOqJNbIK0861デフォルトの名無しさん
2015/08/25(火) 01:32:24.93ID:3oudZYDo右辺は配列、左辺はForで回せば同じような行を並べて書く必要はなくなる
0862デフォルトの名無しさん
2015/08/25(火) 04:35:55.37ID:viArKoao0863デフォルトの名無しさん
2015/08/25(火) 12:07:24.53ID:57Wb3jlhWeb上にあるファイル(イントラネットにあるいろんな拡張子のファイル)を
コピーやら移動やらFileSystemObjectで操る方法ってありますか?
仕様なのか知らないがhttp://で始まるアドレスにあるファイルは扱えない。
0864デフォルトの名無しさん
2015/08/25(火) 19:20:53.18ID:SVRUkRRq開いてるので更新できないとエラーになるんです
0866デフォルトの名無しさん
2015/08/25(火) 22:55:10.89ID:trQirQ+3コードの実行が中断されました とは一体何ですか?
メモリーオーバーか何かでしょうか?
どうやったら回避出来るのでしょうか?
0867デフォルトの名無しさん
2015/08/25(火) 23:03:40.80ID:Fjt3Kipbこうしてみると
やっぱCの構造体/共用体定義って秀でてるなあ
0868デフォルトの名無しさん
2015/08/26(水) 09:29:51.16ID:1qA3LFtn0869デフォルトの名無しさん
2015/08/26(水) 11:55:22.88ID:CfN5/oSDコードを全部もれなくあげてみてくれ。
0870デフォルトの名無しさん
2015/08/26(水) 20:51:37.95ID:Mnky30GV誰かがBreakキーを押した
ブレークポイントがあった
中断しましたというダイアログを出すコードを書いた
0871デフォルトの名無しさん
2015/08/26(水) 21:17:40.72ID:jQcdD1vT0872デフォルトの名無しさん
2015/08/27(木) 19:04:23.08ID:8KYXppfO0873デフォルトの名無しさん
2015/08/27(木) 23:39:27.94ID:DSwpBmOpハード知識であるアライメントを意識できない最近のシステム屋は、
致命的な欠陥を作り込む場合が多い。
マイグレーションとか外部接続システムで。
0874デフォルトの名無しさん
2015/08/28(金) 06:58:15.39ID:h/70kqcI0875デフォルトの名無しさん
2015/08/29(土) 20:20:06.39ID:daYUkBJ70876デフォルトの名無しさん
2015/08/30(日) 13:57:40.38ID:TrC601ZP四角に変更するとか。手操作だと変更できますが、マクロ記録してみても、
何もコードが作られません。ググってみても、その情報はないような感じです。
0877デフォルトの名無しさん
2015/08/30(日) 14:41:34.46ID:0qE+mi+lもしかして2007?
2007はシェイプのマクロが記録されないバグがあるから
図形の変更はAutoShapeTypeプロパティに図形の種類を代入するだけ
例えば四角にするにはmsoShapeRectangleを代入すればいい
0879デフォルトの名無しさん
2015/08/30(日) 21:14:20.31ID:kboI7nNkうちの会社の社内のイントラページを開こうとすると
普通の開き方じゃなくVBAで開こうとするとそれを感知してるっぽくて
ログイン画面に飛ばされまたIDとPWを入力しないといけなくなります。
こんなことってよくあるのですか?
どうしてもVBAで開きたい場合その対策はどうすればいいですか?
0880デフォルトの名無しさん
2015/08/30(日) 21:27:29.95ID:tJkk5ci/何か特殊な仕掛けをイントラに施しているからそうなる
社内システム管理者に聞け
0881デフォルトの名無しさん
2015/08/30(日) 22:44:25.09ID:PtUjiQ8Dまず、
>VBAからブラウザでURLを指定して開く方法
この方法を書かなければ、レス付きませんよ。
0882デフォルトの名無しさん
2015/08/30(日) 23:14:42.89ID:0E1Z3mSNIEを呼び出してるだけだよね?
0883デフォルトの名無しさん
2015/08/30(日) 23:34:06.80ID:tJkk5ci/かましてることがあるんで、単純には開けないこともあるよ
とにかく社内システム管理者に聞くことだ
0884デフォルトの名無しさん
2015/08/31(月) 00:11:29.55ID:g6VDKMqY0885デフォルトの名無しさん
2015/08/31(月) 01:19:07.67ID:PyRduorcシングルサインオンの認証基盤使っているんだろ。
フォームのブラウザ部品を使っているなら、
エクセルを立ち上げたあと、Webクエリを開いて、ログイン画面にID,PWを入れてログインする。
これでエクセルに認証済セッションが確立されるから、あとはマクロを実行すれば良い。
IEオブジェクトの場合は、ログイン済みのIEプロセスを取得するようにすれば良い。
もしくは、VBAで新規IE立ち上げてURLを開いた後に、タイトルを取得してログイン画面だったら、
IDをPWを流し込むようにすれば良い。
0886デフォルトの名無しさん
2015/08/31(月) 02:55:31.01ID:7cfpxY0w0887デフォルトの名無しさん
2015/08/31(月) 17:58:03.77ID:+ep0qKm5たぶん、普通にIEをダブルクリックで開いてパスワードを入れた後で、VBAから新規にIEオブジェクトを作成してんだと思うけど、
その方法だとパスワード認証情報は引き継がれない
対策は色々あるけど、VBAで何をやりたいかによる
0888デフォルトの名無しさん
2015/08/31(月) 18:06:40.81ID:ch2DQs3g自動でテキストボックスやチェックボックスに文字をいれたりチェックしたりして
最後にボタンを押したいのです。
0889デフォルトの名無しさん
2015/08/31(月) 18:48:32.91ID:lFDVUwIcパソコンが完全に自分専用ですぐ終わる処理なら、IDとPWもVBAから入力してやれば全自動にできる
その場合VBAのソースにパスワードを書くことになるので、他人に見られる可能性がある場合は危険すぎておすすめできない
画面のデザインや操作の手順が完全に固定されてるならIEオブジェクトは使わずにSendKeysで操作する方法がある
フォーカスの移動はTabキー、チェックボックスはスペースキーでチェックできる
0890デフォルトの名無しさん
2015/08/31(月) 18:49:46.39ID:lFDVUwIcボタンを押すのはフォーカスを合わせてEnterな
0891デフォルトの名無しさん
2015/08/31(月) 19:01:11.41ID:ch2DQs3gなぜIEオブジェクトは使わない方法をすすめるのですか?
SendKeysはその間他の操作ができないしなんか不安になる。
0892デフォルトの名無しさん
2015/08/31(月) 19:02:04.47ID:ch2DQs3g問題は先に書いた、ログイン画面が表示されたり変な画面になることです
0893デフォルトの名無しさん
2015/08/31(月) 19:31:11.66ID:I/nqUJvX0894デフォルトの名無しさん
2015/08/31(月) 19:32:10.78ID:LuRVaWQV一つのIEオブジェクトで一貫して操作してないとか何かしら問題のあるスクリプトになってんじゃないか
0895デフォルトの名無しさん
2015/09/02(水) 22:38:31.24ID:U41rngxq0896デフォルトの名無しさん
2015/09/02(水) 22:43:43.58ID:Io8ALjDg0897デフォルトの名無しさん
2015/09/02(水) 23:07:09.38ID:LGUC5Icc0898デフォルトの名無しさん
2015/09/02(水) 23:25:07.33ID:U41rngxq0899デフォルトの名無しさん
2015/09/03(木) 00:35:37.99ID:ZIG14SBgそう言うのじゃダメなん?
0900デフォルトの名無しさん
2015/09/03(木) 01:10:03.90ID:7u8Pd6k9直接操作はできないけど
ワークセルを介すればどうでしょうか?
Sub TEST()
Range("A1").Formula = "='D:\TEST\[TEST1.xlsm]Sheet1'!A5"
Debug.Print Range("A1").Value
End Sub
速度とかは知らない
ちなみに 自分は EXCEL2013
0901デフォルトの名無しさん
2015/09/03(木) 01:13:49.44ID:S2+8lDDQ最近全部まわらず途中で終わってしまうことが増えました。
windows update でofficeが少し変わったからだと思いますが、
対処方法はありますか?
win7 X64です。
0902デフォルトの名無しさん
2015/09/03(木) 01:46:10.33ID:5AuTPVsb依頼者じゃないけどやってみたら動いた そんな手があったのかw
それがいけるならこれでいいじゃん!
Debug.Print Evaluate("='D:\TEST\[TEST1.xlm]Sheet1'!A5")
と思ったが2023エラーがでちゃうね アララ 残念
0903900
2015/09/03(木) 02:08:19.63ID:7u8Pd6k9じつはこれ
EXCEL97時代にブック壊れてEXCELでオープン出来なくなった時
データサルベージに使った手法なんですよね
全ての破損に対応できるとは限らないけど
これで かなりのデータ復旧できたのよ
なつかしす
0904デフォルトの名無しさん
2015/09/03(木) 21:18:58.57ID:gI7qOxsQそれを直接的に利用してCells(1,1).Font.Color = RGB(255,0,0)という設定をする、みたいな方法はありませんか?
if文やSelection文を使って処理を分岐するという方法ですと全てのメンバーを網羅するのが大変なので、
あくまでマクロ側は「どのメンバーを」「どう弄るのか」を知らずに盲目的に受け取った文字列をメンバーや引数として処理するという方法が欲しいのですが、
VBAだとこういう処理は難しいのでしょうか?
0905デフォルトの名無しさん
2015/09/03(木) 21:40:39.13ID:8gUdvpRg無理じゃないかなあ
その三つをつなぐドットやイコールは誰がどうやって指示するの?
0906デフォルトの名無しさん
2015/09/03(木) 22:07:28.37ID:5AuTPVsb無理です
間接的に利用してください
0907デフォルトの名無しさん
2015/09/03(木) 22:45:46.77ID:WEVKW98e0908デフォルトの名無しさん
2015/09/03(木) 23:06:04.80ID:PAfGEiTT望みがありそうな方法としては
1.APIのコールバックで何とかする
2..Netフレームワークをインストールしてリフレクションで何とかする
3.Application.Runで何とかする
くらいか
0909デフォルトの名無しさん
2015/09/03(木) 23:45:35.10ID:a3XAcmHw動的に書き換えられたとして、コンパイルしなきゃだし
VBA単体では無理だと思います
代替案も思い付かず…
0910デフォルトの名無しさん
2015/09/04(金) 00:45:19.08ID:Ehviu2S7「VBAだと」って言うけど、そういうことができる言語ってあるの?
0911デフォルトの名無しさん
2015/09/04(金) 01:33:24.64ID:ExFTHLbBEvaluateとCallByNameで何とか出来るかもしれんが、汎用的には無理だと思う
0912デフォルトの名無しさん
2015/09/04(金) 02:18:22.69ID:PCIPeDCdプロシージャを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
上はただつなげてるだけだから
セル内容チェックを十分しないと コンパイルエラーになる可能性が大きいけど
0913デフォルトの名無しさん
2015/09/04(金) 05:42:14.15ID:HtSUMw5S回答ありがとうございます。
とりあえずApplication.Runで何とか出来ないか試してみたいと思います。
0914デフォルトの名無しさん
2015/09/04(金) 12:34:46.44ID:5E7pI8p5つっても関数がファーストクラスじゃないんだよねえ
VBやめてjavascriptで実装してVBAから渡すとか・・・
0915デフォルトの名無しさん
2015/09/04(金) 13:28:33.31ID:5E7pI8p5面白いな
0916デフォルトの名無しさん
2015/09/04(金) 19:20:11.14ID:bKoadVKQ0917デフォルトの名無しさん
2015/09/04(金) 19:41:44.85ID:PCIPeDCd読み取り専用で開いたかどうかは
ThisWorkbook.ReadOnly
で判定できるよ
0918デフォルトの名無しさん
2015/09/04(金) 20:18:28.18ID:bKoadVKQそうなんですよね。ブックオープンが走る前にそのプロパティーで判別できたらいいんですけど
0919デフォルトの名無しさん
2015/09/04(金) 20:26:04.68ID:PCIPeDCdブックオープンの最初で判定させればいいだけでは?
ブックオープンが動作した所で 一番最初に判定して EXIT SUB とかすれば
本来の処理が実行されないので 問題なくね
0920デフォルトの名無しさん
2015/09/04(金) 20:27:29.34ID:ntJe9Vs/オープンして読み取り専用なら何もせず閉じるコードを
Workbook_openの最初に追加すればいいじゃないか
0921デフォルトの名無しさん
2015/09/04(金) 21:14:08.24ID:bKoadVKQ0922デフォルトの名無しさん
2015/09/04(金) 21:38:02.04ID:A59C16Ao排他処理は Excel がやるだろ
何が難しいんだ?
0923デフォルトの名無しさん
2015/09/04(金) 21:49:51.19ID:bKoadVKQその排他処理って読み取り専用になることをいってますか?
ファイルサーバで複数人が触るブックで、どうデータを入力すとか、順序とか考えるとこんがらがってきた
0924デフォルトの名無しさん
2015/09/04(金) 22:30:27.78ID:HtSUMw5Sエクセルって基本的に電卓の亜種であってデータベースソフトじゃないし。
0925デフォルトの名無しさん
2015/09/04(金) 22:44:40.65ID:uxFbuttRそりゃ運用の問題だ
とりあえずブックの共有でいいんじゃね
マクロは知らんけど
0926デフォルトの名無しさん
2015/09/04(金) 23:28:13.59ID:bKoadVKQ運用も言うこと聞くようなおっさん達じゃないんだよなー。文句だけ言う奴らで
0927デフォルトの名無しさん
2015/09/04(金) 23:42:32.76ID:uxFbuttR0928デフォルトの名無しさん
2015/09/04(金) 23:43:00.47ID:VusSFEWo0929デフォルトの名無しさん
2015/09/04(金) 23:52:57.51ID:TmLEs7On0930デフォルトの名無しさん
2015/09/05(土) 00:18:44.48ID:FRI4E2ZTどこで喜んでるんだよw
0931デフォルトの名無しさん
2015/09/05(土) 02:42:20.04ID:CmBaCyqy多数の人が一度に書き込むときの制御はEXCELに向いていない。
何かファイルサーバ上で共有切ってるだけで不安定な気がする。
中にはOpenOfficeでアクセスしようとする奴もいるし。
0932デフォルトの名無しさん
2015/09/05(土) 03:14:44.10ID:3MtyEdK20933デフォルトの名無しさん
2015/09/05(土) 13:16:01.25ID:x7KkU3nJ今回、そのドライブレターを変えたのと、半分くらいはフォルダを作ってそれに入れたのでリンクが少しだけ規則的にかわりました。
FileSystemObjectというのを知っていままで使ったことがありますが
このFileSystemObjectを使ってショートカットファイルのリンク先を変更するには
どうすればいいでしょうか?
0934デフォルトの名無しさん
2015/09/05(土) 14:25:00.38ID:ZKXW4+L0スレ違いでは?
Excelに全く関係ないと思うんだが
0935デフォルトの名無しさん
2015/09/05(土) 14:31:39.79ID:Hu04yitTVBAで色々作るの面白いから仕事を自動化させてるんだが
コントロールフォームのボタンを沢山作り過ぎて逆に見栄えが悪い&使いづらくなってしまった・・・
ボタン押すだけで特定の業務を自動化できるのはいいんだがいかんせんボタンが多すぎ
こういう場合はどうしたはいいんだ?
何か定石というかアイディアないですか?
0936デフォルトの名無しさん
2015/09/05(土) 14:37:21.77ID:ZKXW4+L0君はさらにスレ違い
もはやVBAの話題ですらない
0937デフォルトの名無しさん
2015/09/05(土) 14:42:39.88ID:L+jn/gme同一の動作をするボタンをまとめて、組み合わせで特定の作業が出来る様にするとか、
動作をリストボックス表示にしてリストから選択した作業だけ実行する様にするとか。
0938デフォルトの名無しさん
2015/09/05(土) 14:51:35.90ID:wnxJPoz8Office TANAKA - 番外編[lnkファイルのリンク先を取得する]
http://officetanaka.net/other/extra/tips12.htm
0939デフォルトの名無しさん
2015/09/05(土) 14:59:22.82ID:84U+9ZQ6ボタンをセルと同サイズにして縦に並べて、横に進捗状況をプロットする様にしてる
順番に押していかないとエラーで止まる様にしたりもする
0940デフォルトの名無しさん
2015/09/05(土) 15:01:26.21ID:x7KkU3nJフォームに「マルチページ」のコントロールを貼り付けて
ページごとに似通った機能をまとめたまえ。
0941デフォルトの名無しさん
2015/09/05(土) 15:17:17.15ID:x7KkU3nJ謝謝!
0942デフォルトの名無しさん
2015/09/05(土) 15:47:59.73ID:x7KkU3nJ0943デフォルトの名無しさん
2015/09/05(土) 15:49:08.28ID:x7KkU3nJSub 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のクラス(?)のメンバをオブジェクトブラウザで見れるようにする方法はありますか?
0944デフォルトの名無しさん
2015/09/05(土) 16:35:27.01ID:x7KkU3nJLnkFile.Save
とすればできるよ
0945デフォルトの名無しさん
2015/09/05(土) 16:37:12.71ID:x7KkU3nJおお、すばらしい!!!
0946デフォルトの名無しさん
2015/09/05(土) 16:52:31.34ID:x7KkU3nJWindow Script Host Object Modelを参照設定したまえ
0947デフォルトの名無しさん
2015/09/05(土) 18:53:28.77ID:McuB2/kQ> 順番に押していかないとエラーで止まる様にしたりもする
俺は押せないボタンが事前にわかってるなら Enabled = False にするな
0948デフォルトの名無しさん
2015/09/06(日) 06:51:37.28ID:uAyrTmIHチェックボックス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)の状態。なせでしょう。
(フレームに入れてみても、それだけだと複数チェックがはいってしまう。)
0949デフォルトの名無しさん
2015/09/06(日) 09:02:44.39ID:wPdoKzWWcheck1クリックイベントハンドラー内に入った時点でcheck1の値は反転しているので、自身の値は設定不要。
そしてcheckの値を反転させると、それぞれのクリックイベントが発生する。
この辺りの挙動を整理して実装しないと、変なループが発生しますよ。
無限ループとか
0950デフォルトの名無しさん
2015/09/06(日) 09:11:51.51ID:Rqv/7r060951デフォルトの名無しさん
2015/09/06(日) 09:15:40.01ID:pMKgJlgcif check1.value = falseのときはexitするようにすればいいんじゃない?
0952デフォルトの名無しさん
2015/09/06(日) 09:34:13.01ID:7OdEXCxTオプションボタンだとオフにできないんじゃない?
>>948
チェックボックス+排他
で山ほどサンプルあるでしょ
0953デフォルトの名無しさん
2015/09/06(日) 10:31:59.79ID:AH5FZdvjなぜならすでに開いてたら二重で開くことになるから。
でももしもまだそれを開いてなかったらエラーがでてえらいこっちゃとなります。
これは定跡的にはどうやって対策しますか?
0954デフォルトの名無しさん
2015/09/06(日) 11:10:34.16ID:8yRgk1H40955948
2015/09/06(日) 11:41:16.35ID:3umPcbKU恥ずかしながら、チェックボックスとオプションボタンをよく理解しておりませんでした。
オプションボタンで、解決しました。いろいろ、勉強になりました。どうもです。
0956デフォルトの名無しさん
2015/09/06(日) 16:33:37.25ID:tXhFn+hoGetObjectでエラーになったらCreateObjectすれば
0957デフォルトの名無しさん
2015/09/06(日) 16:51:05.77ID:Ir/JiN9vでもマジで作るやついるんだよ
最初見た時はマジで意味わからんかった
なんか(間違った)独自性を出したかったんだろうか...
0958デフォルトの名無しさん
2015/09/06(日) 17:09:04.33ID:kcKZyiZs0959デフォルトの名無しさん
2015/09/06(日) 17:10:50.93ID:tXhFn+hoいやWindowsServerの役割と機能とか見たことない?
チェックボックスはただのOn/Offスイッチ的な側面もあるんだよ
なぜか他に適当なコントロールも無いし
0960デフォルトの名無しさん
2015/09/06(日) 17:54:40.03ID:Ir/JiN9v> いやWindowsServerの役割と機能とか見たことない?
どのバージョンの話?
2003, 2008, 2012 見たけど排他になってるやつなんてないけど?
> チェックボックスはただのOn/Offスイッチ的な側面もあるんだよ
つか、その機能しかないけど?
0961デフォルトの名無しさん
2015/09/06(日) 18:02:14.05ID:AH5FZdvjいやエラーになる前にCreateObjectしたいのですが。
そのためのif文でなにを書けばいいのでしょう?
0962デフォルトの名無しさん
2015/09/06(日) 18:33:55.51ID:JKlgepEbWordやOutlookが開いているかどうかはどうやって調べるつもり?
その為のGetObjectじゃないか とおもうが
GetObject成功・・・・開いてた →取得したオブジェクトを利用
GetObject失敗・・・・開いてない→CreateObjectしてそれを使用
0963デフォルトの名無しさん
2015/09/06(日) 18:39:56.86ID:tXhFn+hoスイッチとして扱うなら排他でも何も違和感ないでしょって話
0964デフォルトの名無しさん
2015/09/06(日) 19:09:18.56ID:Ir/JiN9vお前はそうかもしれないけど大多数の人はそうじゃない
反論するなら有名どころのソフトで排他になってる例を 10個ぐらい挙げてくれ
0965デフォルトの名無しさん
2015/09/06(日) 19:12:40.91ID:JSf18249それは無茶言うもんやろ。
無茶なこと言うて相手黙らせたら満足するんかい。
しょーもないやっちゃな。
0966デフォルトの名無しさん
2015/09/06(日) 19:13:34.11ID:JSf18249ホンマしょーもないわ、かー。
0967デフォルトの名無しさん
2015/09/06(日) 19:40:43.00ID:Ir/JiN9v違和感あるから誰もそんな UI にしない
ないなら、そう言う UI がいくらでもあるはず
しょうもないとか言う負け犬の遠吠えは恥ずかしいだけ
0968デフォルトの名無しさん
2015/09/06(日) 19:44:17.84ID:JSf18249いくらでもあるんやったら10個ぐらい挙げてくれ
お前が言うたんやからないくらでもあるんやろ
はよしてや
0969デフォルトの名無しさん
2015/09/06(日) 19:46:11.11ID:JSf18249有名なやつ10個や
いくらでもある言うたんやから簡単やろ
はよしてや
0970デフォルトの名無しさん
2015/09/06(日) 20:26:59.64ID:8yRgk1H4排他オプションの為のUIがオプションボタン
あえてそのセオリーに逆らう必然性は全くない
0971デフォルトの名無しさん
2015/09/06(日) 20:27:13.49ID:Ir/JiN9vあるなんてどこに書いてあるんだ?
まさか、「はず」の意味すら理解できないのか?
0972デフォルトの名無しさん
2015/09/06(日) 20:33:21.40ID:JSf18249いくらでもあるはずや言うたやんか。
あるんやったら言うてみい。
言えへんのやろ?せやったら他の人にも言うたらあかんわ。
それを無茶や言うとんねん。無茶言うたらあかん。
無茶だけはやめときい。あんたのためやで。
排他でもなんら違和感ない。それでええな?
0973デフォルトの名無しさん
2015/09/06(日) 20:40:24.60ID:Ir/JiN9vわざわざかっこ付きで書いてあるんだからちゃんと読め
仮定法わからないならしょうがないが w
0974デフォルトの名無しさん
2015/09/06(日) 20:48:27.41ID:JSf18249そんなんどうでもええ。
無茶だけは言うたらあかん。
チェックボックスで排他はええ。
0975デフォルトの名無しさん
2015/09/06(日) 21:12:35.12ID:Ir/JiN9v0976デフォルトの名無しさん
2015/09/06(日) 21:16:58.49ID:JSf18249どうでもええとこにこだわりもてへん言うてんねん。
本筋から外れとるやろ。仮定法の話違うかったやろ。
本筋見失ってどうすんねんな。国語のスレちゃう。Excel VBAのスレや!!
0977デフォルトの名無しさん
2015/09/06(日) 21:29:51.58ID:NotYgcdX0978デフォルトの名無しさん
2015/09/06(日) 22:51:05.31ID:TqvVUxNbそのうざい似非関西弁口語口調目障りだから止めろ
0979デフォルトの名無しさん
2015/09/06(日) 22:54:27.27ID:JSf18249このたびは不快な思いをさせてしまい誠にすんまへんでした。
0980デフォルトの名無しさん
2015/09/07(月) 00:20:37.43ID:cu3gW1D30981デフォルトの名無しさん
2015/09/07(月) 06:19:18.31ID:iIih6qgJ0982デフォルトの名無しさん
2015/09/07(月) 07:17:25.51ID:o9/XMBwE0983デフォルトの名無しさん
2015/09/07(月) 07:55:12.25ID:7q49S6cJここ?
Excel VBA 質問スレ Part37 [転載禁止]©2ch.net
http://peace.2ch.net/test/read.cgi/tech/1433920729/
0984デフォルトの名無しさん
2015/09/07(月) 13:54:06.26ID:qNXpHtIRそこでいいの?
0985デフォルトの名無しさん
2015/09/07(月) 14:07:41.21ID:qNXpHtIR0986デフォルトの名無しさん
2015/09/07(月) 19:03:09.19ID:E2JS6OsFそこは勝手に改悪したテンプレを盾にしてスレチだなんだと五月蝿いのが居るからダメ
本来の次スレはこっちに立てた
http://peace.2ch.net/test/read.cgi/tech/1441619979/
0987デフォルトの名無しさん
2015/09/07(月) 22:43:17.03ID:EWpXgtHr乙
では埋めだな
0988デフォルトの名無しさん
2015/09/07(月) 23:45:23.23ID:nzOhKJqK乙です
0989デフォルトの名無しさん
2015/09/08(火) 00:11:02.38ID:oVeubNzq0990デフォルトの名無しさん
2015/09/08(火) 00:18:05.36ID:knpqgMY30991デフォルトの名無しさん
2015/09/08(火) 06:41:21.95ID:ExO7c6Yl0992デフォルトの名無しさん
2015/09/08(火) 06:55:07.33ID:u1cdNMtc0993デフォルトの名無しさん
2015/09/08(火) 16:10:27.39ID:GKBL/Ew70994デフォルトの名無しさん
2015/09/08(火) 18:21:28.19ID:knpqgMY30995デフォルトの名無しさん
2015/09/08(火) 18:38:32.25ID:m7aBfM8f0996デフォルトの名無しさん
2015/09/08(火) 22:10:12.77ID:oGp/KliXExcel VBA 質問スレ Part38 [転載禁止]©2ch.net
http://peace.2ch.net/test/read.cgi/tech/1441619979/
0997デフォルトの名無しさん
2015/09/09(水) 02:15:08.16ID:uHaCyZBl0998デフォルトの名無しさん
2015/09/09(水) 02:31:10.17ID:qFTQoAT60999デフォルトの名無しさん
2015/09/09(水) 06:14:26.58ID:ys1D99oR1000デフォルトの名無しさん
2015/09/09(水) 06:50:57.03ID:aBvbVIMRhttp://peace.2ch.net/test/read.cgi/tech/1441619979/
10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。