Excel VBA 質問スレ Part30
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2013/06/01(土) 21:13:42.61★1 質問テンプレ(雛形)は用意しませんが、OSとExcelのバージョンは必ず書きましょう。
★2 ExcelのVBA以外の部分に関する質問はNGです。
但し、VBA無しでも出来ることだが、あえてVBAでやりたいって物に関してはOK。
★3 ExcelのVBE(Visual Basic Editor)を使うとしても、VBAの分野以外に関してはスレ違いです。
VBAとは、『Visual Basic for Applications』の略で
Application
├Workbooks
|└Workbook
| ├Worksheets
| |└Worksheet
というApplication以下のオブジェクトを、VB言語で操作するものを指します。
例えExcel付属のVBE(Visual Basic Editor)を利用しようとも、このApplication以下のブックやシート、
セルやオブジェクト等を操作するもの以外はVBA分野の話ではないので、ここでは聞かないでください。
★4 とりあえず、Excelのインスタンスを作らずにVB6で出来ることは全てスレ違いだと思ってください。
★5 レベルはどうあれ、ここはプログラマ用の板スレです。プログラマとは、自分でプログラムを組み、
コードを書く人の事なので、自分でやるきは全く無く、丸投げしようって人はお断りです。
ヒントを貰えばあとは自力でなんとかしますって人のみどうぞ。
★6 わからなければとりあえず「マクロの記録」(Alt, T, M, R)
前スレ:Excel VBA 質問スレ Part29
http://toro.2ch.net/test/read.cgi/tech/1364689772/
関連スレ:VBAなんでも質問スレ
http://toro.2ch.net/test/read.cgi/tech/1342087380/
0002デフォルトの名無しさん
2013/06/01(土) 21:14:27.5902 http://pc11.2ch.net/test/read.cgi/tech/1168308855/
03 http://pc11.2ch.net/test/read.cgi/tech/1180192018/
04 http://pc11.2ch.net/test/read.cgi/tech/1189814602/
05 http://pc11.2ch.net/test/read.cgi/tech/1197448064/
06 http://pc11.2ch.net/test/read.cgi/tech/1205231499/
07 http://pc11.2ch.net/test/read.cgi/tech/1212587819/
08 http://pc11.2ch.net/test/read.cgi/tech/1219673793/
09 http://pc11.2ch.net/test/read.cgi/tech/1228372971/
10 http://pc12.2ch.net/test/read.cgi/tech/1235332603/
11 http://pc12.2ch.net/test/read.cgi/tech/1241885130/
12 http://pc12.2ch.net/test/read.cgi/tech/1247566074/
13 http://pc12.2ch.net/test/read.cgi/tech/1254281104/
14 http://pc12.2ch.net/test/read.cgi/tech/1262748898/
15 http://pc12.2ch.net/test/read.cgi/tech/1271261239/
16 http://hibari.2ch.net/test/read.cgi/tech/1280045912/
17 http://hibari.2ch.net/test/read.cgi/tech/1289182437/
18 http://hibari.2ch.net/test/read.cgi/tech/1298240666/
19 http://hibari.2ch.net/test/read.cgi/tech/1305754555/
20 http://hibari.2ch.net/test/read.cgi/tech/1312435844/
21 http://hibari.2ch.net/test/read.cgi/tech/1316931607/
22 http://toro.2ch.net/test/read.cgi/tech/1322400978/
23 http://toro.2ch.net/test/read.cgi/tech/1327763113/
24 http://toro.2ch.net/test/read.cgi/tech/1334305148/
25 http://toro.2ch.net/test/read.cgi/tech/1341722983/
26 http://toro.2ch.net/test/read.cgi/tech/1345363310/
27 http://toro.2ch.net/test/read.cgi/tech/1353842387/
28 http://toro.2ch.net/test/read.cgi/tech/1359607536/
0003デフォルトの名無しさん
2013/06/02(日) 21:26:04.29,,イ`" 、-' `;_' ' ..::::::::::::::...
,-、 _.._ ( (,(~ヽ'~ ..:::::::::::::::::::::::
)'~ レー' 〉 ヽ i`'} .:::::::::::::::::::::::
~つ '-ー、 i | i' ...:::::::::::::::::::::::
/ < / 。/ ! ......::::::::::::::::::::::::: これは>>1乙じゃなくて
/ ~^´ /},-'' ,●::::::::::::::::::::::::::::::::::::
i、 ,i' _,,...,-‐-、/ i :::::::: .:::::::::::::
..ゝ <,,-==、 ,,-,/ .::::::::::: 放射能がうんたら
) {~''~>`v-''`ー゙`'~ ..::::::::: ........::.
{ レ_ノ ..::::::::. ......:::::::::
ノ '' ..::::::: ...::.:...:::::::::
.::::::::: ...:......:::::::::::: .
.:::::::::::. ..... .. ..:::::::::::::::::::::::: :::.
::::::::::::::::.::::::....:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::.. :: ::..
.:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::: ::.
::::::::::::::::: :::::::::::::::::::::::::::::: :::::
.:: ::. :::
0004デフォルトの名無しさん
2013/06/02(日) 22:46:44.37質問者はFriendpasteで書き込む事、使い方は簡単だし、使った事無い人は逆に使ってみると良いかも知れない。
この要望は反対意見があれば取り下げるものとする。
ただ、いちいちダウンロードしてやるよか余程早いし安全だと追記しておく。
0005デフォルトの名無しさん
2013/06/02(日) 22:58:54.02言ってることが良くわかんないんだけど。
質問者はこのスレに内容を書き込むじゃ駄目なのか?
0006デフォルトの名無しさん
2013/06/02(日) 23:09:00.23質問者に何をさせようとしているのかよくわからん。
質問者が質問の内容をこのスレとFriendpasteに書かなければいけないのならNG。
0007デフォルトの名無しさん
2013/06/02(日) 23:09:52.31実際にコードを貼って、このコードのどこが変でしょうみたいな質問はそっちに貼って貰えば回答する側も楽かと思うんだけど。
自由に編集出来る環境の方が皆使いやすいし、間違った回答や分かりづらい回答があった時も修正しやすい、まさにコードで語るって感じになるし。
0008デフォルトの名無しさん
2013/06/02(日) 23:13:17.42実際に書いてみると。
a1に『あ』って書きたいんだけど、どうしたら良いんだろ?
とりあえずここまで出来た。
ttps://friendpaste.com/
上のURLには何も書いてないが、雰囲気はこんな感じになるかな。
使いづらいかなぁ。
00096
2013/06/02(日) 23:15:36.28追記。
一番の問題はパイパンのような奴がのさばらないようなルールにするんだったら全然OK。
Friendpasteに書き込むのは質問者のみとかね。
回答者はそれを見て回答すればいいわけでしょ。いちいちコード書く必要なんてないわけだし。
0010デフォルトの名無しさん
2013/06/02(日) 23:23:37.57はたして質問者がコードを提示するとは到底思えないなのだが。
そういうのも含めてそこそこルール化する必要があると思うけど・・・。
かなり面倒なスレになると思う。
0011デフォルトの名無しさん
2013/06/02(日) 23:23:42.27俺が間違っていたよ、>>9のルールにしよう。
0012デフォルトの名無しさん
2013/06/02(日) 23:37:40.62a ってなに?てかコメント書くかレスで改札よろ。あ、後の参照のためにもコメントがいいかも。とりあえずよろ。
こんな感じか。別に気にする必要はないかと。
0013デフォルトの名無しさん
2013/06/02(日) 23:38:13.120014デフォルトの名無しさん
2013/06/02(日) 23:41:43.54編集やコメントできなくね?
前スレだと共有できるところをって雰囲気だったけど。どうなん
てかお前白桃か?
>>8
https://じゃなくてhttp://でいいんじゃね?
0015デフォルトの名無しさん
2013/06/02(日) 23:48:38.35編集出来るんじゃないか?
例えば俺が貼るわな。
http://friendpaste.com/3W9OXsW2ANN4jKIqZsBay1
で、左下に編集あるからやってみ。
0016デフォルトの名無しさん
2013/06/02(日) 23:56:08.370017デフォルトの名無しさん
2013/06/03(月) 00:01:29.73新しいルールを組み込むのは簡単じゃない。
でも本当に編集出来るなら個人的にちょっと興味があるな。
WEBにこういうツールがあるとは知らなかった。
0018デフォルトの名無しさん
2013/06/03(月) 00:04:07.8520行程度までだったら、レスでいいだろ。
外部に質問者のコードがあったら、いちいちそこ見ないと話の流れがわからんし。
0019デフォルトの名無しさん
2013/06/03(月) 00:05:16.52ハァ?
てめ、プログラマじゃねーのかよ。
プログラマだとしたら閉じ籠りすぎだわ。
0020デフォルトの名無しさん
2013/06/03(月) 00:11:16.80何で知らないだけでそんな言われ方されなきいけねーんだ、調子にのんなよ
0021デフォルトの名無しさん
2013/06/03(月) 00:12:30.56何十行もあるコードを晒したい人は、そのfriendなんちゃらでもどこでも使えばいい。
でも、そのコードに突っ込みを入れるときは要注意なってのが新ルール。
0022デフォルトの名無しさん
2013/06/03(月) 00:13:47.33個人的興味でこのスレのルールにしようなんて思うなカス
0023デフォルトの名無しさん
2013/06/03(月) 00:14:17.390024デフォルトの名無しさん
2013/06/03(月) 00:16:48.47早とちりしてんじゃねーよバカ
どうみても俺がルール変える話してないだろうが
俺はプログラマだ、確かにな閉じこもりではあるけどな…そこは正解
0025デフォルトの名無しさん
2013/06/03(月) 00:24:39.76投稿したコードの有効期限が十分に長い事
リビジョン毎にURLが違う事
も重要だけどどうなん?
00266
2013/06/03(月) 00:24:43.43賛成。
動くコードは質問者が把握していればいいわけで回答者が質問者のコードの全てをを知る必要はないしね。
勿論概要程度は知っておく必要あるけど。
コードのやり取りでFriendpasteにしなくてはいけない理由がよくわからない。
今までだって質問者がうpローダを使っている実績があるわけで、今更感が否めない。
Friendpasteは編集できるって言ってるけど、オリジナルのコードが無くなるわけだで
それはそれで問題だと思う。
結論としてはFriendpasteを使うのはノーかな。
0027デフォルトの名無しさん
2013/06/03(月) 00:26:46.81ちゃんと明言しとかないと、質問者が迷うぞ。
0028デフォルトの名無しさん
2013/06/03(月) 00:33:50.550029デフォルトの名無しさん
2013/06/03(月) 00:36:04.790030デフォルトの名無しさん
2013/06/03(月) 02:11:55.990031デフォルトの名無しさん
2013/06/03(月) 02:23:33.39>コードに突っ込みを入れるときは要注意
何をどう注意しろと?
0032デフォルトの名無しさん
2013/06/03(月) 02:50:54.35「それ以前の問題」とか「糞」とかいうのは完全に叩きだからな。
今のところ人格攻撃だけで、具体的な指摘がないんだ。
0033デフォルトの名無しさん
2013/06/03(月) 03:21:39.49あっただろ
0034デフォルトの名無しさん
2013/06/03(月) 04:27:47.350035デフォルトの名無しさん
2013/06/03(月) 05:46:39.02ここまで「使いたい」「編集ができる」程度の理由しかないし、それほどメリットがあるとは思えない。
そもそもうp先の選択は個人の自由だろ。
ルール化したら、指定うp先じゃないから見ないとかくだらない話になりそうだし、今までどおりでいいと思う。
0036デフォルトの名無しさん
2013/06/03(月) 06:53:37.69前スレで具体的に指摘されたてのが理解できないのなら
ここで改めて指摘しても意味ないと思う。
具体的な指摘内容から総称して「糞」と言われてるだけだと思う。。
0037デフォルトの名無しさん
2013/06/03(月) 07:15:20.660038デフォルトの名無しさん
2013/06/03(月) 09:52:57.210039デフォルトの名無しさん
2013/06/03(月) 11:49:18.76そんなのは新ルールでもなんでもない
理由も具体的指摘もなくて批判が成り立つわけないだろ
人格攻撃してるやつとまっとうな批判をしてるやつを一緒にしないでくれ
あと、そこで誰かの名前だすの必要なの?
お前の方がよっぽど個人の人格を攻撃してないか
0040デフォルトの名無しさん
2013/06/03(月) 15:01:33.91なにがFriendpasteだよ、あほかw
0041デフォルトの名無しさん
2013/06/03(月) 18:10:34.74hoge.xlaは、例えば http://officetanaka.net/excel/vba/vbe/03.htm のようなことを行います。
このアドインは、Windows XP+Excel 2000では動作確認できているのですが、それ以降のバージョン
・Excel 2003/2007/2010/2013
・Windows 7/8
の組み合わせで、動かないものはありますか?
004241
2013/06/03(月) 18:13:58.560043デフォルトの名無しさん
2013/06/03(月) 18:26:20.40少なくとも7(32bit)+2007では動くと思う。後は知らん。
0044デフォルトの名無しさん
2013/06/03(月) 18:50:15.30VBEへのアクセスは2002以降デフォルトで無効だけどアドインなら平気かも
0045デフォルトの名無しさん
2013/06/03(月) 20:02:21.42アドインでも駄目だよ。明示的に有効にしてやらないと動かない。
0046デフォルトの名無しさん
2013/06/03(月) 22:58:21.55そのアドインどこかにうpれば試してくれる人いるかもよ
0047デフォルトの名無しさん
2013/06/03(月) 23:22:38.41便利なら使ってもいいんじゃない?
ただルールとして義務付けるのは無しだね。
その場において便利だと思った人が使えばいいんじゃないかな。
0048デフォルトの名無しさん
2013/06/03(月) 23:25:31.24普通に考えてそれだけの環境持ってる人探して聞くより
MSDNに質問投げた方が早いと思うけどなぁ。
0049デフォルトの名無しさん
2013/06/04(火) 07:37:44.24OSもOfficeも試用期間で試せばいいじゃん
ここの回答で動くっていわれても当てにならないよ
0050デフォルトの名無しさん
2013/06/04(火) 10:44:57.45のシートについてデータを処理するんですが、シート名を得て処理するやり方教えて下さい。
順番は問わないです。
0051デフォルトの名無しさん
2013/06/04(火) 10:54:47.98つhttp://www.moug.net/tech/exvba/0040020.html
0052デフォルトの名無しさん
2013/06/04(火) 11:23:49.39ありがとう、見てみます。
005341
2013/06/04(火) 11:29:31.40>>49
> OSもOfficeも試用期間で試せばいいじゃん
Windows 8は購入しました。
Office 2013の評価版を試そうとしたのですが、プロダクトキーがXXXXX-XXXXX-XXXXX-XXXXX-XXXXXと
なってしまい、評価できない状態です。ググると同様の状況になっている人が居るみたいですが、現状では
解決できていません。
いっそ製品版を買ってしまおうかと悩んでいるところです。
> ここの回答で動くっていわれても当てにならないよ
もっともなご意見です。
ただ、求めているのは「動かない組み合わせ」です。
もちろん、「動く組み合わせ」の情報もうれしいです。
0054デフォルトの名無しさん
2013/06/04(火) 12:39:12.39って言って欲しかったんじゃないの?
005541
2013/06/04(火) 12:56:23.95動作しないよという情報があって、その組み合わせを私の方で手に入れることができれば、
アドインを修正しようかなと思いたったのが質問した動機です。
このアドインは数年前にsourceforge.jpで公開済みのもので、今回動かないよという情報が
なければ、このまま放置しようと思っています。
0056デフォルトの名無しさん
2013/06/04(火) 18:24:29.440057桃白白 ◆9Jro6YFwm650
2013/06/04(火) 18:52:40.26/ ,' 3 `ヽーっ
l ⊃ ⌒_つ
`'ー---‐'''''"
0058デフォルトの名無しさん
2013/06/06(木) 13:30:21.670059デフォルトの名無しさん
2013/06/06(木) 17:45:17.850060デフォルトの名無しさん
2013/06/06(木) 17:47:01.10桃白白さんのようなコード書きたいんですが、お勧めの書籍・HPありますか?
0061デフォルトの名無しさん
2013/06/06(木) 17:52:25.16お勧めできるような書籍で学習すれば、桃白白のようなコードにはならない。
よってそのような書籍はない。
0062デフォルトの名無しさん
2013/06/06(木) 18:17:37.67あれだけパイパンのコード叩かれても、アレを目指すというのは理解できない。
パイパンのようなコードを書けるような書籍は確かに>>61の言ってるとおり無いと思う。
因みにC言語だけどダメダメなコードを診断して最終的に直すといったサイトならここ。
ソースコードが分からなくても、何でダメなのかという解説を読めばだいぶ参考になると思う。
Cプログラミング診断室
http://www.kojima-cci.or.jp/fuji/mybooks/cdiag/
0063デフォルトの名無しさん
2013/06/06(木) 18:29:21.09マジレスすると、ExcelのオブジェクトをVBAで操作する系の書籍一冊と、Code Complete。
「ExcelのオブジェクトをVBAで操作する系」はいっぱいあって絞れないんで、Amazonで検索して
目次見たりレビューコメント見たり、書店に行って選んだりして。
パイパンのコードに書けてるのは、Excelのオブジェクトの知識と、Code Completeで語られるような内容。
0064デフォルトの名無しさん
2013/06/06(木) 18:31:33.81正:パイパンのコードに欠けてるのは
0065桃白白 ◆9Jro6YFwm650
2013/06/06(木) 18:47:10.150066デフォルトの名無しさん
2013/06/06(木) 18:54:15.99確かにCode Completeはまともなことが書かれてるけど一冊6000円以上するし、
かなり分厚い本だから一から全部読もうという気になれないんだよな。
しかも上下巻で二冊w
値段が値段なんで個人で買うにはかなり勇気がいると思う。
気になったテーマだけ読むようにすればいいけど・・・
0067デフォルトの名無しさん
2013/06/06(木) 18:59:12.030068デフォルトの名無しさん
2013/06/06(木) 19:40:30.240069デフォルトの名無しさん
2013/06/06(木) 21:22:34.780070デフォルトの名無しさん
2013/06/06(木) 21:42:17.69実際試してないからわからないけど、Kingsoft OfficeのVBA対応版なら見れるんじゃないかと。
体験版にはVBA対応してないようだから購入する(5000円程度)必要はあるみたい。
0071デフォルトの名無しさん
2013/06/06(木) 21:42:39.10Windows版のLibreOfficeなら普通に開いて編集できますよ
そのまま動くことは期待できませんが
当方 Win7プロ+LibreOffice3.6.4.3です
0072デフォルトの名無しさん
2013/06/06(木) 21:52:26.190073デフォルトの名無しさん
2013/06/06(木) 22:35:48.360075デフォルトの名無しさん
2013/06/07(金) 16:23:50.160076デフォルトの名無しさん
2013/06/07(金) 21:07:36.72よう、seikyouサン
0077デフォルトの名無しさん
2013/06/07(金) 23:54:47.640078デフォルトの名無しさん
2013/06/08(土) 00:12:11.90はじめましてマ板、ム板、vipにて、uy( うゆ )というコテハンをやっている者です
13〜18歳のおにゃのこ(新品)にだったら手取り足取りRubyとかlambdaとか、世界の真理についても教えれるけど?
何作りたい? CGI? ゲーム? それともプログラミングだけおぼえたい?
2chでは漏れの事、バカにする奴多いけど、マジで技術高いよ?あと運動も得意です。昼でも、夜でも。
ちなみに両利き、好きなアニメは禁書目録、10万3000冊の技術書を読んでスペルインターセプトできるようになるのが夢
好きな語尾は「 ――だよ? 」 と 「 ――みさかはみさかは 」 です
[email protected]
22♂です
メールまってます
あと、部屋こんなんばっかりなので
こういうの大丈夫な子歓迎
http://www.geocities.jp/c_zelos/soto/heya0.jpg
自分でコスプレしようかなぁ・・・なんて本気で考えてた頃もあったんだけど、女装mixiコミュとかみたら、「やべぇwwwww」って思って
一線は越えない事にした、なのでイベントとかで何でもいいのでコスプレして一緒に周ってくれる人も、すごくすごく募集中です
ここ2年くらい実は、技術高めるべく超研究者モードだったのでイベント関係殆どいってないから今年はいっぱいいきたなぁ(**^^)キミと
スレ汚し、失礼しました
0079デフォルトの名無しさん
2013/06/08(土) 14:31:40.420080デフォルトの名無しさん
2013/06/08(土) 14:33:38.29VBEを起動するボタンを作ることは出来ないのでしょうか?
0081デフォルトの名無しさん
2013/06/08(土) 15:03:28.50どういうことを試してできなかったのか教えてください。
0082デフォルトの名無しさん
2013/06/08(土) 15:20:39.01まだ何も試してませんが
出来ると言うことですねありがとうございます。
0084デフォルトの名無しさん
2013/06/08(土) 22:20:48.800085デフォルトの名無しさん
2013/06/09(日) 13:23:03.770086デフォルトの名無しさん
2013/06/09(日) 13:37:08.24ユーザー設定→新規作成でボタンの土台(空白の小窓)ができる
その状態でメニューからVBEエディターの箇所を呼び出し該当項目を土台までドラック&ドロップしたらカスタムボタンの完成
0087デフォルトの名無しさん
2013/06/09(日) 14:59:19.33コピーペースト中にデータ型を変換することはできないのでしょうか?
Range("a1").Select
Selection.Copy
Range("a2").Select
ActiveSheet.Paste
CDate ??
0088デフォルトの名無しさん
2013/06/09(日) 15:01:57.02range("a2").value = range("a1").value
0089デフォルトの名無しさん
2013/06/09(日) 15:07:02.77なるほど、すばらしくシンプルですね!ありがとうございます。
0090デフォルトの名無しさん
2013/06/09(日) 17:47:06.22カスタムボタンなんて用意しなくてもツールバーに「コードの表示」ボタンあるし。
0091デフォルトの名無しさん
2013/06/09(日) 22:02:40.46一般的な業務で導入できる範囲内で
VBAよりもさらに高速かつ膨大な計算が可能な計算ソフトはあるのでしょうか?
0092デフォルトの名無しさん
2013/06/09(日) 22:17:46.32VBA は計算ソフトじゃないぞ。
とりあえずエスパーすると、答えはデータベースかな?
0093デフォルトの名無しさん
2013/06/09(日) 22:26:05.200094デフォルトの名無しさん
2013/06/09(日) 22:47:53.22VBA関係ないし
0095デフォルトの名無しさん
2013/06/09(日) 22:50:55.19このスレ的にはワークシートにデータ貼り付けてExcelの機能でソートさせるんじゃないの
0096デフォルトの名無しさん
2013/06/09(日) 22:54:35.850097デフォルトの名無しさん
2013/06/09(日) 23:10:26.43DBですかDB2とかオラクルとか覚えることを考えただけでも大変ですね(笑)
VBAで粘りますわw
0098デフォルトの名無しさん
2013/06/09(日) 23:31:13.10A→Zのボタンを押すだけです。
0099デフォルトの名無しさん
2013/06/09(日) 23:57:48.78膨大なのが計算処理等なのかデータなのかにもよるが
Accessでいいんじゃね?
0100デフォルトの名無しさん
2013/06/10(月) 00:25:33.23Accessで扱えるデータ件数はExcelの行数と同じ認識なんだが。
どういう意味でAccessをすすめてるのかな?
もしかしてSQLが使えるから?
0101デフォルトの名無しさん
2013/06/10(月) 00:44:30.92Accessって行数に制限ないでしょ
0102デフォルトの名無しさん
2013/06/10(月) 00:55:43.66http://office.microsoft.com/ja-jp/access-help/HA010341462.aspx
0103100
2013/06/10(月) 05:21:03.40>>102
プロジェクトでDBのデータをAccess2003にコピーしようとしたら、
フィールドの制限だけじゃなくデータ件数も制限があってコピーできなかった経験がある。
その時いろいろ試してみたらデータ件数、フィールドともにExcelの行数、列数と変わらなかった。
この時の印象はAccessはなんちゃってデータベースなんだなぁと。
最近のバージョンは使ったことないから分からないけど、>>102のリンクを見る限り、
データ数の制限は固定じゃなくて、テーブルのサイズで制限してそう。
0104デフォルトの名無しさん
2013/06/10(月) 06:47:18.3365536行、256列ってことだよな
ありえない、やり方がおかしいかったんだろ
0105100
2013/06/10(月) 07:09:17.93元となるデータの内容にもよるだろうし、あくまで実際に起きたことに対する印象。
たまたまテーブルサイズの制限に引っかかったデータ件数ががExcelと同じになっただけかもしれない。
少なくてもAccessのデータ格納件数には固定じゃないにしろ限りがあることは確か。
データ件数が無制限というようになるとSQL Serverとの位置づけがよくわからなくなる。
Accessでデータベースを全てカバーできるならSQL Serverいらなくなるわけだし。
0106デフォルトの名無しさん
2013/06/10(月) 07:44:48.70いい加減黙れ
0107桃白白 ◆9Jro6YFwm650
2013/06/10(月) 07:56:30.37そうだね。桃白白クラスになるとバブルソートを優雅に実装しちゃうね。
0108デフォルトの名無しさん
2013/06/10(月) 08:24:45.56そりゃまあ、何事にも限度つーもんがあるから、制限はあるだろうけど、Excel と同じなわけない。
あと、Access と SQL-Server は仕組みが全然違うから、仮に機能が全く同じでも SQL-Server の存在意義がなくなったりしない。
0109デフォルトの名無しさん
2013/06/10(月) 09:30:57.69制限あったかどうか知らんが
0110デフォルトの名無しさん
2013/06/10(月) 10:28:34.33ソートはどの書籍で学べばいい?
0111デフォルトの名無しさん
2013/06/10(月) 11:19:08.25【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】 はい
【4 VBAでの回答の可否】 可
シート上のデータを元にcsvファイルを作りたいんですが
一部で "A","B","C" というようなデータが存在します。
chr(34)とchr(44)を&していけば出来るのですがsplitの逆で
一連の文字列を "(文字列)", で繋ぐような関数や方法って
ありませんか?
よろしくお願いします。
0112デフォルトの名無しさん
2013/06/10(月) 11:27:12.67Excelの機能でCSVで保存しろ
0113111
2013/06/10(月) 11:54:17.971行全て固定文字列の部分はそのまま Write #n "A","B","C" で
良いのですがセルを参照した変数を含む行は一旦文字列変数
にセットしてからWriteしようかと考えています。
"A","B","C","(セルA列)","D"
strText=chr(34)&"A"&chr(34)&chr(44)・・・
write #n strText
この文字列変数に固定文字列をセットする方法でわざわざchr
で繋がなくても良い方法があるのではないかと思って探してい
ます。よろしくお願いします。
0114デフォルトの名無しさん
2013/06/10(月) 12:04:16.46それで動くならいいじゃん
0115桃白白 ◆9Jro6YFwm650
2013/06/10(月) 12:09:10.93こんなこと書いたら桃白白また怒られるかもしれないけれども、もう怖くて
震えながら返信文章を書いてるけれども、関数作っちゃったら?
strText = CM(DQ("A"), DQ("B"), DQ("C"))
write #n strText
Function DQ(s)
DQ = Chr(34) & s & Chr(34)
End Function
Function CM(ParamArray a())
CM = Join(a, Chr(44))
End Function
0116111
2013/06/10(月) 12:22:13.28>それで動くならいいじゃん
君とは分かり合えそうに無いな。
知らないなら無理にレスしなくて結構ですよ(^o^;
>115
返信ありがとうございます。
つまりSplitの逆は無いって事なんですかね?
配列に入れてゴリゴリ回しておきますわ。
0117桃白白 ◆9Jro6YFwm650
2013/06/10(月) 12:50:32.86>つまりSplitの逆は無いって事なんですかね?
せやな。
0118デフォルトの名無しさん
2013/06/10(月) 13:23:16.80> つまりSplitの逆は無いって事なんですかね?
Splitの逆はJoinだけど?
0119デフォルトの名無しさん
2013/06/10(月) 14:12:14.32join(array("a","b","c"),"")
とやるのが一つの定石。
ただ、実際測るとまちまちだよ
0120デフォルトの名無しさん
2013/06/10(月) 14:49:24.17Chr(34)、Chr(44)をあえて使う理由がよくわからんね。
strText=chr(34)&"A"&chr(34)&chr(44)・・・
って書くより
strText="""A"",""B""," & (セルのデータ) & ・・・
のほうが直感的に分かりやすいんだけどw
更に「"""A"",""B"","」をConstステートメントにすればコードはすっきりすると思う。
0121デフォルトの名無しさん
2013/06/10(月) 15:54:19.01趣味の問題じゃね?
俺的には""""のが気持ち悪い。
もし自分で組むならchr(&h22)だけどな。
ASCIIコードを10進で扱うのは気持ち悪い
反論は認めるw
0122デフォルトの名無しさん
2013/06/10(月) 16:11:24.230123デフォルトの名無しさん
2013/06/10(月) 16:32:51.93趣味の問題というより、可読性の問題かな。
見ただけでどういう文字を示すのか分かるのはどっちだ?
chr(&h22)
,
chr()でコード書いたとして書いた当時はどういう文字か分かっているからいいけど、
一週間、一か月たってから見直した時にchr(&h22)を見てすぐ文字が思い出せるとは思えないし。
しかもchr(&h22)なんて書くとASCIIコードの指定間違いだってあるだろうからバグ対策にもなる。
今回たまたまダブルクオーテーションが入っているから「"」→「""」という記述になるだけで
何が書かれているのか、何を書こうとしているのか意図が読み取りやすいと思う。
0124デフォルトの名無しさん
2013/06/10(月) 16:35:02.21いつまで続けるつもり?
0125デフォルトの名無しさん
2013/06/10(月) 16:39:25.92個人的には桃白白方式に一票。
0126デフォルトの名無しさん
2013/06/10(月) 17:04:01.90join(array( ... ),""",""")
0127桃白白 ◆9Jro6YFwm650
2013/06/10(月) 17:09:49.98____
/ ⌒ ⌒ \
./( ―) ( ●) \
/::⌒(_人_)⌒::::: |
| ー .|
\ /
0128デフォルトの名無しさん
2013/06/10(月) 17:10:52.43元々データが配列に格納されているんだったらJoinでいいと思うけど、
Joinするためだけに配列にデータを格納するのは微妙な気がする。
0129111
2013/06/10(月) 17:18:40.85JOINってのがあるんですね。
検索キーが下手で見つけられませんでした。
うろ覚えでSplitの逆はUnionだと思って調べてました。
Union使えね〜と思って質問させていただきました。
ありがとうございました。
0130桃白白 ◆9Jro6YFwm650
2013/06/10(月) 17:31:15.49そんなことないっしょ。データ構造を変換してよしなにやっちゃうんだから
超絶スマートっしょ。これこそVBAの真髄っしょ。
0131デフォルトの名無しさん
2013/06/10(月) 18:10:23.67join(array("a","b","c"),"") ←>>119から引用
"""a",""b"",""c"""
うーん。下のほうがシンプルかな。文字数少ないし。
上だとJoinの仕様を知っている必要がある。
"a"、"b"、"c"のデータが可変で配列に格納されてるならまだしも
"a"、"b"、"c"のデータが可変なのか、配列に格納されているのか明確じゃないわけで。
これのためだけにarrayにデータを突っ込む処理を作りたくはないなぁ。
後者だと一行で書けるし、見た目どういうデータを作ろうとしているか理解できるしスマートだと思うけど。
ベタ書きは結構嫌われるけど、こういう場合はありだと思う。
0132デフォルトの名無しさん
2013/06/10(月) 18:24:39.640133デフォルトの名無しさん
2013/06/10(月) 18:26:01.71ソースの読みやすさの話は個人の主観が多すぎるので話したい人は別スレ立ててやってくれ
0134デフォルトの名無しさん
2013/06/10(月) 19:02:39.81>>111の質問が悪かったのか、回答者の知識や読解力が低かったのか、途中の盛り上がりが謎な一日でした。
0135桃白白 ◆9Jro6YFwm650
2013/06/10(月) 19:25:55.71その話とは全然関係ないし、Excel VBAとも全然関係ないことなんだけどさー、
桃白白前から気になってることがあるんだけど、聞いていい?聞いちゃだめ?聞いていい?
0136デフォルトの名無しさん
2013/06/10(月) 19:30:18.36アルゴリズム関連の本を漁ればいくらでも。
0137デフォルトの名無しさん
2013/06/10(月) 19:33:53.05聞くな。察しろ。
0138デフォルトの名無しさん
2013/06/10(月) 19:38:46.51つまりExcel VBAの質問ならば。
0139桃白白 ◆9Jro6YFwm650
2013/06/10(月) 19:46:26.44Excel VBAとは全然関係ないの。>>134とは関係あるといえば関係あるし
関係ないといえば関係ないの。聞いていい?聞いちゃだめ?聞いていい?
0140デフォルトの名無しさん
2013/06/10(月) 19:52:06.53聞くな。察しろ。
0141桃白白 ◆9Jro6YFwm650
2013/06/10(月) 20:05:19.36>>140
そうなんだ、やっぱり>>134は桃白白のことを・・・そんな桃白白まだ心の準備が・・・
0142デフォルトの名無しさん
2013/06/10(月) 20:12:51.60聞いていい?と聞いてるくせになんなん
お前そろそろNGに入れるぞお前お前お前
0143デフォルトの名無しさん
2013/06/10(月) 20:48:43.78配列について質問してもいいですか?
0144デフォルトの名無しさん
2013/06/10(月) 20:49:54.51いいかげんにしろパイパン
0146桃白白 ◆9Jro6YFwm650
2013/06/10(月) 20:56:05.60なんかごめん、桃白白が許可出すようなことじゃないけど質問していいと思うよ。
桃白白にわかることだったら桃白白もお答えしちゃうよ。
0147143
2013/06/10(月) 20:57:05.07Dim arr As Variant
arr = r.Value
test = arr(2, 2)
End Function
これ動いちゃうんですがまともなコードですか?
一般にRangeをArrayに変換する場合は
要素ごとに多重のfor文まわしてコピーするべきですか?
0148デフォルトの名無しさん
2013/06/10(月) 21:14:05.030149143
2013/06/10(月) 21:22:04.020150デフォルトの名無しさん
2013/06/10(月) 21:25:44.57これは動いちゃいけないコードなのか?
0151デフォルトの名無しさん
2013/06/10(月) 21:28:14.88普通のコード。
て、言うか Range の範囲が大きいときは For で回すのは遅いから、一括代入するのは定石。
0152143
2013/06/10(月) 21:39:46.08これ本当に配列になってますか?
また、
LBound(arr,1)
UBound(arr,2)
などがRangeのサイズと一致していることは保証されますか?
0153デフォルトの名無しさん
2013/06/10(月) 21:43:06.83まともなコードとは思えない。
配列の考え方は良いと思うけど、コール元でB2を含まない範囲を指定されるとエラーになる。
ret = test(ThisWorkbook.Worksheets("Sheet1").Range("A1"))
0154デフォルトの名無しさん
2013/06/10(月) 21:44:05.600156デフォルトの名無しさん
2013/06/10(月) 21:51:09.52VarType( ) とか TypeName( ) とかで確認しなよ。
0158デフォルトの名無しさん
2013/06/10(月) 22:04:27.070159デフォルトの名無しさん
2013/06/10(月) 22:14:36.33聞けよ。はやく。
0160デフォルトの名無しさん
2013/06/10(月) 22:21:47.98何でこういう質問になるのか背景が全く分からん。
>>143の環境では配列になってないってこと?
0161デフォルトの名無しさん
2013/06/10(月) 22:42:51.191個だけだったら配列じゃなくて値返すでしょvalue。
0162デフォルトの名無しさん
2013/06/10(月) 22:56:19.000163デフォルトの名無しさん
2013/06/11(火) 00:58:52.40Private Sub Workbook_Open()
Sheet1.OLEObjects.Add(ClassType:="Forms.SpinButton.1", _
Left:=10, Top:=10, Width:=10, Height:=10).Select
☆ Sheet1.Range("A1").Activate ←ここで424エラーが出ます
End Sub
Sheet1のSelectionChangeでボタンを弄る処理をしているので
☆の時点でボタンを弄ろうとしてエラーになってるのかなと考えたんですが、
ファイルを開いた時だけシート内を弄れる場所ってWorkbook_Openしかない気がするし、何か解決策ないでしょうか
0164デフォルトの名無しさん
2013/06/11(火) 01:53:38.72Sheet1.Activate
Range("A1").Select
じゃないの?(適当
0165デフォルトの名無しさん
2013/06/11(火) 02:17:29.88同じエラーが出ます
0166デフォルトの名無しさん
2013/06/11(火) 03:27:08.142007で試したけどエラーになんかならんぞ
エラーになってるのはSelectionChangeの方だな
そっち修正するか、EnableEvents=Falseしてみるとか
0167デフォルトの名無しさん
2013/06/11(火) 03:32:29.84Range.Valueが、対象セルが複数の場合に配列で値返す
これの公式なドキュメントないですか
>>143の聞きたかったのはこういう事だろ
0168デフォルトの名無しさん
2013/06/11(火) 05:42:19.52可読性の問題を趣味の問題と言い切るのはいかがなものかと。
カンマと聞いて「,」より「chr(&h22)」をイメージするのは個人の主観云々というより文字認識がぶっ壊れてるだろw
0169桃白白 ◆9Jro6YFwm650
2013/06/11(火) 09:38:48.07Range.Valueで配列の中に配列が入るようなことはないと思うけれども、
仮にあったとしてもディープコピー。
Sub test()
Dim a As Variant
a = Array(Array("A"))
Dim b As Variant
b = a
Debug.Print "a " & VarPtr(a(0)(0))
Debug.Print "b " & VarPtr(b(0)(0))
End Sub
a 276005496
b 276009912
0170デフォルトの名無しさん
2013/06/11(火) 10:32:55.22> Range.Valueが、対象セルが複数の場合に配列で値返す
> これの公式なドキュメントないですか
それはヘルプに載ってるだろ。具体的なフォーマットとか、セル結合の場合どうなるとかは無いにせよ。
0171デフォルトの名無しさん
2013/06/11(火) 10:45:02.57タイトル「Range.Value プロパティ」
要点抜粋「複数のセルが含まれているときは、値の配列が取得されます」
ttp://msdn.microsoft.com/ja-jp/library/microsoft.office.interop.excel.range.value(v=office.11).aspx
0172デフォルトの名無しさん
2013/06/11(火) 10:59:04.01Rangeプロパティって何ですか?っていうのと大して変わらないレベルw
0173デフォルトの名無しさん
2013/06/11(火) 13:12:40.83EXCELのVBA周りのヘルプはあんまり役に立たんわ
OFFICE ONLINEもダメ
結局MSDNかよ
0174デフォルトの名無しさん
2013/06/11(火) 13:57:34.33Excel 2000だがw
0175デフォルトの名無しさん
2013/06/11(火) 14:13:51.23ローカルヘルプ無くなったけど
0176デフォルトの名無しさん
2013/06/11(火) 15:27:53.05CSVが更新されていない時はデータの更新も行わないようにしたいのです
どのように記述すればよいでしょうか?
ttp://www.relief.jp/itnote/archives/000271.php
このあたりの最終更新日時取得が使えそうなんですが
外部ファイルに使う方法が見つからなかったのです
0177176
2013/06/11(火) 15:28:58.97Win7でExcel2010です。2003で動かせる内容だと助かります。
0178デフォルトの名無しさん
2013/06/11(火) 15:41:53.99CSVファイルの内容を変更せずに上書き保存した場合は、最終更新日だけ更新されるだけでデータは更新されないけど
こういうパターンでも更新するってことなのかな?
個人的にはCSVを取得してセルの内容を更新するのができているのなら、
CSVを取得した値とセルの内容の値を比較して異なっていたらセルの内容を更新すれば確実だと思うけど。
0179デフォルトの名無しさん
2013/06/11(火) 15:46:30.56>>1★5を読んだ上での質問ということかな?
「2003で動かせる内容だと助かります。」ってあるのはコードを書けってこと?
0180デフォルトの名無しさん
2013/06/11(火) 16:02:05.47ファイルのハッシュを保存しとけ
0181176
2013/06/11(火) 16:11:28.94ありがとうございます。内容的にはCSV内の変更が反映されればいいので
ハッシュを保存というのは良さそうです
>>179
すいません、VBA超初心者なもので検索するにもワード自体が分からず
○○をやれと言われた時それが2007以降でしか動かないかが判断できないので
そのための注釈でした。キーワードさえ分かればググるなりしようと思ってます
0182桃白白 ◆9Jro6YFwm650
2013/06/11(火) 16:53:34.52田中さんがファイルが最後に更新されたときの日付と時刻を取得する手段を
教えてくださってるからこれ使ったらいいと思うの桃白白。
最終更新日付を取得して保存しといてさ、比較するの。
Office TANAKA - Excel VBA FileSystemObject[DateLastModifiedプロパティ]
http://officetanaka.net/excel/vba/filesystemobject/file04.htm
0183176
2013/06/11(火) 17:44:06.71ファイル内容を変更しMD5が変わってもElse以下の部分を実行していないようです。
どの辺が良くないのかご教示いただけないでしょうか…
Private Sub Workbook_Open()
Dim MD5 As New MD5
〜(中略)〜
Set ws = Worksheets("WSWS")
ws.Activate
Range("B1").Select
ChDir ThisWorkbook.Path
MD5.FilePath = "aaaa.csv"
Debug.Print MD5.MDFile
If Range("PreMD5") = MD5.MDFile Then
Range("PreMD5") = MD5.MDFile
Else
〜(実行内容)〜
Range("PreMD5") = MD5.MDFile
End If
End Sub
0184デフォルトの名無しさん
2013/06/11(火) 17:50:46.22> Debug.Print MD5.MDFile
の下に
Debug.Print Range("PreMD5").Value
を入れて、同じか違うか再度確認。
同じ場合は、MD5算出ロジックがおかしい可能性あり。
違う場合は、ブレークポイントを設定してステップ実行し、本当に意図しない動きをしているか確認。
0185デフォルトの名無しさん
2013/06/11(火) 17:57:46.82Dim MD5 As New MD5
じゃなくて
Dim hoge As MD5
Set hoge = New MD5
じゃね?
更にいうと型と同じ変数名は、混乱するから別名にしたほうがいいかと。
0186デフォルトの名無しさん
2013/06/11(火) 18:06:08.87md5クラスのソース見せてみ
間違ってるかもしれんで
0187デフォルトの名無しさん
2013/06/11(火) 18:07:24.46> Dim MD5 As New MD5
これは問題ない。
インスタンス化はこの行で行われるのではなく、初めて使用した箇所まで遅延する。
> 更にいうと型と同じ変数名は、混乱するから別名にしたほうがいいかと。
それには同意する。
0188185
2013/06/11(火) 18:13:23.29指摘どもです。
手元の環境で
Dim MD5 As New MD5
が問題ないことを確認できました。
>>183
混乱させるようなレスしてごめんなさい。
0189176
2013/06/11(火) 18:38:54.71テストの結果、MD5算出は正常に行われているようです。
ファイル内容を変更するたびきちんと変化します。
さらにブレークポイントで止めても、変更した時はElse以下、していない時はIfの内容が実行されています
ということは比較、もしくは実行内容以下のソースがおかしいということになるでしょうか
実行内容自体はテストして問題がなかったものですが
>>185
いえいえ、変数や定義の意味が分かるのでとても勉強になります。
とりあえずfMD5という名前に直しておきました。
0190176
2013/06/11(火) 18:43:41.85ありがとうございます。まさにピッタリの内容なんですが
上のものを安易な考えで最終更新日時に置き換えてみたところ
Set FSO = CreateObject("Scripting.FileSystemObject")
FSO.GetFile("aaaa.csv").DateLastModified ←
で実行時エラー438(オブジェクトはこのメソッドまたはプロパティを〜)が出ます。
このやり方も気になるので調べてみたいと思います
0191デフォルトの名無しさん
2013/06/11(火) 18:52:29.89FileSystemObjectを使用するときは
VBEのメニュー「ツール」→「参照設定」で「Microsoft Scripting Runtime」を有効にする必要がある。
Visual Basic で FileSystemObject を使用する方法
http://support.microsoft.com/kb/186118/ja
0192176
2013/06/11(火) 19:31:21.58改行コードが変わったため実行内容が動作していなかっただけでした…
本番環境で実行した結果意図した通りの挙動になりました
>>191
FSOも動作するようになりました!
皆さんありがとうございました
0194デフォルトの名無しさん
2013/06/11(火) 23:35:32.35そんなサンプルコードがある場所を教えてください!
0195デフォルトの名無しさん
2013/06/11(火) 23:47:16.81http://blog.livedoor.jp/qoozy/archives/52551291.html
0196デフォルトの名無しさん
2013/06/12(水) 00:19:41.99Excel VBA 文字 テキストボックス 作成
でググった結果のTOPのやつじゃん
ggrksとはこの事か
0197デフォルトの名無しさん
2013/06/12(水) 00:49:17.300198デフォルトの名無しさん
2013/06/12(水) 06:59:56.12有料のでも良いのでもしありましたら教えて頂けると助かります
0199デフォルトの名無しさん
2013/06/12(水) 07:16:05.66> TeXコードをExcel方眼紙にコンパイル
意味不明、スルー推奨。
0200デフォルトの名無しさん
2013/06/12(水) 07:34:08.730201デフォルトの名無しさん
2013/06/12(水) 07:54:29.040202デフォルトの名無しさん
2013/06/12(水) 08:35:20.12Application.OnTime Now(), "Hoge"
End Sub
ブックを保存して終了する時に↑が実行されるとHogeの前にWorkbookのDeactivateイベントが発生してしまいます
Deactivateの前にHogeを実行するか、Deactivate内でHogeを発生させない処理をさせることはできないでしょうか?
Excel2000です
0203デフォルトの名無しさん
2013/06/12(水) 08:59:27.50保存用のマクロ組めばいいんじゃね?
Sub ブック保存()
Application.OnTime Now(), "Hoge"
'ブック保存の処理を追加
End Sub
0204デフォルトの名無しさん
2013/06/12(水) 09:11:06.19Runじゃダメなのか?
0205202
2013/06/12(水) 19:39:23.46hogeは保存後に編集を継続する時用の処理が書いてあります
なのでhogeは保存後に実行したいのです
しかし保存自体をExcelに任せず自分で作るとなると、挙動のパターンが多くて俺にはちょっと手に負えないので…
>>204
Runは別のブックしか呼び出せないと思ってたのですが違いましたっけ?
0206203
2013/06/12(水) 20:25:05.91何かよくわからなくなってきた。
保存後にHogeを実行したいがために、 Workbook_BeforeSaveのところで
Application.OnTimeを使っているということ?
>>202の質問の内容とかコードを見る限り保存前にHogeを実行したいものと思ってた。
ちょこっと動作確認してみた程度けど、単純な保存じゃないよね?
普通の上書き保存だとDeactivateイベント発生しなかった。
1.マクロが格納されているファイルを編集
2.編集後、即ブックを閉じる操作を実行。
3.上書き保存しますか?というメッセージ出力。
4.「はい」を選択するとDeactivateイベント発生。
5.Hogeの実行。
これだとすると
Sub 作業終了処理()
'ブック上書き保存
'Hogeの実行
'ブックを閉じる
End Sub
でできるような気がするけどどうでしょう?
0207デフォルトの名無しさん
2013/06/12(水) 20:32:07.88同様にActivateも必要かもだけど
0208デフォルトの名無しさん
2013/06/12(水) 20:36:56.970209デフォルトの名無しさん
2013/06/12(水) 20:39:59.51http://www.officelabo.net/vbaskill/vba19.html
0210デフォルトの名無しさん
2013/06/12(水) 20:44:11.38OnTimeを使ってる理由はその通りです
説明を端折ってしまいましたがOnTimeの前に保存直前の処理があります
教えてもらった方法では「名前を付けて保存」を選択された場合にフォローできなくなってしまうのです
弄ってて気付いたんですが、ブックだけ閉じるとDeactive→hogeの順なのにExcelを閉じるとhoge→Deactiveになるんですね
とりあえず>>207でもう一度考えてみます
0211デフォルトの名無しさん
2013/06/12(水) 20:52:13.40へー
0212デフォルトの名無しさん
2013/06/12(水) 21:12:21.73保存してそのあと処理したいなら、自分で保存処理書いて(イベントはキャンセルして)
そのあと自分でやりたい処理呼べば良いだけだと思うが
0213デフォルトの名無しさん
2013/06/12(水) 21:59:38.52そうしてない今でも全然手に追えてないよね
別の方法を考えたほうがいいんじゃない
0214デフォルトの名無しさん
2013/06/12(水) 22:09:17.15上書きならSaveメソッド呼ぶだけ
新規でもファイル名決めてSaveAsメソッド呼ぶだけだろ
0215デフォルトの名無しさん
2013/06/12(水) 22:20:53.040216デフォルトの名無しさん
2013/06/12(水) 22:36:42.95Deactiveにこだわる理由がわからん。
終了処理とからめたいのならBeforeCloseを使うのが本筋と思うが?
ExcelまたはBookを終了したときの動作仕様があいまいなのも良くない。
必ず保存させたいのなら「未保存ならBeforeCloseでCancel」という手もある。
0217202
2013/06/12(水) 23:10:42.29保存させたいわけではなく、保存して終了する時と保存するだけの時の処理を分けようとしてこうなりました
BeforeCloseはブックを閉じようとした時に出る「保存しますか?」の直前に呼ばれるので、そこでキャンセルされた場合、BeforeCloseの終了処理が無駄になります
Deactivateなら実際にブックが消える時に呼ばれるので都合がいいと思いましたがそうでもなかった
0218デフォルトの名無しさん
2013/06/12(水) 23:22:43.15それおかしくね?
0219デフォルトの名無しさん
2013/06/12(水) 23:25:39.65ユーザーフォームを使って選択させたり、ボタンで処理を分けたりするほうが無難な気がする。
0220デフォルトの名無しさん
2013/06/12(水) 23:26:31.45deactiveならブック切り替えただけでも走るし
0221デフォルトの名無しさん
2013/06/12(水) 23:28:55.78それやると結構で保存ボタンを別に置くのが無難だと思うよ
0222デフォルトの名無しさん
2013/06/12(水) 23:30:35.45多分こうかと
保存後にしたい処理がある
だがクローズ時の保存は対象外としたい
0223デフォルトの名無しさん
2013/06/12(水) 23:57:53.00.Netがインスコできない環境のためMFCで.Netの動作を再現しようとして血反吐を吐いた覚えがある
結局はフラグを山のように用意して条件分岐しまくりになった
0224202
2013/06/12(水) 23:59:25.04Private Sub Workbook_BeforeSave
保存前に必要な処理
Ontime 保存後の処理
End Sub
Private Sub 保存後の処理
ただの保存や、閉じようとしてキャンセルした場合等、続けて編集する場合に備えた処理
End Sub
閉じる時の保存確認で「いいえ」だった場合はBeforeSave通らないし何もする必要がないので問題なし
「キャンセル」だった場合も上の処理で問題なかった
「はい」だった場合、本来「保存後の処理」は不要ですが、あとは閉じるだけだし保存にも編集にも影響しないので放置することにしました
しかし「保存後の処理」の前にDeactivateが発生してしまい…
やっぱり上で言われてる通りOntime使ってるのが間違いな気がします
>>221
使う人に独自の操作をさせたくなかったので…
>>222
そんな感じです
長くなってすいません
0225デフォルトの名無しさん
2013/06/13(木) 00:13:30.88まずDeactivateを勘違いしてると思われ
保存後の処理とやらが、ほんとに保存後にやる必要があるのかどうかも疑問は残るが
どっちにしても>>212で解決する気がするが
終了時の(新規)保存で処理したくないならBeforeCloseでフラグ立てときゃ良い話
0226デフォルトの名無しさん
2013/06/13(木) 00:27:18.06Private Sub Workbook_BeforeClose(Cancel As Boolean)
If Me.Saved = False Then
If MsgBox("保存後の処理ってのやる?", vbYesNo) = vbYes Then
Me.Save '上書き保存してbeforesave走る
Else
Me.Saved = True '変更なかったことにして続行。早い話が閉じる
End If
End If
End Sub
0227デフォルトの名無しさん
2013/06/13(木) 00:38:17.03それだとどっちにしても閉じてるけど、>>224によれば
閉じようとして、セーブするか聞かれてキャンセルしたら
実際はセーブされていないが、保存後の処理とやらは実行するらしい
0228デフォルトの名無しさん
2013/06/13(木) 00:42:54.53yesnocancelで聞いてvbcancelの時にそれ呼ぶ感じなのかね。
もう寝る。
0229202
2013/06/13(木) 00:59:31.94すいません、間違ってますねこの説明>>224
いいえもキャンセルもbeforesaveは通らないですね
「保存後の処理」は、保存だけして編集を続行する時のための処理です
0230デフォルトの名無しさん
2013/06/13(木) 01:24:55.88だから>>212,225ではダメなのかと
0231デフォルトの名無しさん
2013/06/13(木) 07:46:59.75保存後に処理を実行するって、保存後にワークシートを操作する処理を実装しているのなら
結局もう一度ブックを保存する必要あるし。
今のままだとブック保存→マクロ実行→ブック保存・・・の永久ループになりそうな気がする。
本当にブック保存時にマクロを実行しなければいけないのか、
ブック保存時じゃなくて単にマクロを実行するだけじゃだめなのか。
作業者に対する配慮ももちろん必要だけど、配慮しすぎて作りが非常に難しくなったら
それこそ本末転倒かと。
0232デフォルトの名無しさん
2013/06/13(木) 18:56:44.54保存イベントの自作は避けたかったのです
>>231
保存後の処理は引き続き編集する時だけ必要なもので、終了する時は不要です
終了するだけだから放置しても問題なかろうと思ってそのままにしてました
しかし俺も結局>>231さんの言うところに落ち着きました
OnTime使うのは危うい
融通効かそうとして無理してた感じなので、周りがAfterSaveを使える環境になるまでここら辺の処理は保留することにします
色々ありがとうございました
0233デフォルトの名無しさん
2013/06/14(金) 10:20:24.79それがいい
あんまガチガチの入力フォーム使わされるとストレスたまる
0234デフォルトの名無しさん
2013/06/14(金) 13:53:03.24「保存した後の処理」とやらを説明した方が最適解にたどり着く可能性があったりするかもしれない。
0235デフォルトの名無しさん
2013/06/14(金) 17:19:17.21ガチガチの入力フォームってどんなもの?w
マクロなんだからガチガチしなくていいと思うけど。
0236デフォルトの名無しさん
2013/06/14(金) 18:10:54.600237デフォルトの名無しさん
2013/06/14(金) 20:07:49.82End Sub
ここのTargetが複数だった場合、行をひとつひとつ見ていくにはどうすればいいのでしょうか?
Range.Rowだと一番上のしか見れないみたいです
0238桃白白 ◆9Jro6YFwm650
2013/06/14(金) 20:17:49.060239デフォルトの名無しさん
2013/06/14(金) 20:23:46.03Target云々じゃなくてRangeプロパティの使い方が分からないってことだと思う。
MSDN見ても分からなければ諦めたほうがいい。
Range プロパティ
http://msdn.microsoft.com/ja-jp/library/microsoft.office.interop.excel.range_properties(v=office.11).aspx
0240桃白白 ◆9Jro6YFwm650
2013/06/14(金) 20:26:00.06それ.NETやで
0241デフォルトの名無しさん
2013/06/14(金) 20:27:11.27For Each使ってひとつずつ処理していきました
ありがとうございました。
0242デフォルトの名無しさん
2013/06/14(金) 23:39:59.27Range("A
の次はどのように記述すれば良いのでしょうか。
0243桃白白 ◆9Jro6YFwm650
2013/06/14(金) 23:47:50.70Range("A" & x)
0244デフォルトの名無しさん
2013/06/14(金) 23:47:53.43ファイルを開いたときに編集に必要なボタンを作成
保存するときにボタンを削除
保存後、編集を継続する場合は削除したボタンを再度作成
最初からシート上にボタンを用意しておいた場合、マクロ無効でファイルを開くとそのボタンが見えてしまうのが嫌でこういう仕様にしようとしました
メインの処理と関係ない部分なので、これだけの為に保存用フォームを作ったりするのはちょっとどうかと思ったのでそれは避けたかった次第
0245デフォルトの名無しさん
2013/06/14(金) 23:52:58.76ありがとうございます。
0246デフォルトの名無しさん
2013/06/15(土) 01:18:04.87顔文字にみえた
0247デフォルトの名無しさん
2013/06/15(土) 02:37:39.94ん?保存用フォーム作ると思ってた?
確かにそれはやりたくないわw
0248デフォルトの名無しさん
2013/06/15(土) 04:04:27.86相変わらず乱暴な書き方するなぁ。
0249デフォルトの名無しさん
2013/06/15(土) 05:07:57.18保存用フォーム作れなんて誰か言ってたか?
0250デフォルトの名無しさん
2013/06/15(土) 05:15:56.82>>243でも出来なくはないが、Cells(x, 1)と書く方が一般的
必要ない文字列連結はしない方が良いし、マクロでセル位置してするときにA1形式はあんまり使わない
0251デフォルトの名無しさん
2013/06/15(土) 06:58:25.80> A行のx列目を指定したい時
A行?
0252デフォルトの名無しさん
2013/06/15(土) 08:44:01.70例えです
0253桃白白 ◆9Jro6YFwm650
2013/06/15(土) 09:37:47.11そんなことない、桃白白はこれでいいか何度も見直して慎重に、まるで
ジェンガのように必要な所だけを残して返信したの。
これがそのときの桃白白。これでジェンガしたの。乱暴とはほど遠いっしょ。
http://garakuta.chips.jp/blog/ga/yonekura.jpg
0254デフォルトの名無しさん
2013/06/15(土) 11:01:43.44いや普通にRangeも使うだろ
この状況でどうしてもCellsにこだわるなら、せめてCells(x, "A")と書く
その方が可読性が高い
0255デフォルトの名無しさん
2013/06/15(土) 12:32:49.780256デフォルトの名無しさん
2013/06/15(土) 13:39:16.070257デフォルトの名無しさん
2013/06/15(土) 13:57:26.090258デフォルトの名無しさん
2013/06/15(土) 14:20:03.930259デフォルトの名無しさん
2013/06/15(土) 14:48:24.36ほぅ、糞コード書くヤツが考えそうなアホなネタだなw
0260桃白白 ◆9Jro6YFwm650
2013/06/15(土) 15:11:43.73そんなことないだろ
0261デフォルトの名無しさん
2013/06/15(土) 15:27:13.28Dictionaryオブジェクトとか色々使って更に可読性を上げたくなる。
(Cells(x, "伝票番号")、みたいな)
0262デフォルトの名無しさん
2013/06/15(土) 15:52:47.040263デフォルトの名無しさん
2013/06/15(土) 16:55:57.91すまん、何が言いたいのか全く分からんw
0264桃白白 ◆9Jro6YFwm650
2013/06/15(土) 17:12:02.93桃白白はわかったけど?
0265デフォルトの名無しさん
2013/06/15(土) 17:26:50.52糞コードを書くヤツ同士波長が合うわけかw
0266桃白白 ◆9Jro6YFwm650
2013/06/15(土) 17:37:59.24自分がわからないのは、回りが全部糞だからだ、みたいなね。
0267デフォルトの名無しさん
2013/06/15(土) 17:48:14.61デバッグもやりにくいし
さすがに最初の方なら暗記してても、2文字とか3文字の時はどうすんの
結局はRange("ABC" & x)とかCells(x, "ABC")って書くしかないだろ
0268デフォルトの名無しさん
2013/06/15(土) 17:51:42.920269デフォルトの名無しさん
2013/06/15(土) 18:04:35.26メニュー「ツール」→「オプション」→全般タブの設定の「R1C1 参照形式を使用する」を有効にすれば
数字のままで充分対応できるんだが何か?
> 結局はRange("ABC" & x)とかCells(x, "ABC")って書くしかないだろ
痛すぎて笑えないレベルってか釣りか?
0270デフォルトの名無しさん
2013/06/15(土) 19:17:37.900271デフォルトの名無しさん
2013/06/15(土) 19:36:35.42何度も痛い目に合わされたが、
すっかり飼い慣らしてしまえば何千行のコードを書こうがこっちのもんだね。うひっひっひ!
0272デフォルトの名無しさん
2013/06/15(土) 19:39:53.820273デフォルトの名無しさん
2013/06/15(土) 19:44:15.640274デフォルトの名無しさん
2013/06/15(土) 21:15:38.96その方が可読性が高いのには同意する
0275デフォルトの名無しさん
2013/06/15(土) 23:21:27.59列に対して削除・挿入・移動かけるような奴だと、
後でコード見ることになる人のことを考えて、
列ラベルから列番号を取得できるような仕組みを入れる。
0276デフォルトの名無しさん
2013/06/15(土) 23:49:49.35よそでやれ
0277デフォルトの名無しさん
2013/06/16(日) 03:45:47.19>>275
同意。
でも、Cells(x, "A")は痛いw
0278デフォルトの名無しさん
2013/06/16(日) 08:57:30.390279デフォルトの名無しさん
2013/06/16(日) 09:56:20.940280桃白白 ◆9Jro6YFwm650
2013/06/16(日) 10:07:50.00仕事くれ
0281デフォルトの名無しさん
2013/06/16(日) 10:45:17.24これ以上に無いぐらい便利だけど
0282デフォルトの名無しさん
2013/06/16(日) 10:52:06.500283デフォルトの名無しさん
2013/06/16(日) 11:36:45.58Windowsの話ですので。
0284デフォルトの名無しさん
2013/06/16(日) 11:43:36.74手段と目的を混同しない
0285デフォルトの名無しさん
2013/06/16(日) 11:56:45.77窓でもできるやん
0286デフォルトの名無しさん
2013/06/16(日) 13:10:58.80可能か不可能かの話してるわけでもないし
0287デフォルトの名無しさん
2013/06/16(日) 13:25:16.22コマンドならささっとキーボードをコンマ数秒触るだけでできるやん
0288デフォルトの名無しさん
2013/06/16(日) 13:34:27.610289デフォルトの名無しさん
2013/06/16(日) 13:40:24.88間違いがあるなら指摘しなきゃ
0290デフォルトの名無しさん
2013/06/16(日) 13:51:32.240291デフォルトの名無しさん
2013/06/16(日) 14:14:30.37大量のデータを複雑な分析にかけるのにExcel使うんか?
0292デフォルトの名無しさん
2013/06/16(日) 14:19:31.190293デフォルトの名無しさん
2013/06/16(日) 14:21:38.24こういうやつがコード書くと最初の目的とはかけ離れた糞コード書いて自己満足に浸ってるんだろw
0294デフォルトの名無しさん
2013/06/16(日) 14:26:40.68撲滅したいんだよ
いわば敵情視察ってやつさ
0295デフォルトの名無しさん
2013/06/16(日) 14:29:19.330296デフォルトの名無しさん
2013/06/16(日) 14:44:32.55一生安月給で社畜やってろ
反論で「年週××万ですが」「起業してますが」とか嘘つくの禁止な
0297デフォルトの名無しさん
2013/06/16(日) 14:46:39.220298デフォルトの名無しさん
2013/06/16(日) 15:13:39.99逆に今のExcel大好きなオジサンたちが優秀に見えるか?
0299デフォルトの名無しさん
2013/06/16(日) 16:01:58.610300デフォルトの名無しさん
2013/06/16(日) 16:50:33.89過程より結果だよ
極めて効率悪い方法で残業しながらでも結果を出した人が評価されるんだから
そりゃ同じ事を素早くやればもっと評価されるだろうけど、
ここでExcelの使い方に文句言ってるやつらは間違いなく途中経過にこだわりすぎて結果を出せてない
0301デフォルトの名無しさん
2013/06/16(日) 16:58:40.27Excel設計書という悪しき文化が日本のIT業界を衰退させてるんだ
0302デフォルトの名無しさん
2013/06/16(日) 17:20:01.900303デフォルトの名無しさん
2013/06/16(日) 17:23:09.960304デフォルトの名無しさん
2013/06/16(日) 17:24:30.790305デフォルトの名無しさん
2013/06/16(日) 17:25:55.68Excelでお遊びすると脳がやられるんだな
0306デフォルトの名無しさん
2013/06/16(日) 19:45:05.31頼むからこっちのスレを盛り上げて下さい。
VBA資産を駆逐するにはどうすればいいか
http://kohada.2ch.net/test/read.cgi/prog/1324790161/
0307デフォルトの名無しさん
2013/06/16(日) 20:01:20.350308デフォルトの名無しさん
2013/06/16(日) 22:02:41.72Microsoftからおまえ使いすぎだろって!警告が来たりしないのでしょうか?
0309デフォルトの名無しさん
2013/06/16(日) 22:24:31.54ようするにexcelが使いこなせないだけなんだが
0310デフォルトの名無しさん
2013/06/16(日) 22:49:48.77とあるブックにシートが2枚あって、
そのブックのショートカットがパスAとパスBにそれぞれ有った場合、
パスAから開かれた場合は、起動時にシートAを、
Bの場合はシートBを。
見たいな子としたいんだけど。
引数付けてショートカット軌道した場合、エクセルどうやって受けとんだ?
VBSなら簡単なのにな。
0311桃白白 ◆9Jro6YFwm650
2013/06/16(日) 22:55:14.23桃白白それわかんないから、桃白白にはふらないで(しのび声)
0312デフォルトの名無しさん
2013/06/16(日) 22:59:17.90人間考える事を止めると終わりだぞ。考えれ。
俺も考える。
お前も考えれ。
↓
0313片山博文MZパンク ◆0lBZNi.Q7evd
2013/06/16(日) 23:04:53.610314デフォルトの名無しさん
2013/06/16(日) 23:17:41.91なんとなくググってみたらこんなん出てきたけど
ttp://chaichan.lolipop.jp/vbtips/VBMemo2006082401.htm
0315デフォルトの名無しさん
2013/06/16(日) 23:19:22.41ほうほう・・・
0316デフォルトの名無しさん
2013/06/16(日) 23:39:19.99VBS経由で引数的な状態で渡す事ができる。
という事やな。
よっしゃやってみるわ。
0317デフォルトの名無しさん
2013/06/16(日) 23:47:58.33俺ならバッチファイルでやるわ
echo "引数" > param.txt
start hoge.xls
0318デフォルトの名無しさん
2013/06/17(月) 05:44:05.69バッチファイルの書き換え或いは複数のバッチファイルを残す必要ありそうだし、これもなんか面倒。
何もしない対応が一番楽な気がする。
シートの数が多いブックで起動時に毎回スクロールするのが面倒というのなら
左下のシートスクロール用のスクロールバーで右クリックすればシートのリストが表示されて選択できる。
引数でシートを指定するとしてもシートの数が多かったら覚えきれないだろうし。
仮にシート数が少ないのならそれこそシートのタブ?で選択すればいいわけで。
0319デフォルトの名無しさん
2013/06/17(月) 15:15:53.140320デフォルトの名無しさん
2013/06/17(月) 15:43:52.590321デフォルトの名無しさん
2013/06/17(月) 16:34:02.66しかし新たに、2010へ持っていくと「インデックスが有効範囲にありません」というエラーが発生する
問題が起こりました。2003環境では問題なく動作します。
ttp://officetanaka.net/excel/vba/error/execution_error/error_9.htm
などを見ると変数の型の問題か名前関連の扱いなどがあやしい?と思い
色々と試してはみたのですが、その度別のエラーが発生し
自分では手に余りそうです。
どこが問題なのか、どうすれば良いのかご指摘いただけないでしょうか。
MD5チェックのモジュールはこちらのものを使わせていただいています。
ttp://www.taru-net.jp/excel/excelVBA/MD5/readme.html
ソースは以下の通りです(長いので分けます)
0322デフォルトの名無しさん
2013/06/17(月) 16:34:37.84Dim buf As String
Dim tmp As Variant, tmp2 As Variant
Dim i As Long
Dim fMD5 As New MD5
Set csvws = Worksheets("抽出")
csvws.Activate
Range("A1").Select
ChDir ThisWorkbook.Path
fMD5.FilePath = "cashbook.csv"
'Debug.Print fMD5.MDFile
If Range("PreMD5") = fMD5.MDFile Then 'PreMD5・NowMD5=セルの範囲(名前)
Range("PreMD5") = fMD5.MDFile
Else
Open "cashbook.csv" For Input As #1
Line Input #1, buf
Close #1
tmp = Replace(buf, """", "")
tmp = Split(tmp, vbLf)
For i = 0 To UBound(tmp) - 1 '---(1)
tmp2 = Split(tmp(i), ",")
Cells(i + 1, 1).Resize(1, UBound(tmp2) + 1).value = tmp2
Next i
Range("PreMD5") = fMD5.MDFile '取得したファイルハッシュを記述
Cells.Select
Cells.EntireColumn.AutoFit
End If
End Sub
0323デフォルトの名無しさん
2013/06/17(月) 17:06:38.85「インデックスが有効範囲にありません」というエラーが発生したときに
コードのどこで止まってるのかな?
まずはそこから判断していかないことには何とも言えない。
0324323
2013/06/17(月) 17:21:52.39因みにRange("PreMD5")ってあるけど、Excel2010のブックのセルの範囲に"PreMD5"の名称は定義されてるのかな?
0325デフォルトの名無しさん
2013/06/17(月) 17:23:43.23失礼しました。
Range("PreMD5") = fMD5.MDFile
のあたりで止まります。名前は「抽出」ワークシート内の1セルに定義してあります。
0326デフォルトの名無しさん
2013/06/17(月) 17:31:54.15シートの指定を省略してるから別のシートのセルを参照している可能性があると思う。
試しに下記のコードでエラーが出なければRangeのシートの指定をする必要がある。
ThisWorkbook.Sheets("抽出").Range("PreMD5") = fMD5.MDFile
0327デフォルトの名無しさん
2013/06/17(月) 18:12:37.53ファイルを開いたときに必要なボタンを作成
ファイルを閉じたときに上記ボタンを削除
じゃだめなの?
0328桃白白 ◆9Jro6YFwm650
2013/06/18(火) 02:25:28.16ReDimでマイナス値を指定したときも
「インデックスが有効範囲にありません。」というエラーが発生するの。
MD5.MDFileを呼ぶとfncSpritFileが呼ばれる。
fncSpritFileに次の記述がある。
Open Me.FilePath For Binary As #inputFn
ReDim valArray(LOF(inputFn))
Get #inputFn, , valArray
Close #inputFn
ReDim Preserve valArray(UBound(valArray) - 1)
LOFはファイルの長さを取得する関数。
ファイルの長さが0のときはこうなる。
Open Me.FilePath For Binary As #inputFn
ReDim valArray(0)
Get #inputFn, , valArray
Close #inputFn
ReDim Preserve valArray(-1)
なので、cashbook.csvが無効なパスであるか、
またはcashbook.csvのサイズが0なんじゃなあい?
0329デフォルトの名無しさん
2013/06/18(火) 04:45:13.49ありがとうございます。それだと「アプリケーション定義またはオブジェクト定義のエラーです」
となります。
>>328
一応パスは通っていると思いますし、サイズもきちんとデータが入っており2003では普通に動きます。
Ifを外した際には想定通りデータの読み込みまで行きます。が、その後Line Input #1, buf
で「データがこれ以上ありません」というエラーが発生します。
バージョンが違うだけでこれだけ挙動って変わるんですね…
0330デフォルトの名無しさん
2013/06/18(火) 06:55:57.57ごめんなさい。
こっちでもダメかな?
csvws.Range("PreMD5") = fMD5.MDFile
怪しいところはRange("PreMD5")、fMD5あたりだから問題の個所を切り分けしたいところ。
0331デフォルトの名無しさん
2013/06/18(火) 11:51:04.89もともと問題のあるコード書いてたんだろ
まずエラーの出てる行を特定しろよ。xxあたりとか話にならん
Range("PreMD5") = fMD5.MDFile の行は二つあるがどっちでエラーなんだ?
その前のIfではエラーにならんのか?だったらその行を
Range("PreMD5").Value = "test"
MsgBox VarType(fMD5.MDFile)
MsgBox fMD5.MDFile
に変えたらどうなる?
どうでもいいけど、Range("PreMD5")って何回か出てくるが、どれかはNowMD5の間違いじゃないのか?
あとオープンのファイル番号は決め打ちするなとかデフォルトプロパティは省略するなとか
0332デフォルトの名無しさん
2013/06/18(火) 16:21:41.41何をそんなに焦ってるんだ?w
質問者が焦ってるならともかく、お前が焦る必要なんてこれっぽっちもないわけだが。
質問者だってこれにつきっきりっていう暇人でもないんでしょ。
質問者のレスがくるまでゆっくりしようや。
0333デフォルトの名無しさん
2013/06/18(火) 16:40:18.73うざ
0334桃白白 ◆9Jro6YFwm650
2013/06/18(火) 18:47:49.66桃白白はこれが怪しいとにらんでるの。桃白白の涼しげな目線の先には
これがあるの。
ChDir ThisWorkbook.Path
・ファイルのサイズが0なら、>>323のエラーや>>329のエラーが発生する。
・ファイルが存在しなければサイズが0のファイルが作られる。
・ファイルパスが違っていればファイルが存在しない。
・ThisWorkbook.PathがExcel2003とExcel2010とで違う値を返すならファイルパスが違う。
っていうふうに理屈付けができるのよね。
___
/::::::::::::::::\
/:::::─三三─\ 桃白白を信じるのです……。
/:::::::::<○>三<○>.\
/⌒)⌒)⌒.:::::::::: (__人__) :::::: \ /⌒)⌒)⌒)
| / / /.. ` ⌒´ | (⌒)/ / / /,,
| :::::::::::(⌒) / ゝ ::::::. .........._
| ノ \ /_ /´ ヽ
ヽ / ヽ / /0 .',
| | {o ::}
': /
ヽ、___,.,/
0335デフォルトの名無しさん
2013/06/18(火) 21:26:23.97ただし、UACの影響受けたりはするだろうけど
もしファイルパス回りなら、アクセス権かUNCパスかUACの影響だと思うが
あとはカレントディレクトリとカレントドライブが理解できてないか
0336デフォルトの名無しさん
2013/06/18(火) 21:29:39.530337デフォルトの名無しさん
2013/06/18(火) 21:33:48.690338デフォルトの名無しさん
2013/06/18(火) 22:24:43.30ブック.シート.セルでセルの指定ができることが分かってActivateやSelectは必要ないって理解したよ。
0339デフォルトの名無しさん
2013/06/18(火) 22:29:57.31今はもう記録したまんま
動けばいい
0340デフォルトの名無しさん
2013/06/19(水) 00:26:02.500341桃白白 ◆9Jro6YFwm650
2013/06/19(水) 10:26:34.14あるところにトムさんという人がいました。
トムさんはある日モデルルームに見学に行きました。
モデルルームには必要最小限の物しか置いてありませんでした。
実際生活するには不便だろうと思いました。しかし、いつのまにかモデルルームに見とれていました。
物が少ないからこそ美しさと気品が際立つことに気づきました。
そのことを後世に語り継ぎたいと考えました。これが、足るを知る者はとむということわざの由来です。
桃白白は日本古来に生存していたであろうトムさんに思いを馳せ、VBAを使うの。
0342デフォルトの名無しさん
2013/06/19(水) 17:43:04.84お笑い番組の放送作家を目指した方が才能を生かせると思う。
とりあえずケータイ大喜利あたりに投稿したらどうだろ
0343デフォルトの名無しさん
2013/06/20(木) 01:44:18.28コード書くのはバブルソートの方がわかりやすいんですが、
スピードが全然違うんで悩んでます
0344デフォルトの名無しさん
2013/06/20(木) 02:02:16.76Excelのソート機能をVBAで使えばいいのに何で面倒な方を採用したいのかよくわからん。
0345デフォルトの名無しさん
2013/06/20(木) 03:00:40.84いいって何?
君の質問は質問になっていないよ
0346デフォルトの名無しさん
2013/06/20(木) 03:38:56.88何を悩んでいるのかな?どっちが「いい」のか、アンケート?
0347桃白白 ◆9Jro6YFwm650
2013/06/20(木) 13:39:32.03桃白白はバブルソートがいいと思う。クイックソートは安定ソートじゃないし、
実装が難しいし、甘えだと思う。それを補って余りあるほどに処理速度が大事なんですって
ときじゃないかぎり使うべきじゃない。使わないべき。バブルソートを使うほうがいい。
バブルソートで実装して処理速度が問題になってからそこではじめてクイックソートを検討するべき。
とりあえず関数わけとけば問題ない。
Sub Bubble(a, l, u)
……
End Sub
Sub Sort(a, l, u)
Bubble a, l, u
End Sub
0348デフォルトの名無しさん
2013/06/20(木) 13:59:52.580349デフォルトの名無しさん
2013/06/20(木) 14:40:01.69コード云々以前の話だな。
0350デフォルトの名無しさん
2013/06/20(木) 15:16:29.840351デフォルトの名無しさん
2013/06/20(木) 15:46:48.40バブルソートって安定だっけ?
0352デフォルトの名無しさん
2013/06/20(木) 15:58:53.41なぜそんな疑問を抱くのか
0353デフォルトの名無しさん
2013/06/20(木) 16:29:15.080354デフォルトの名無しさん
2013/06/20(木) 16:57:17.96Excel VBA質問スレなのにExcelのソート機能を使わないのはこのスレの住民に喧嘩売ってるの?w
0355デフォルトの名無しさん
2013/06/20(木) 18:21:12.22>>1
但し、VBA無しでも出来ることだが、あえてVBAでやりたいって物に関してはOK。
わざわざVBAでソート書く理由はわからんが
0356デフォルトの名無しさん
2013/06/20(木) 18:34:24.49> わざわざVBAでソート書く理由はわからんが
・シートに一旦値を設定する時間が大きい場合
・データ→シート→ソート→データというコードを書きたくない場合(めんどくさい)
・単純な数値や文字列ではないものをソートするとき
などなど。
0357デフォルトの名無しさん
2013/06/20(木) 18:38:24.260358デフォルトの名無しさん
2013/06/20(木) 19:03:47.75VBA有り(今回はソート機能)でも出来ることだが、あえてVBAでやりたいってことでしょ。
全然意味合いが違う。
Excel VBAにソート機能が無いということなら>>1に当てはまると思うけど。
>>343が何であえてソートを書かなければいけないのか理由を明確にする必要はあると思う。
0359デフォルトの名無しさん
2013/06/20(木) 19:06:41.26ひょっとしてVBAは日本の生産力を下げるためにMicrosoftが投入した情報兵器なのではないか
0360デフォルトの名無しさん
2013/06/20(木) 19:31:17.25>・シートに一旦値を設定する時間が大きい場合
→今どきのPCでそんなに時間がかかるのか?
画面更新を停止させるだけでも充分対策になると思う。
>・データ→シート→ソート→データというコードを書きたくない場合(めんどくさい)
→データの格納は変数にしてもセルにしてもやることは大差ない。
単純に変数をセルに置き換えればいいだけだし。
ソート処理は一行で書けるわけで、こっちの処理のほうが楽。
どこがめんどくさいのかよくわからん。
>・単純な数値や文字列ではないものをソートするとき
→数値や文字列じゃないもののソートって例えばどんなものがある?
普通は数値、文字列、日付程度だと思うけど。
0361デフォルトの名無しさん
2013/06/20(木) 19:38:28.77他のスクリプトを使い快適なプログラミングライフを過ごしましょう
0362デフォルトの名無しさん
2013/06/20(木) 19:54:16.190363デフォルトの名無しさん
2013/06/20(木) 19:54:50.73○数字の羅列だけでシート名が構成されているシート
0364デフォルトの名無しさん
2013/06/20(木) 20:29:29.60> >>356
> >・単純な数値や文字列ではないものをソートするとき
> →数値や文字列じゃないもののソートって例えばどんなものがある?
> 普通は数値、文字列、日付程度だと思うけど。
プログラム内でソートするときは、key-valueペアをkeyでソートとか、ユーザ定義体をとか
オブジェクトをとか。
0365デフォルトの名無しさん
2013/06/20(木) 21:42:55.000366デフォルトの名無しさん
2013/06/21(金) 11:45:58.55> >・シートに一旦値を設定する時間が大きい場合
> →今どきのPCでそんなに時間がかかるのか?
> 画面更新を停止させるだけでも充分対策になると思う。
元データの構造にも寄るが、セル一つ一つに値をコピーせざるを得ない場合、10要素を持つ一万個の
データをコピーするのに必要な時間を計ってみる。
さて、何秒かかった?
この処理時間を無視できるほど巨大な計算量なロジックの一部なら、別にこれでもいいが。
Sub foo()
Dim i As Long
Dim j As Long
Application.ScreenUpdating = False
For i = 1 To 10000
For j = 1 To 10
Cells(i, j).Value = rnd()
Next
Next
Application.ScreenUpdating = True
End Sub
0367デフォルトの名無しさん
2013/06/21(金) 12:22:31.99配列使おうよ。
0368デフォルトの名無しさん
2013/06/21(金) 12:45:51.35>>366は、元データが10個の要素を持つユーザ定義体/インスタンスの場合を想定した処理。
10個の配列を用意して、そこにデータを入れてからシートに貼り付けてもいいが、めんどくさいでしょ。
さらに、ソート後、元データの構造に詰め替える処理もいる。
だったら、直接ソートしたのがシンプルだし速い。
0369デフォルトの名無しさん
2013/06/21(金) 12:48:40.62(ユーザ定義体/インスタンスのswapのコードも必要な場合もあるが)
Public Function fooCompare(obj1, obj2) As Boolean
fooCompare = (obj1.key > obj2.key)
End Function
的な。
0370桃白白 ◆9Jro6YFwm650
2013/06/21(金) 13:11:17.571まんこのデータとなるとヴァブルソートじゃ厳しいかもしれんね。
0371デフォルトの名無しさん
2013/06/21(金) 13:41:51.78それ時間かかってる場所ソートと関係ないからなんかズレてんじゃ?>>367の配列使おうってこういう事でしょ普通に。
Sub test()
Dim arr As Variant, row As Long, col As Long
arr = Range("A1:J10000").Value '←普通にセルの値を配列に入れて変更してから戻せばいい
'ReDim arr(1 To 10000, 1 To 10) 'セル経由しないなら自分で作ればいい
For row = 1 To 10000
For col = 1 To 10
arr(row, col) = arr(row, col) + Rnd() '個々の値になんかしたいらしい
Next
Next
Range("A1:J10000").Value = arraySort(arr, 1, xlAscending) ’かくにん
End Sub
'ソート結果を返す関数。中身はシートに転記してソート
Function arraySort(arr As Variant, fieldIndex As Long, order As XlSortOrder)
Dim sht As Worksheet, rng As Range, fieldCount As Long, recordCount As Long
fieldCount = UBound(arr, 2)
recordCount = UBound(arr, 1)
Application.DisplayAlerts = False
With Worksheets.Add()
Set rng = .Range(.Cells(1, 1), .Cells(recordCount, fieldCount))
rng.Value = arr
rng.Sort .Cells(1, fieldIndex), order, Header:=xlNo
arr = rng.Value '詰め替えとかしないで贅沢に入れ替える
.Delete
End With
Application.DisplayAlerts = True
'byRefだけど一応戻り値としてもいけるようにしとく。関数だしね。新しい配列作って詰めてもいいね
arraySort = arr
End Function
0372デフォルトの名無しさん
2013/06/21(金) 13:46:19.24今のパソコンなら100マンコでも大丈夫
スペックが上がりすぎて初心者には違いがわかりにくくなった
マイコン時代はアルゴリズムが悪いと何時間とか何日って単位で遅くなったかんな
0373デフォルトの名無しさん
2013/06/21(金) 13:46:54.52普通の2次元配列だから、いわゆるレコードやフィールドを並べ替えるみたいなのは自作めんどいよ。
1次元配列だったらよそのひっぱってくればいいけど。
0374デフォルトの名無しさん
2013/06/21(金) 13:50:04.31お前は何がしたいんだ
0375デフォルトの名無しさん
2013/06/21(金) 13:51:10.91http://www.asahi-net.or.jp/~ef2o-inue/vba_o/sub05_800.html
http://www.asahi-net.or.jp/~ef2o-inue/vba_o/Excel/05_SORT_TEST.zip
ここでクイックソートとバブルソートの比較やるとぜんぜん違うんだが
バブルソートは22秒用してしかも画面がフリーズする
0376デフォルトの名無しさん
2013/06/21(金) 13:55:37.74> ここでクイックソートとバブルソートの比較やるとぜんぜん違うんだが
誰か違いが無いなんて言ってるか?
0377360
2013/06/21(金) 17:50:43.29>元データの構造にも寄るが、セル一つ一つに値をコピーせざるを得ない場合、10要素を持つ一万個の
>データをコピーするのに必要な時間を計ってみる。
この条件、現実的じゃないと思う。
データをコピーと言っているけどその元データはどこに格納されてる?
それとソートした結果は最終的にどこに出力される?
元データが格納されると推定される場所
・DB
データ取得時にSQLでソートできる。
→Excel VBAでのソートの処理必要なし。
Excelにデータを反映する処理は必要だけど、サンプルコードだとほんの数秒。
・テキストファイル
カンマ区切りであれ、タブ区切りであれExcelで直接読み込める。
→ファイルオープン処理のみで済む。
ソートはExcelのソート機能をVBAで実装。
・Excelのシート
既にデータ格納済みなのでデータの読み込み不要。
更にいうと
0378桃白白 ◆9Jro6YFwm650
2013/06/21(金) 18:12:58.32要素数が100万個だとそれをバブルソートするのに必要な時間は22秒の1万倍で
足かけ3日っすね。いまでもまだ厳しいな。バブルソート厳しいな。
0379デフォルトの名無しさん
2013/06/21(金) 18:15:30.12> この条件、現実的じゃないと思う。
例えば、バイナリデータを直接ユーザ定義体の配列に読み込んだときとかですかね。
1秒1データで、データ要素が10個あるものを1日分(86400個)読み込んで処理するとか。
シートに展開してExcelの機能を使わないのであれば、VBAでやるなって話もありますが。
> データをコピーと言っているけどその元データはどこに格納されてる?
配列やCollection、独自コンテナなど。
> それとソートした結果は最終的にどこに出力される?
直接、配列やCollection、独自コンテナをソートします。
0380379
2013/06/21(金) 18:17:43.09データを保持して扱った方が便利なときがあったりします。
0381デフォルトの名無しさん
2013/06/21(金) 19:11:14.550382デフォルトの名無しさん
2013/06/21(金) 19:36:36.09DLLにCOMとしてのインターフェイスが生成される
RegAsmでレジストリ登録
(ビルド時にやってくれる)
構成ファイルはもちろんExcel.exe.config
ランタイムバージョンがどうなるか不明
(他ブックが似たようなことしてた場合とか)
0383デフォルトの名無しさん
2013/06/21(金) 19:50:01.81そのクラスをCOM対応にする
http://msdn.microsoft.com/ja-jp/library/ms173184(v=vs.100).aspx
とか参照
C#の方でEXCEL操作する方が楽だと思うぞ
0384360
2013/06/21(金) 20:02:48.98配列とかCollectionとか独自コンテナとかってあくまで処理に都合のいいデータの型であってデータとは違う。
配列とかCollectionとか独自コンテナに格納する元のデータはどこに格納されてるのかと言っているんだけど。
データ処理後の配列とかCollectionとか独自コンテナに格納されたデータは最終的にどこに出力するの?
要件定義が曖昧なまま、処理ありきで話を進めてるから現実的じゃないんだよね。
0385デフォルトの名無しさん
2013/06/21(金) 20:10:36.420386デフォルトの名無しさん
2013/06/21(金) 20:14:13.18ん、だから例えばバイナリファイルが入力元とかだよ。
ソートやその他処理(例えば統計処理とかFFTとかね)をして、グラフ表示したり、
シートに出力したり、ファイルに出力したりだよ。
そこそこ大量の、単なる数値配列などではないデータ形式のデータを、オンメモリで処理すること
なんかありえないって言いたいのかなぁ。
ちょっと目的がわかりません。
0387デフォルトの名無しさん
2013/06/21(金) 20:21:47.96VBAで処理すべきかEXCELの機能で処理すべきかの論議はよそでやってくれ
0388デフォルトの名無しさん
2013/06/21(金) 20:47:43.02主張に余念の無い人が多いよねえ。
そういうことをするためのスレじゃないんだけどな。
これも一種のコミュ障?
0389デフォルトの名無しさん
2013/06/21(金) 20:57:46.400390デフォルトの名無しさん
2013/06/21(金) 21:13:23.20バイナリファイルを入力にしてグラフ表示やシート出力なら普通にExcel VBAのソート機能で充分だと思うし、
バイナリファイルを入力にしてファイル出力なら態々Excel VBAを使う意味が分からん。
>そこそこ大量の、単なる数値配列などではないデータ形式のデータを、オンメモリで処理すること
>なんかありえないって言いたいのかなぁ。
俺もよくわからなくなってきたんでもうやめるw
0391デフォルトの名無しさん
2013/06/21(金) 21:20:52.28元々開発環境に用意されているものを態々自作で作るって意味なくね?って話でしょ。
0392デフォルトの名無しさん
2013/06/21(金) 21:44:53.81なんで態々シートに転記してソートするかねって感じだな。
0393デフォルトの名無しさん
2013/06/21(金) 21:53:30.010394デフォルトの名無しさん
2013/06/21(金) 22:04:40.970395デフォルトの名無しさん
2013/06/22(土) 00:19:25.04hex2decだと余分な0が頭についていると駄目だし、
最上位ビットが符号ビットとみなされて8〜fではじまるものは負数になってしまいます。
0396デフォルトの名無しさん
2013/06/22(土) 00:38:38.340397片山博文MZパンク ◆0lBZNi.Q7evd
2013/06/22(土) 00:49:17.98負数になるときは、もっとサイズの大きい型で2の補数を求める。
0398デフォルトの名無しさん
2013/06/22(土) 00:53:52.60hが変換前の16進(文字列型)として
d = Val("&H" & h)
0399デフォルトの名無しさん
2013/06/22(土) 01:00:41.320400デフォルトの名無しさん
2013/06/22(土) 01:18:18.37できました!
ありがとうございます。
0401桃白白 ◆9Jro6YFwm650
2013/06/22(土) 02:15:48.60ヘ⌒ヽフ
( ・ω・) ドキドキ
( ∪ ∪
と__)__)
Function H2D(s As String) As Double
H2D = H2D_(s, Len(s) - 3, Len(s))
End Function
Function H2D_(s As String, i As Long, l As Long) As Double
If i = -3 Then
H2D_ = 0
ElseIf i < 1 Then
H2D_ = CDbl("&H" & Mid(s, 1, i + 3))
Else
H2D_ = H2D_(s, i - 4, l) * &H10000 + CDbl("&H" & Mid(s, i, 4))
End If
End Function
0402デフォルトの名無しさん
2013/06/22(土) 06:20:26.780403デフォルトの名無しさん
2013/06/22(土) 08:14:40.070404デフォルトの名無しさん
2013/06/22(土) 09:32:56.42しばらくそうしといてもらおう
0405デフォルトの名無しさん
2013/06/22(土) 10:02:52.210406デフォルトの名無しさん
2013/06/22(土) 12:39:48.082,30レスほどかまって欲しいんじゃないの?つまり、餌。
なので、具体的にどこがどう駄目なのかは言わない方が良いと思うよ。
0407デフォルトの名無しさん
2013/06/22(土) 12:44:26.820408桃白白 ◆9Jro6YFwm650
2013/06/22(土) 12:50:33.73見てもらえばわかるんだけれども、ぶたさんの署名が入ってるでしょ。
桃白白の正式なコードだから不備はないよ。
0409デフォルトの名無しさん
2013/06/22(土) 13:16:57.04コンパイル通らないじゃないですか
次からは気をつけてください、まったく
0410デフォルトの名無しさん
2013/06/22(土) 13:59:27.11俺ルールを押し付けるな。
0411デフォルトの名無しさん
2013/06/22(土) 14:02:05.88どこがおかしいのでしょうか。
Debug.Print H2D("01AF2158h")
0412デフォルトの名無しさん
2013/06/22(土) 14:05:25.730413デフォルトの名無しさん
2013/06/22(土) 14:12:42.150414桃白白 ◆9Jro6YFwm650
2013/06/22(土) 14:17:18.19hは16進文字列として無効なものだから動かないのが正しい動作であり、
どこもおかしくなく、すべてうまく動いている。桃白白は桃白白の名前で
あると同時に桃白白のコードのブランド名なの。
0415デフォルトの名無しさん
2013/06/22(土) 14:18:11.36自演乙
0416デフォルトの名無しさん
2013/06/22(土) 14:28:32.74ここに常駐しているような方々は使ってないのですか?
0417デフォルトの名無しさん
2013/06/22(土) 14:34:59.91この理由は
プロシージャ呼び出しを多用しすぎて少しでも怪しい呼び出し方をすると簡単にErrorを吐いてくるけど
膨大な数のGOTO命令を設置しても全く止まらない事がわかったのでgotoで書いてます。
0418桃白白 ◆9Jro6YFwm650
2013/06/22(土) 14:57:12.39桃白白はGotoを使わないな。怪しい呼び出しかたってどんな呼び出し方なの?
なんてエラーが出るの?最強の理由がよくわかんない。
0419デフォルトの名無しさん
2013/06/22(土) 15:10:17.16プロシージャ呼び捨てにして不特定多数の処理へ繋ぎたい場合とか
多用するとすぐエラーを出す
0420デフォルトの名無しさん
2013/06/22(土) 15:15:04.170421桃白白 ◆9Jro6YFwm650
2013/06/22(土) 15:15:43.57なにいってんのかよくわかんない。コード教えて。
コードが長かったらここにコード書いてそのURLを教えて。
https://friendpaste.com/
0422デフォルトの名無しさん
2013/06/22(土) 16:43:33.62そのようなコードはスパゲッティコードと呼ばれ
プログラミングの歴史の中で、止めた方がよいとされたスタイル
Gotoがスパゲッティになる理由だとされ、Gotoを使わないでも良いように
プログラムを組めるようにプログラミング言語は進化してきた
大昔の考え方でプログラム組むなら大昔の言語使ってください
0423デフォルトの名無しさん
2013/06/22(土) 17:02:02.52|\ ( 釣れたよ〜・・・)
| \ `〜〜〜v〜〜〜´
し \
゙'゙":"''"''':'';;':,':;.:.,., ヽ○ノ
~~~~~|~~~~~~~ ̄ ̄ ̄ ̄ ̄ ̄ ̄
ト>゚++<
ノ)
0424正しく動けば何でもよい
2013/06/22(土) 17:22:36.88速く書けて正確に動けばどんなコードでも良いと思う (個人じゃなくても会社でもねw)
スパゲッティーは超速く書けるしjくみかえも速く出来る。
0425デフォルトの名無しさん
2013/06/22(土) 17:45:51.30誰も手をつけられなくなるのがスパゲティコードじゃないの?(´・ω・`)
そら特定条件下や小物なら自由に書いたらいいけどもさ
0426デフォルトの名無しさん
2013/06/22(土) 17:47:47.470427デフォルトの名無しさん
2013/06/22(土) 17:55:13.61ソースを投げ捨てればいい
0428デフォルトの名無しさん
2013/06/22(土) 19:38:28.100429デフォルトの名無しさん
2013/06/22(土) 19:44:52.43後方互換シカトして新しくすると一気にExcel自体から客が逃げそうで危ないし無理。
内部的にC#のコードをVBAにコンパイルするという変態コンパイラ作るくらいしかないだろうけど、
変態すぎてやりたがらないんだろ。
0430デフォルトの名無しさん
2013/06/22(土) 19:52:12.17既に広く普及したVBAがあるからでしょ
君の思うよりもC#って普及していないよ
0431デフォルトの名無しさん
2013/06/22(土) 19:58:47.23まあ、VBA 使ってる人に C# は、ちょっと荷が重いと思ってるんだろうな。
俺も、それは正しいと思うし。
>>429
後方互換なら単に両方使えるようにすればいいだけ。
現に Excel4 マクロから移行できただろ。
そもそも、VBA にコンパイルとかは意味不明だが。
0432桃白白 ◆9Jro6YFwm650
2013/06/22(土) 20:09:29.67_,. --- 、─-- .,
,. -イ ヽー 、
/ レ /,. ,ィ / } ヽ
/ iゞァ' _,.ノ / , / /i ヽ
〈 !、 ',. - 、∠,. ノ. - 、'' /| /
ヽ ! {;;;;;;;;;.},.- 、{;;;;;;;;;;;}' i / DimもAsもない2流言語になにができる?
,. -'" ヽ / ,`ー'´〃 ヾヽー' ト、/
i / i (ゝ.,_,ィr--- く_ァ' ) ! iヽ
/´ ,. ´ ̄`ヽ/,>  ̄ ̄ / ' ノ
" / 、 `ヽ. l_)________,. '",. '" ヽ
/ 、 \ Y-' `ー '" / / / |
. ,/ 、__ \ ヽノ \__ ,. - '7 | |
. { フ>-'"\ ,. - '/ | |
.. \___ノ i 〉 `ー-‐' / / |
0433デフォルトの名無しさん
2013/06/22(土) 20:16:18.66豚さん書く時はシングルクォートしてって言いましたよね?
コンパイル通らないんです、まったく
0434デフォルトの名無しさん
2013/06/22(土) 20:39:53.890435デフォルトの名無しさん
2013/06/22(土) 20:44:17.34この業界には「明日の自分は他人」、という格言があってだな
0436デフォルトの名無しさん
2013/06/22(土) 20:46:15.81C#で書く人は少なくてもC#で書かれたソフトを使ってる人は多い
VBAを書く人は多くても、それを他人に使わせるケースは少ない
0437デフォルトの名無しさん
2013/06/22(土) 20:56:30.30> それを他人に使わせるケースは少ない
なんかさあ、こういう無意味に上から目線なのやめた方いいよ。
0438デフォルトの名無しさん
2013/06/22(土) 20:59:23.96循環参照してそうな思考回路だな
0439デフォルトの名無しさん
2013/06/22(土) 21:33:48.20Asを省略するヤツが言うセリフか?
0440デフォルトの名無しさん
2013/06/22(土) 21:37:26.040441デフォルトの名無しさん
2013/06/24(月) 01:39:25.84本?
けれど書店行っても、そういう本が並んでない・・・
0442デフォルトの名無しさん
2013/06/24(月) 01:57:44.96必要は発明の母
「コードを書く」じゃなくて「コードを書いて何をする」を考えた方がいいよ
0443デフォルトの名無しさん
2013/06/24(月) 05:40:02.27簡単な方法はC言語などほかの言語を学ぶこと
VBAだけ勉強しても役にたたないし歪んだ常識が身についてしまう
なせならVBAとC言語などでは使い手のレベルが段違いだから本やネットの情報に大きな格差がある
レベルが高い他の言語使いが書いた良い入門書を通じてプログラミングの正しい常識、作法、考え方を身につける
そうすれば二つめの言語を覚えるのはたやすい
0444デフォルトの名無しさん
2013/06/24(月) 05:45:10.9944
4 4
0445デフォルトの名無しさん
2013/06/24(月) 06:36:04.92VBAレベルでこんな質問をしてくる初心者に
ステップとしてCを勧めるとか、挫折させる気満満だなw
>>441
今の君にVBAがなぜ必要なのか、明確に言えなければ
身につけることは無理と思った方が良いよ。
0446デフォルトの名無しさん
2013/06/24(月) 08:54:06.66きれいで読みやすいコードを書きたいならこんなところかな。下3つしか俺は持ってないけど。
言語は不問。
・Code Complete
・リーダブルコード
・プログラミング作法
・Cプログラミング診断室
・きれいなコードを書くための鉄則
設計の仕方が分からないということなら、どういう本があるのかよくわからん。
自分が書いたコードと上記の本で言われている内容を踏まえて書き直ししてみて
っていうのを繰り返していけば、自然と書けるようになると思うけど、これが一番っていうのはないな。
0447桃白白 ◆9Jro6YFwm650
2013/06/24(月) 09:43:12.30参考になるかわかんないけど、桃白白はワンピースとか封神演義読んでるよ。
0448441
2013/06/24(月) 15:03:52.86以前桃白白氏が競馬好きの人に書いたコードみて感心しました。
パッとコードを設計して出せるレベルに持って行きたいです。
0449デフォルトの名無しさん
2013/06/24(月) 15:22:00.44>>448
基本は「入力」「処理」「蓄積」「出力」の4段階に分けるところから始める
現場でも基本は同じ
たとえ1行で終わるとしても、プロシージャに分けるクセを付けておいた方がいい
最初は1行で終わると思っていたことが、だんだん欲が出てきてどんどん長くなることも珍しくない
きちんと分けておけばあとで修正したくなった時に応用や再利用がしやすい
0450デフォルトの名無しさん
2013/06/24(月) 15:45:31.18> 以前桃白白氏が競馬好きの人に書いたコードみて感心しました。
おい、勘弁しろよ。
あれは糞コードだ。見習っちゃいかん。
0451デフォルトの名無しさん
2013/06/24(月) 15:46:09.790452デフォルトの名無しさん
2013/06/24(月) 16:16:38.35『プログラマの考え方がおもしろいほど身につく本 問題解決能力を鍛えよう!』
http://www.amazon.co.jp/dp/4048869558
0453デフォルトの名無しさん
2013/06/24(月) 16:19:24.410454デフォルトの名無しさん
2013/06/24(月) 16:34:49.34とりあえず5万円分本買ってきて、週30時間、月120時間を勉強時間に充てろ。
三ヶ月〜半年もすれば芽が出るだろう。
0455桃白白 ◆9Jro6YFwm650
2013/06/24(月) 18:12:47.49パコーン (Д´≡`Д) あおおぉぉぉ―――!
_, ,_ ((=====)) ← >>450
(*`Д´) __ ((⌒(⌒ ))@))
⊂彡☆(( /\ ̄ ̄し' ̄ ̄ ̄\ ))
↑  ̄ ̄ ̄ ̄| | ̄ ̄ ̄ ̄
桃白白 | |
/ \
0456デフォルトの名無しさん
2013/06/24(月) 22:14:31.130457デフォルトの名無しさん
2013/06/24(月) 22:47:46.80文法覚えたらセンスだよ後は
できるやつは新人から半年で、何年もやってきたやつらよりクールなコードを書けるようになる
0458デフォルトの名無しさん
2013/06/24(月) 23:51:17.92パッとコードを設計できる人は殆どいないと思う。
パッと書いたコードは、まずきちんと設計されてないと思ったほうがいい。
0460デフォルトの名無しさん
2013/06/25(火) 00:25:12.252 手順を元に実装方法をコメントで追記する
3 実装する
0461458
2013/06/25(火) 00:45:05.65過去に作った経験があるのならパッとできると思うけど、
初めて作るものに関しては、パッと作れないと思う。
パッと頭に浮かんだものを、いろいろ想定されるケースに対応できるのか検討や検証する必要あるし。
勿論、検討や検証の結果最初に頭に浮かんだものが妥当ということもある。
最近はチャート書く人はいないと思う。
因みに>>401でパイパンが書いたコードは>>411で変換できないと指摘されてる。
これは検討漏れの設計ミス。
本人は認めてないようだけどね。
0462デフォルトの名無しさん
2013/06/25(火) 01:18:29.130463デフォルトの名無しさん
2013/06/25(火) 01:35:05.45こういうの書いてないでプログラム組んだほうがいいよ
とりあえずデータ処理プログラムを組め
自分の持ってる本とかを管理するソフトでいい
自分で題決めて1日8時間1ヶ月やればここらのレベルにはすぐ追いつく
0464デフォルトの名無しさん
2013/06/25(火) 02:13:00.32でないと、仕様に沿った最適なコードは書けるようにならない
個人で使うようなプログラムだと、仕様適当に決めて作り始めて
プログラムの都合のいいように仕様を変えることはよくあるからな
あとは良いソースをいっぱい見る事がセンス磨く一番の方法なんだが
なかなか良いソースってのは見ないし、そもそも初心者には良いか悪いかわからないからなぁ
0465デフォルトの名無しさん
2013/06/25(火) 04:39:10.340466桃白白 ◆9Jro6YFwm650
2013/06/25(火) 05:32:28.1916進数を10進数に変換するときにhを検討するような人はムチでぶたれるべきだと思う。
0467デフォルトの名無しさん
2013/06/25(火) 05:53:23.90なぜなら仕様書にはコンパイルチェックも実行時テストも含まれないから
ひとつの歪みが全体の亀裂を生み無理に進めると簡単にクラッシュする
コーディングの前に作る詳細な仕様書は本来
一から十まで教えなきゃコードを書けない底辺土方のために作るものなんだ
0468デフォルトの名無しさん
2013/06/25(火) 06:19:48.09言い訳は見苦しい。
0469デフォルトの名無しさん
2013/06/25(火) 06:32:42.50いいソースコードは見ただけで「これだったら俺にも書けそう」と思わせるコードかな。
これってできそうでなかなかできるものじゃない。
0470デフォルトの名無しさん
2013/06/25(火) 06:36:08.90素人には判らないだろうけど
初心者くらいになれば判るだろ
0471桃白白 ◆9Jro6YFwm650
2013/06/25(火) 09:22:47.11黙れ雑魚。
0472桃白白 ◆9Jro6YFwm650
2013/06/25(火) 09:24:50.97因みに>>401でパイパンが書いたコードは>>411で変換できないと指摘されてる。
これは検討漏れの設計ミス。
本人は認めてないようだけどね。
桃白白、今日生理で機嫌悪いからこいつに粘着してやろうかな。
0473桃白白 ◆9Jro6YFwm650
2013/06/25(火) 10:28:52.91因みに>>401でパイパンが書いたコードは>>411で変換できないと指摘されてる。
これは検討漏れの設計ミス。
本人は認めてないようだけどね。
16進数を10進数に変換するコードなんだから16進数じゃないものを変換できないのはあたりまえだろw
設計したことあんのかよ?あ?
0474桃白白 ◆9Jro6YFwm650
2013/06/25(火) 10:40:34.30因みに>>401でパイパンが書いたコードは>>411で変換できないと指摘されてる。
これは検討漏れの設計ミス。
本人は認めてないようだけどね。
入力に不備があってそれを入力元に通知せずもみ消すのが妥当な設計ってどんな設計?
入力元に通知しても入力者はそれを理解できないだろうってとき?それがやさしさなの?
知らないふりをするのが処理を依頼された側の義務だと思量されるとき?それがオザワデザインだとでもいうわけ?
0475桃白白 ◆9Jro6YFwm650
2013/06/25(火) 10:45:20.93/::::ヽ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;)
|::::::::::/ ヽヽ
|::::::::::ヽ ........ ..... |:|
|::::::::/ ) (. .||
i⌒ヽ;;| -=・=‐ .‐=・-.|
|.(. 'ー-‐' ヽ. ー' |
ヽ. /(_,、_,)ヽ |
|. / ___ .| < あどうも
∧ヽ ノエェェエ> |
/\\ヽ ー--‐ /
/ \ \ヽ. ─── /|\
r―n|l \ ` ー‐ ' .// ,/ ヽ
0476桃白白 ◆9Jro6YFwm650
2013/06/25(火) 10:52:37.42>>448
パッとコードを設計できる人は殆どいないと思う。
パッと書いたコードは、まずきちんと設計されてないと思ったほうがいい。
16進数の変換でhを検討するようなバカがわかったようなことをいってんじゃねえよ
0477桃白白 ◆9Jro6YFwm650
2013/06/25(火) 10:54:41.82..--‐‐‐‐‐‐‐‐---..,
(;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::\
r‐-、 ,...,, // ヽ::::::::::|
:i! i! |: : i! // ..... ........ /::::::::::::|
! i!. | ;| || 、 , \::::::::|
i! ヽ | | |.-=・‐. ‐=・=- |;;/⌒i
ゝ `-! :| |'ー .ノ 'ー-‐' ,) |
r'"~`ヾ、 i! .| ノ(、_,、_)\ ノ
,.ゝ、 r'""`ヽ、i! .|. \ |_
!、 `ヽ、ー、 ヽ | ー'ニニニ=‐ヽ /|:\_
| \ i:" ) | ヽ ( ,' /´ //:::::::::::::
ヽ `'" ノ /\`ー´_ / /:::::::::::::::
0478デフォルトの名無しさん
2013/06/25(火) 11:30:17.560479桃白白 ◆9Jro6YFwm650
2013/06/25(火) 11:49:25.88因みに>>401でパイパンが書いたコードは>>411で変換できないと指摘されてる。
これは検討漏れの設計ミス。
本人は認めてないようだけどね。
ノ´⌒`ヽ
γ⌒´ \
/""´ヽー⌒\ `ヽ
/ ノ (◎ )ノ ̄ ̄`ヽ、―ニ
/ (。 ) __)⌒/ ´`ヽ _ 三,:三ー三,:
| ::⌒(__ノ/ ノヽ--/ ̄ , ` ` ̄ ̄ ̄
。ヽ 。 )( }. ...| /! オザワパンチ
ヽo (__ン }、ー‐し'ゝL _
人 ー jr--‐‐'´} ;ーー------
/ ヾ---‐'ーr‐'"==
0480桃白白 ◆9Jro6YFwm650
2013/06/25(火) 11:52:26.87それが理にかなってないから桃白白は腹の虫が収まらねんだよ。
入力側で対処するべき問題だろうが。そんなこともわからないようなバカが設計などと口にするなということだよわかったかバーカ。
0481桃白白 ◆9Jro6YFwm650
2013/06/25(火) 11:56:10.06そんなに暴れなくても、末尾h、Hにちょこっと対応したコードにすればいいだけじゃん。
バカすぎるwww 末尾のhはどっから来たんだよ。16進数の末尾にはhをつける必要があるとでも
思ってんのか?あ?ロバに噛まれて死ねよ。
0482桃白白 ◆9Jro6YFwm650
2013/06/25(火) 11:58:14.28彡 ━ ━
彡 ● ●
彡 ( |
彡 丶 |、
/ ( o o) \
`/ __  ̄/ > )
(__L( /<丶/
| /  ̄
| /\ \
| / ) )
`ヒ/ ( \
\二)
0483デフォルトの名無しさん
2013/06/25(火) 12:30:04.230484デフォルトの名無しさん
2013/06/25(火) 12:45:14.48これからは、完全スルー推奨だな。
0485デフォルトの名無しさん
2013/06/25(火) 12:48:38.250486桃白白 ◆9Jro6YFwm650
2013/06/25(火) 16:11:47.56桃白白相手だからといってこんなふざけた言動は許されないよな。
461+1 :458 [↓] :2013/06/25(火) 00:45:05.65
因みに>>401でパイパンが書いたコードは>>411で変換できないと指摘されてる。
これは検討漏れの設計ミス。
本人は認めてないようだけどね。
0487桃白白 ◆9Jro6YFwm650
2013/06/25(火) 16:13:57.90旦那が帰って来たら揉んでもらおう股間を、あとおっぱい。
0488桃白白 ◆9Jro6YFwm650
2013/06/25(火) 16:15:09.46因みに>>401でパイパンが書いたコードは>>411で変換できないと指摘されてる。
これは検討漏れの設計ミス。
本人は認めてないようだけどね。
16進数を10進数に変換するコードなんだから16進数じゃないものを変換できないのはあたりまえだろw
設計したことあんのかよ?あ?
0489桃白白 ◆9Jro6YFwm650
2013/06/25(火) 16:15:44.28そんなに暴れなくても、末尾h、Hにちょこっと対応したコードにすればいいだけじゃん。
バカすぎるwww 末尾のhはどっから来たんだよ。16進数の末尾にはhをつける必要があるとでも
思ってんのか?あ?ロバに噛まれて死ねよ。
0490桃白白 ◆9Jro6YFwm650
2013/06/25(火) 16:50:28.03これ桃白白。手に持ってるのはおしっこ。検尿なの。
http://garakuta.chips.jp/blog/ga/yonekura.jpg
0491デフォルトの名無しさん
2013/06/25(火) 16:59:08.600492デフォルトの名無しさん
2013/06/25(火) 17:00:02.04478+1 :デフォルトの名無しさん [↓] :2013/06/25(火) 11:30:17.56
そんなに暴れなくても、末尾h、Hにちょこっと対応したコードにすればいいだけじゃん。
バカすぎるwww 末尾のhはどっから来たんだよ。16進数の末尾にはhをつける必要があるとでも
思ってんのか?あ?ロバに噛まれて死ねよ。
0493デフォルトの名無しさん
2013/06/25(火) 17:03:56.720494デフォルトの名無しさん
2013/06/25(火) 17:07:29.74最低だな。
0495デフォルトの名無しさん
2013/06/25(火) 17:07:47.74因みに>>401でパイパンが書いたコードは>>411で変換できないと指摘されてる。
これは検討漏れの設計ミス。
本人は認めてないようだけどね。
ノ´⌒`ヽ
γ⌒´ \
/""´ヽー⌒\ `ヽ
/ ノ (◎ )ノ ̄ ̄`ヽ、―ニ
/ (。 ) __)⌒/ ´`ヽ _ 三,:三ー三,:
| ::⌒(__ノ/ ノヽ--/ ̄ , ` ` ̄ ̄ ̄
。ヽ 。 )( }. ...| /! オザワパンチ
ヽo (__ン }、ー‐し'ゝL _
人 ー jr--‐‐'´} ;ーー------
/ ヾ---‐'ーr‐'"==
0496デフォルトの名無しさん
2013/06/25(火) 17:11:36.380497デフォルトの名無しさん
2013/06/25(火) 17:17:15.53461+1 :458 [↓] :2013/06/25(火) 00:45:05.65
因みに>>401でパイパンが書いたコードは>>411で変換できないと指摘されてる。
これは検討漏れの設計ミス。
本人は認めてないようだけどね。
∧_∧
_( ´_ゝ`)
/ ) _ _
/ ,イ 、 ノ/ ∧ ∧―= ̄ `ヽ, _
/ / | ( 〈 ∵. ・( 〈__ > ゛ 、_―
| ! ヽ ー=- ̄ ̄=_、 (/ , ´ノ
| | `iー__=―_ ;, / / /
!、リ -=_二__ ̄_=;, / / ,'
/ / / /| |
/ / !、_/ / 〉
/ _/ |_/
ヽ、_ヽ
0498デフォルトの名無しさん
2013/06/25(火) 17:23:39.410499デフォルトの名無しさん
2013/06/25(火) 17:24:28.37(;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::\
r‐-、 ,...,, // ヽ::::::::::|
:i! i! |: : i! // ..... ........ /::::::::::::|
! i!. | ;| || 、 , \::::::::|
i! ヽ | | |.-=・‐. ‐=・=- |;;/⌒i
ゝ `-! :| |'ー .ノ 'ー-‐' ,) |
r'"~`ヾ、 i! .| ノ(、_,、_)\ ノ
,.ゝ、 r'""`ヽ、i! .|. \ |_
!、 `ヽ、ー、 ヽ | ー'ニニニ=‐ヽ /|:\_
| \ i:" ) | ヽ ( ,' /´ //:::::::::::::
ヽ `'" ノ /\`ー´_ / /:::::::::::::::
0500デフォルトの名無しさん
2013/06/25(火) 17:31:28.73それで何が終了するんだ?
末尾のhに対応してないから設計ミスだっていってんだから
それで終了なら設計ミスで終了ということになるだろバーカ。
だから桃白白は堪忍袋の緒がぶちぎれてるわけ。
0501デフォルトの名無しさん
2013/06/25(火) 17:36:10.400502デフォルトの名無しさん
2013/06/25(火) 17:36:56.28> だから桃白白は堪忍袋の緒がぶちぎれてるわけ。
だからといって、荒らして良い訳ではないことくらいわかろうな。
0503デフォルトの名無しさん
2013/06/25(火) 17:37:40.11461+1 :458 [↓] :2013/06/25(火) 00:45:05.65
因みに>>401でパイパンが書いたコードは>>411で変換できないと指摘されてる。
これは検討漏れの設計ミス。
本人は認めてないようだけどね。
そう思うんならこいつに言ってやれよ。
それで>>461が納得して桃白白にいいがかりをつけたことを謝罪するのなら
引き下がってやってもいい。
0504デフォルトの名無しさん
2013/06/25(火) 17:40:33.83荒らしてんのは>>461だろ。ふざけた言いがかりつけてきやがって、いい流れで来てたスレがこのバカのせいで台無しだ。
かわいそー。桃白白超かわいそー。
0505デフォルトの名無しさん
2013/06/25(火) 17:42:44.94> そう思うんならこいつに言ってやれよ。
いやいや、>>461が納得しようがしまいが、お前がそう宣言してこの話題を終了させればいいだけ。
つか、トリップ付けて発言しろ。
0506デフォルトの名無しさん
2013/06/25(火) 17:45:03.97は? 言いがかりつけて来た>>461が発言の撤回と謝罪を行わないかぎり
桃白白は引き下がらない。お前がトリップつけろや。誰だよお前。
0507デフォルトの名無しさん
2013/06/25(火) 17:47:02.59元をただせば、自分が書いたコードが発端になってるわけで、
自分が蒔いた種は自分で刈り取れってことだ。
0508デフォルトの名無しさん
2013/06/25(火) 17:49:43.38NGしてる人用に、トリップ付けろってことだ。
お前、暴れてるという自覚無いのか?
0509デフォルトの名無しさん
2013/06/25(火) 17:52:13.17タオパイまさか本当に生理か?w
おれも>>461はどうかと思う
こんな数十文字で仕様を詰めらんないからタオパイ仕様になっちまうのは仕方ない
だからこの辺で手打ちにしようぜ、な
0510桃白白 ◆9Jro6YFwm650
2013/06/25(火) 17:58:36.94桃白白はお前を暴れていると認識しているが、お前はトリップを付けようとしないから、
お前は暴れているという自覚がないんだろう。さっさとトリップ付けろ。即刻NGにしてやる。
お前はそういうやりかたが正しいと思ってるんだろ。さっさとやれ。
0511デフォルトの名無しさん
2013/06/25(火) 18:15:58.72ほっとこうぜ。
0512デフォルトの名無しさん
2013/06/25(火) 18:20:18.64あと、ageんな
0513デフォルトの名無しさん
2013/06/25(火) 18:22:38.93おいおい、他人に要求しといて自分はしらばっくれてダンマリか?
トリップ付けてくれてありがとうございます。寝たきりの母も
私の手を握り締めながら桃白白さんありがとうと私につぶやきました。
桃白白さんのおかげで母の笑顔を見ることができ、感謝の念にたえません。
私たち母子は桃白白さんにご努力いただいたことを決して忘れません。
本当にありがとうございます。これくらい言えないわけ?じゃあやめた。
>>507
桃白白がぶちぎれてんのは>>461の発言に対してだ。
そこを無視して桃白白が〜はただの責任転嫁。>>461の発言したやつ呼んでこい。
お前は>>461じゃないんだったら黙ってろや。
0514デフォルトの名無しさん
2013/06/25(火) 18:27:49.880515デフォルトの名無しさん
2013/06/25(火) 18:28:33.600516デフォルトの名無しさん
2013/06/25(火) 18:29:51.0216進数を変換するってときにhを入れるのはバカだろ。バカの行いだろ。
聖書に書かれていてもおかしくないほどの愚行だろ。仕方ないというレベルじゃないだろ。
前世どころか現世もアルマジロなんじゃないかと疑うレベルだろ。来世ではアリクイになれると
いいですねと励ましの言葉で送り出してあげたくなっちゃうレベルだろ。完全にアリクイびとだろ。
0517デフォルトの名無しさん
2013/06/25(火) 18:34:32.17> 16進数を変換するってときにhを入れるのはバカだろ。バカの行いだろ。
仕様による。
1000h
0x1000
&h1000
これらは全て普通に使われる16進数表現。
これらを受け入れるのか受け入れないのかは仕様次第。
お前のコードでは、全てはじく仕様だと言えばいいだけだ。
0518デフォルトの名無しさん
2013/06/25(火) 18:38:43.93それは何の仕様だ?VBAの仕様か?あ?違う言語の仕様持ち出してきてどうすんだバカが。
そういうのを詭弁というんだ。>>461がアルマジロの脳みそしかありませんでしたで説明付くだろうが。
言い訳ばかり考えやがって真摯に謝罪できないもんかね!!
0519デフォルトの名無しさん
2013/06/25(火) 18:41:48.25逆に聞きたいけど、なんで>>461は桃白白のコードを見て1000hを受け入れる仕様だと思ったんだ?あ?説明しろ。
0520デフォルトの名無しさん
2013/06/25(火) 18:48:22.250521デフォルトの名無しさん
2013/06/25(火) 18:48:40.55質問者のやりたいことが仕様。
0522デフォルトの名無しさん
2013/06/25(火) 18:49:19.36https://ja.wikipedia.org/wiki/%E5%8D%81%E5%85%AD%E9%80%B2%E6%B3%95
一般には、16 個の数字 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F を用いる。
hなんてありまへん。
0523デフォルトの名無しさん
2013/06/25(火) 19:00:42.18答えになってない。聞いてることとかみ合わない紋切り型のことしか言えない木偶の坊。ワニにでも噛まれてろ。
/ニYニヽ
/( ゚ )( ゚ )ヽ
/::::⌒`´⌒::::\ かぷwwwwwwwwwwwwwww
| ,-)___(-、|
| l |-┬-| l |
\ `ー'´ /
0524PLC屋
2013/06/25(火) 19:04:22.13経緯は知らんがメーカの取説などでもそう表記してある。
マ寄りの俺が0x□って仕様書くと「何これ?」って聞かれる。
0525デフォルトの名無しさん
2013/06/25(火) 19:04:46.89/ニYニヽ
/( ゚ )( ゚ )ヽ
/::::⌒`´⌒::::\ でっていうwwwwwwwwwwwwwww
| ,-)___(-、|
| l |-┬-| l |
\ `ー'´ /
0526デフォルトの名無しさん
2013/06/25(火) 19:32:16.91因みに>>401でパイパンが書いたコードは>>411で変換できないと指摘されてる。
これは検討漏れの設計ミス。
本人は認めてないようだけどね。
ノ´⌒`ヽ
γ⌒´ \
/""´ヽー⌒\ `ヽ
/ ノ (◎ )ノ ̄ ̄`ヽ、―ニ
/ (。 ) __)⌒/ ´`ヽ _ 三,:三ー三,:
| ::⌒(__ノ/ ノヽ--/ ̄ , ` ` ̄ ̄ ̄
。ヽ 。 )( }. ...| /! オザワパンチ
ヽo (__ン }、ー‐し'ゝL _
人 ー jr--‐‐'´} ;ーー------
/ ヾ---‐'ーr‐'"==
0527デフォルトの名無しさん
2013/06/25(火) 19:36:13.920528デフォルトの名無しさん
2013/06/25(火) 19:40:39.27自分の発言に責任持てないなら一生外しとけ。
0529デフォルトの名無しさん
2013/06/25(火) 19:49:10.82>十六進法 - Wikipedia
>https://ja.wikipedia.org/wiki/%E5%8D%81%E5%85%AD%E9%80%B2%E6%B3%95
>
>一般には、16 個の数字 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F を用いる。
>hなんてありまへん。
↑あまりにもひどい墓穴をみた
表記方法[編集]
十六進表記はよく使われるので、プログラム言語ではリテラルとして特別な表記が準備されていることが多い。一般に、大文字の A-F と小文字の a-f を区別しない。 (1000)16 の表記の例を挙げる。
0x1000(C, C++, Java, Perl など)
x1000(HTML の文字参照における表記。例: က)
1000h あるいは 1000H(主にインテル系のアセンブリ言語・マイコン類の資料) この表記の場合、十六進表記が英字 (A-F) で始まるときは、変数名などと区別するため、先頭に 0 を付けねばならないことがある。例: 0A000H
&h1000(BASIC、とりわけマイクロソフト系のもの)
$1000(上記以外の BASIC や一部の Pascal 処理系、主にモトローラ系のアセンブリ言語・マイコン類の資料)
https://ja.wikipedia.org/wiki/%E5%8D%81%E5%85%AD%E9%80%B2%E6%B3%95
0531デフォルトの名無しさん
2013/06/25(火) 19:54:34.76>>529は>>522へのレス
頭の回転が鈍いウスノロの出番はない。
0532デフォルトの名無しさん
2013/06/25(火) 19:55:55.80だから答えたんだろ。>>522を誰だと思ってるんだ?マジでウスノロだなお前。にぶちんと名づけてやろう。
こんどから名前欄ににぶちん#にぶちんと入力しろ。
0533デフォルトの名無しさん
2013/06/25(火) 20:03:04.9016進数の文字にそのリテラルが含まれることになるわけじゃない。
それらしいこと言った気になってるだけで中身はぐっだぐだ。ガチでガキなんじゃねえかと思うわ。ガチガキ。
最近、1、2匹バカな奴がいるとは思ってたんだよな。
>>326こいつとか、>>330こいつとか。
0534デフォルトの名無しさん
2013/06/25(火) 20:30:54.32因みに>>401でパイパンが書いたコードは>>411で変換できないと指摘されてる。
これは検討漏れの設計ミス。
本人は認めてないようだけどね。
∧_∧
_( ´_ゝ`)
/ ) _ _
/ ,イ 、 ノ/ ∧ ∧―= ̄ `ヽ, _
/ / | ( 〈 ∵. ・( 〈__ > ゛ 、_―
| ! ヽ ー=- ̄ ̄=_、 (/ , ´ノ
| | `iー__=―_ ;, / / /
!、リ -=_二__ ̄_=;, / / ,'
/ / / /| |
/ / !、_/ / 〉
/ _/ |_/
ヽ、_ヽ
0535デフォルトの名無しさん
2013/06/25(火) 20:32:45.10そんなに暴れなくても、末尾h、Hにちょこっと対応したコードにすればいいだけじゃん。
バカすぎるwww 末尾のhはどっから来たんだよ。16進数の末尾にはhをつける必要があるとでも
思ってんのか?あ?ロバに噛まれて死ねよ。
0536デフォルトの名無しさん
2013/06/25(火) 20:41:56.610537桃白白 ◆9Jro6YFwm650
2013/06/25(火) 20:51:53.18年に一度、かぼちゃを頭にかぶる日があるでしょ。
桃白白はそっちの方が異常だと思う。でもパンプキンヘッドの日だからといえば
みんな納得しちゃう。だから今日はオザワさんの日だと言えばみんな納得すると
思うんだよね。
0538デフォルトの名無しさん
2013/06/25(火) 21:03:13.41いいな、あと3時間だからな
0539桃白白 ◆9Jro6YFwm650
2013/06/25(火) 21:09:15.10だいじょぶ、わかってる。オザワさんの日で全部チャラだねおk。
0540デフォルトの名無しさん
2013/06/25(火) 21:29:10.170541デフォルトの名無しさん
2013/06/25(火) 21:34:34.550542デフォルトの名無しさん
2013/06/25(火) 21:37:26.55こんな大暴れをする人だったのか…見損なった
スレの私物化も甚だしい
運営に相談して出入り禁止とかにできないの?
由緒あるVBA質問スレがこんなんじゃ利用者が可哀想だよ
0543デフォルトの名無しさん
2013/06/25(火) 21:55:16.63これくらいじゃ無理。板全部で暴れまわるなら別だけどw
0544デフォルトの名無しさん
2013/06/25(火) 21:55:36.670545デフォルトの名無しさん
2013/06/25(火) 22:19:40.82完全スルー、完全無視位しかないと思うけど、質問者がスルー、無視するとは思えないし・・・
ルール化も検討する段階に来てると思う。
個人を無視するとかNGワードにするというものじゃなくてどんなに短くてもコードでの回答は不可とかね。
0546デフォルトの名無しさん
2013/06/25(火) 22:39:51.69じゃあさ、みんなで桃白白にごめんなさいしようか。
0547デフォルトの名無しさん
2013/06/25(火) 22:44:23.460548デフォルトの名無しさん
2013/06/25(火) 22:47:55.37名案があるんだけど、hは16進数じゃありませんってテンプレに入れたらいいと思うの。
そしたらみんなハッピーじゃない?
0549デフォルトの名無しさん
2013/06/25(火) 22:54:28.33コテハン禁止でおねがいします
0550デフォルトの名無しさん
2013/06/25(火) 22:55:55.80まずコード書いたのが桃白白だけ。その他大勢は桃白白叩きをやった。
次に1回コテハンが暴れたぐらいでスルーできない煽り耐性のないその他大勢も悪い。
要は桃白白を叩くだけ叩いて、暴れたらすぐ動揺して「どうしたらいいか」って蜂の巣叩いたように大騒ぎするってのは
2chむきじゃないんじゃないか
0551545
2013/06/25(火) 23:04:29.15コテハン禁止にしたところで、今でも名無しにして暴れてるから効果は無いと思う。
第2、第3のパイパンが湧いてこないような対応をしないと、イタチごっこになるかなぁと。
0552デフォルトの名無しさん
2013/06/25(火) 23:05:44.55またか、、、
どうしてそこまでコードにこだわるかなぁ
内容によるがコードを提示してしまったらその意図は伝わらないぞ?
それにここはクレクレスレじゃないしな
あとオレは家にExcel無いってのもある
0553デフォルトの名無しさん
2013/06/25(火) 23:09:39.280554デフォルトの名無しさん
2013/06/25(火) 23:10:41.502chには「スルーする」って技能も大事でしょ。
桃白白1人がコード表示したって、放置すればいいじゃない。
それをこのスレの住人は猛烈に叩いた。
その時点で、桃白白が完全に悪いっておかしくなるってことですよ。
0555デフォルトの名無しさん
2013/06/25(火) 23:14:23.940556デフォルトの名無しさん
2013/06/25(火) 23:16:11.13&h1234
0x1234
1234h
&1234
全部対応しとけばいいじゃん
0557デフォルトの名無しさん
2013/06/25(火) 23:16:53.700558デフォルトの名無しさん
2013/06/25(火) 23:17:03.000559デフォルトの名無しさん
2013/06/25(火) 23:18:36.52あのコードが糞なのは1000hでエラーになるからじゃないよ。
ただ、具体的に指摘するとまた前回みたいに荒れ狂うからやらないだけ。
0560デフォルトの名無しさん
2013/06/25(火) 23:19:34.50わかり合うことなど不可能
桃白白抜きのスレを作ってみんなで移動しよう
スレタイおよびテンプレに桃白白出入り禁止って明記してさ
そのスレにも来て好き勝手やるなら、完璧に故意犯なので運営に相談
0561デフォルトの名無しさん
2013/06/25(火) 23:19:54.60具体的に指摘しなくても荒れ狂ったけどなw
0562デフォルトの名無しさん
2013/06/25(火) 23:20:49.64重症だな。
0563デフォルトの名無しさん
2013/06/25(火) 23:21:01.99そうなんだけどさ、使えない奴ってのはそうは考えないんだよ
0564デフォルトの名無しさん
2013/06/25(火) 23:30:30.36相談したって無理。
馬鹿じゃねぇかって放置されるよ。
桃白白を放置する耐性をあなたたちが身につけない限り無理だって。
0565デフォルトの名無しさん
2013/06/25(火) 23:36:30.29ただ奴が前回の何倍も発狂しただけ。
0566デフォルトの名無しさん
2013/06/25(火) 23:58:15.470567デフォルトの名無しさん
2013/06/26(水) 02:58:58.47この糞眠い中 100%表示でBK列まで見えるマルチディスプレイで本当によかった!
睡魔と戦いながら広い範囲をスクロールさせてたら瞬時にセル番地を忘れてしまう。w
0568デフォルトの名無しさん
2013/06/26(水) 03:41:10.930569デフォルトの名無しさん
2013/06/26(水) 05:41:23.370570デフォルトの名無しさん
2013/06/26(水) 09:02:59.53そーやって差別するわけですか、サイテーですね。
0571デフォルトの名無しさん
2013/06/26(水) 09:03:43.74何がそうなんだ。使えないのはてめえだバーカ。
0572デフォルトの名無しさん
2013/06/26(水) 09:04:23.91どれも16進数じゃねえな。なんで言語表現を16進数に持ち込むんだ?バカじゃね?
0573デフォルトの名無しさん
2013/06/26(水) 09:10:13.120574デフォルトの名無しさん
2013/06/26(水) 09:43:07.69ん?16進数自体が言語表現だぞ?
16進数を求める関数に0xとか与えるなってことなら同意
それは質問者が対応すべきだね
0575デフォルトの名無しさん
2013/06/26(水) 09:45:54.17はああああ?????
16進数は16進数ですが?
0123456789ABCDEFで表される数ですが。
普段から詭弁ばかり使ってて正論がわからなくなったかぼちゃ頭なのかお前は?
お母さんに中身くりぬかれたのか?ご飯でも詰めてもらえよ。はい論破。
0576デフォルトの名無しさん
2013/06/26(水) 09:48:17.86かまっちゃダメ。完全無視。
0577デフォルトの名無しさん
2013/06/26(水) 09:51:48.15http://www.infonet.co.jp/ueyama/ip/glossary/hexadecimal.html
16進数は言語とは関係ありません。
0578デフォルトの名無しさん
2013/06/26(水) 09:53:24.10_ /  ̄ <_
_>`´ >>576___<_
> r‐'" ̄ ̄ ノ ̄ ̄`ヽ、―ニ 二
/ , | `ヽ/ ´`ヽ _ 三,:三ー二
 ̄/ | ノヽ--/ ̄ , ` ̄ ̄ ̄
/ /⌒ヽ,| ミ } ...| /! 差別する奴って最低だよな
レ l d _}`ー‐し'ゝL _
| ヽ、_, _,:ヘr--‐‐'´} ;ー------
|/| \ ノ`ヾ:::-‐'ーr‐'"==-
ヽ/l/|` ー------r‐'"  ̄ ̄
|└-- 、__/`\-:、
__,ゝ,,_____/ \_」 \
0579デフォルトの名無しさん
2013/06/26(水) 09:55:13.64因みに>>401でパイパンが書いたコードは>>411で変換できないと指摘されてる。
これは検討漏れの設計ミス。
本人は認めてないようだけどね。
ノ´⌒`ヽ
γ⌒´ \
/""´ヽー⌒\ `ヽ
/ ノ (◎ )ノ ̄ ̄`ヽ、―ニ
/ (。 ) __)⌒/ ´`ヽ _ 三,:三ー三,:
| ::⌒(__ノ/ ノヽ--/ ̄ , ` ` ̄ ̄ ̄
。ヽ 。 )( }. ...| /! オザワパンチ
ヽo (__ン }、ー‐し'ゝL _
人 ー jr--‐‐'´} ;ーー------
/ ヾ---‐'ーr‐'"==
0580デフォルトの名無しさん
2013/06/26(水) 10:02:05.61因みに>>401でパイパンが書いたコードは>>411で変換できないと指摘されてる。
これは検討漏れの設計ミス。
本人は認めてないようだけどね。
∧_∧
_( ´_ゝ`)
/ ) _ _
/ ,イ 、 ノ/ ∧ ∧―= ̄ `ヽ, _
/ / | ( 〈 ∵. ・( 〈__ > ゛ 、_―
| ! ヽ ー=- ̄ ̄=_、 (/ , ´ノ
| | `iー__=―_ ;, / / /
!、リ -=_二__ ̄_=;, / / ,'
/ / / /| |
/ / !、_/ / 〉
/ _/ |_/
ヽ、_ヽ
0581デフォルトの名無しさん
2013/06/26(水) 11:12:31.45環境:Windows XP, Excel 2007
A1にhogefugaとあり、B1にaiueoとあります。
C1にA1とB1の両方に含まれる文字列(oeua)を入れたいです。
10000行まで同じように処理したいです。どうすればいいですか?
0582デフォルトの名無しさん
2013/06/26(水) 11:28:02.88そんなに暴れなくても、末尾h、Hにちょこっと対応したコードにすればいいだけじゃん。
バカすぎるwww 末尾のhはどっから来たんだよ。16進数の末尾にはhをつける必要があるとでも
思ってんのか?あ?ロバに噛まれて死ねよ。
0583デフォルトの名無しさん
2013/06/26(水) 11:43:14.52function CommonChars(r1 as range, r2 as range) as string
' r1.valueとr2.valueの共通部分を抜き出す
end function
という関数を作り、C1に「=CommonChars(A1,B1)」と入力し、それを10000行までコピーする。
0584デフォルトの名無しさん
2013/06/26(水) 12:01:48.53その関数の中身がわからないから質問しています。コピーするのではなくてVBAでやりたいです。
それも質問から読み取ってもらいたかったです。結局あなた何ら意味のあることをいってませんよね。
質問の主旨も理解せずにずれたことをドヤ顔で返信されても困ります。
あなたがこのスレを荒らしている桃白白という人ですか?もし違っていたら謝りますが、本人であれば
正直迷惑なので、もうしわけないですけど私の質問に答えないでください。
0585デフォルトの名無しさん
2013/06/26(水) 12:10:38.52Dim i As Integer
Dim s As String ' 結果
s = ""
For i = 1 To Len(s1)
c = Mid(s1, i, 1) ' 1文字取り出す
If InStr(s2, c) > 0 Then ' 両方に含まれる?
If InStr(s, c) = 0 Then ' ガイシュツ?
s = s & c ' 結果に加える
End If
End If
Next
両含 = s
End Function
0586デフォルトの名無しさん
2013/06/26(水) 12:17:31.58因みに>>401でパイパンが書いたコードは>>411で変換できないと指摘されてる。
これは検討漏れの設計ミス。
本人は認めてないようだけどね。
ノ´⌒`ヽ
γ⌒´ \
/""´ヽー⌒\ `ヽ
/ ノ (◎ )ノ ̄ ̄`ヽ、―ニ
/ (。 ) __)⌒/ ´`ヽ _ 三,:三ー三,:
| ::⌒(__ノ/ ノヽ--/ ̄ , ` ` ̄ ̄ ̄
。ヽ 。 )( }. ...| /! オザワパンチ
ヽo (__ン }、ー‐し'ゝL _
人 ー jr--‐‐'´} ;ーー------
/ ヾ---‐'ーr‐'"==
0587デフォルトの名無しさん
2013/06/26(水) 12:25:18.80Function h2d(h As String) As Long
h = Trim(StrConv(StrConv(h, vbNarrow), vbUpperCase))
If Left(h, 2) = "&H" Or Left(h, 2) = "0X" Or Left(h, 2) = "OX" Then
h = Mid(h, 3)
ElseIf Left(h, 1) = "&" Then
h = Mid(h, 2)
ElseIf Right(h, 1) = "H" Then
h = Left(h, Len(h) - 1)
End If
While Len(h) >= 2 And Left(h, 1) = "0"
h = Mid(h, 2)
Wend
h2d = Val("&H" & h)
End Function
0588デフォルトの名無しさん
2013/06/26(水) 12:42:15.07周回遅れすぎ (w
16進数『表現』からの変換の話な。
0589デフォルトの名無しさん
2013/06/26(水) 12:44:06.76もうちょい頑張って、EBCDIK にも対応してくれ。
0590583
2013/06/26(水) 12:53:01.47この問題を解決するには、大きくいうと二通りのやり方がある。
一つは、二つのRangeから共通部分を抜き出すユーザ定義関数を作り、それをセルに設定するというやりかた。
この方法のメリットは、「二つのRange」はセルに関数を設定するときに選択できるのと、「対象範囲」を「セルに
関数を設定する範囲」に置き換えることができること。
また、計算元となったセルの内容を変更すれば、計算結果も再計算される。
デメリットは、シート全体が再計算されるときに、時間がかかる場合があること。
もう一つは、全てをVBAのマクロで行うこと。
この方法のメリットは、上記方法よりも高速であるかもしれないということ。
デメリットは、計算元セルの位置や対象範囲を自由に変更できないこと。また、再計算にも対応していない。
*
普通、こんな丁寧な説明しないんだけどね。サービス。
0591デフォルトの名無しさん
2013/06/26(水) 12:55:22.930592デフォルトの名無しさん
2013/06/26(水) 12:56:09.660593デフォルトの名無しさん
2013/06/26(水) 13:00:31.82それらしいと思われるレスは全て無視すればいい。
0594デフォルトの名無しさん
2013/06/26(水) 13:01:55.400595デフォルトの名無しさん
2013/06/26(水) 13:06:55.29Function h2d(h As String) As Variant
中略
d = Val("&H" & h)
If h <> "0" And d = 0 Then
h2d = CVErr(xlErrNA) ' 変換できない文字列には#N/Aを返す
Else
h2d = d
End If
End Function
0596デフォルトの名無しさん
2013/06/26(水) 13:18:28.31ここまで書かないとわからないかも。
結局、全コードを求める奴しか質問しないのかもね。
function CommonChars(r1 as range, r2 as range) as string
CommonChars = 両含(r1.value, r2.value)
end function
あるいは、
sub hoge()
dim maxRow as long
dim i as long
maxRow = range("A1").currentregion.rows.count
for i = 1 to maxRow
cells(i, 3) = 両含(cells(i, 1).value, cells(i, 2).value)
next
end sub
どちらも動かしてない。
0597デフォルトの名無しさん
2013/06/26(水) 13:26:16.750598デフォルトの名無しさん
2013/06/26(水) 14:15:04.03自分のことカッコイイと思っている人が多いけど
このVBAの本書いてる人もそうなのか?
http://tatehide.com/profile.html
0599デフォルトの名無しさん
2013/06/26(水) 14:37:05.15スレ違い
0600デフォルトの名無しさん
2013/06/26(水) 15:48:00.56は?誰がその話してんだよ一人でやってろやバーカ。
0601デフォルトの名無しさん
2013/06/26(水) 15:55:32.41あなたには答えるなと申しあげたつもりでしたが、伝わりませんでしたか。
私はそんな説明も求めていません。自己満足のサービスご苦労様。もう黙っててね。
0602デフォルトの名無しさん
2013/06/26(水) 16:03:50.420603デフォルトの名無しさん
2013/06/26(水) 16:04:24.600604583
2013/06/26(水) 16:15:20.92桃白白ならレスするなと取ったんだが、桃白白かどうかに関わらずもう俺にレスするなということだったのか。
それはすまなかった。
ただ、最近このスレでは「コピペして動かせば答えが手に入るコード」を出すと荒れるんだわ。
>>1の★5ね。それに桃白白の件もあるし。
だから、部分的なアドバイスにとどめとこうと思ったわけ。
次からもそういうコードが欲しい質問をしたいならなら、こっちで質問するといいよ。
VBAなんでも質問スレ
http://toro.2ch.net/test/read.cgi/tech/1342087380/
0605デフォルトの名無しさん
2013/06/26(水) 16:19:23.89>>596で完全回答が手に入ってるのに煽る必然性なんて皆無だし。
0606デフォルトの名無しさん
2013/06/26(水) 16:24:35.200607デフォルトの名無しさん
2013/06/26(水) 16:24:49.18何が部分的ですか?あなたは聞いてもいないことを書いて答えた気になってるだけです。
あなたのような人をトンチンカンといいます。テンプレを理由にあなたのくだらない答えが正当化されるわけがありません。
答えられないなら黙ってればいいじゃないですか。独り善がりのアドバイスがしたいのならそれこそTwitterででもつぶやいて
たらどうですか。技術的な回答をするのに向いていないと思いますよ。これは私からのアドバイスです。
普段はこんな丁寧なサービスはしません。私はあなたが桃白白ではないかとまだ疑っています。あなたもまだ否定されていませんよね。
>>603
バカな回答者が群れて増長してるからどうしようもないと思いますよ。
10000行だっていっているのに>>596のようなコード書く人もいます。
動かさなくてもわかるだろと。
0608デフォルトの名無しさん
2013/06/26(水) 16:32:20.43完全回答、必然性
すげえかっけえなお前。悪い意味で。
0609デフォルトの名無しさん
2013/06/26(水) 16:33:58.24お前もトリップ付けろ馬鹿
0610デフォルトの名無しさん
2013/06/26(水) 16:35:21.560611デフォルトの名無しさん
2013/06/26(水) 16:42:34.42> 10000行だっていっているのに>>596のようなコード書く人もいます。
> 動かさなくてもわかるだろと。
>>585と>>596のhoge()の方をコピペしてhogeを実行してみろ、このど素人が。
0612デフォルトの名無しさん
2013/06/26(水) 16:47:12.860613デフォルトの名無しさん
2013/06/26(水) 16:49:11.97パイパン自身による印象操作だな。
0614デフォルトの名無しさん
2013/06/26(水) 16:59:20.13はいはい、じゅうろくしんすうがわかってるぼくちゃんえらいねぇ (w
0615デフォルトの名無しさん
2013/06/26(水) 17:06:54.29∧,_∧ ♪
(( ( )
♪ / ) )) ♪
(( ( ( 〈
(_)^ヽ__)
>>587
両含で入力文字列をフィルタリングすればいいだろ。お前は応用力ゼロのナメクジか?あ?
砂糖かけてもちっちゃくなるんだぜ知ってたか?お?
0616デフォルトの名無しさん
2013/06/26(水) 17:11:51.02maxrowはcurrentregionに依存しますよね。そんなことコード実行しなくてもわかりますよね。
回答する側の自分は素人じゃないとでも思ってるんですか?質問者より頭が悪いくせに
偉そうにするのやめてもらえないですか?それってとっても痛いですよ。
0617デフォルトの名無しさん
2013/06/26(水) 17:14:51.870618デフォルトの名無しさん
2013/06/26(水) 17:20:58.31sub hoge()
dim i as long
for i = 1 to 10000
cells(i, 3) = 両含(cells(i, 1).value, cells(i, 2).value)
next
end sub
もう来るな。
0619デフォルトの名無しさん
2013/06/26(水) 17:24:40.47回答厨とか言ってた奴思い出した。
0620デフォルトの名無しさん
2013/06/26(水) 17:27:43.180621デフォルトの名無しさん
2013/06/26(水) 18:09:05.570622デフォルトの名無しさん
2013/06/26(水) 18:39:41.650623デフォルトの名無しさん
2013/06/26(水) 18:47:17.730624デフォルトの名無しさん
2013/06/26(水) 19:15:22.19パイパン臭が少しでもあれば荒らしとみなしていいと思う。
例えそれが本人じゃなかったとしてもね。
パイパンが名無しの成りすましになってるから、混乱してるようだけど。
俺も煽ればコードが出てくるっていうのはよくないと思う。
0625デフォルトの名無しさん
2013/06/26(水) 19:31:53.62約束は守られたのか?
0626デフォルトの名無しさん
2013/06/26(水) 20:12:06.05なんて読むんだよ
0627デフォルトの名無しさん
2013/06/26(水) 20:19:29.16桃白白が荒らしたことなんてあったか?俺は記憶にねえけどな。
0628デフォルトの名無しさん
2013/06/26(水) 20:24:09.07まあ上には上がいるからかわいいもんだけど、VBAスレでは今までそういうのがなかったから、
数回の連投でもそう見えてしまう
0629デフォルトの名無しさん
2013/06/26(水) 21:08:51.540630デフォルトの名無しさん
2013/06/26(水) 22:00:38.92長い目でみて、完全放置しようぜ
0631デフォルトの名無しさん
2013/06/26(水) 22:08:01.81_ /  ̄ <_
_>`´ >>630___<_
> r‐'" ̄ ̄ ノ ̄ ̄`ヽ、―ニ 二
/ , | `ヽ/ ´`ヽ _ 三,:三ー二
 ̄/ | ノヽ--/ ̄ , ` ̄ ̄ ̄
/ /⌒ヽ,| ミ } ...| /! 差別する奴って最低だよな
レ l d _}`ー‐し'ゝL _
| ヽ、_, _,:ヘr--‐‐'´} ;ー------
|/| \ ノ`ヾ:::-‐'ーr‐'"==-
ヽ/l/|` ー------r‐'"  ̄ ̄
|└-- 、__/`\-:、
__,ゝ,,_____/ \_」 \
0632デフォルトの名無しさん
2013/06/26(水) 22:44:02.76DataGridViewやTreeViewを使用したいです
0633デフォルトの名無しさん
2013/06/26(水) 23:06:01.37VB.NetのフォームにExcelのシートを貼り付けた方が早くね?
0634デフォルトの名無しさん
2013/06/26(水) 23:07:49.890635デフォルトの名無しさん
2013/06/26(水) 23:59:39.21今20シートぐらいに書き込むコードを作りましたがさらに複製して倍に倍にと増やす予定です、お勧めの最大シート数を教えて下さい。
0636デフォルトの名無しさん
2013/06/27(木) 00:22:24.790637デフォルトの名無しさん
2013/06/27(木) 00:34:59.510638デフォルトの名無しさん
2013/06/27(木) 01:19:17.830639デフォルトの名無しさん
2013/06/27(木) 01:43:36.490640デフォルトの名無しさん
2013/06/27(木) 04:21:54.4550シート 100シート 1000シート 10000シート 100000シート 1000000シート 10000000シート 100000000シート 1000000000シート
0641デフォルトの名無しさん
2013/06/27(木) 04:26:38.6010000000000000000シート 100000000000000000シート 1000000000000000000シート 1000000000000000000シート 10000000000000000000シート 100000000000000000000シート
1000000000000000000000シート 1000000000000000000000000シート 1000000000000000000000000000シート それ以上。
0642デフォルトの名無しさん
2013/06/27(木) 04:45:57.04質問する方も答える方も、挑発的な態度は慎もうよ
バトルしに来てるわけじゃないだろ?
0643デフォルトの名無しさん
2013/06/27(木) 07:01:07.540644デフォルトの名無しさん
2013/06/27(木) 07:40:20.11アンケートはよそでやってください
0645デフォルトの名無しさん
2013/06/27(木) 12:28:57.13使うアプリ間違えてるとしか思えん
0646デフォルトの名無しさん
2013/06/27(木) 17:13:53.92そういうのって誰かに聞いても
結局は自分のところで検証しなきゃならんから意味ないよ?
しかしシートが20から倍々ってのは
何か根本的な所で間違ってるような気がする
データの量が指数関数で増えるって事だろ
0647デフォルトの名無しさん
2013/06/28(金) 08:32:40.51★zipファイルの「南海無」フォルダー以下
「平成25年4月」「平成25年3月」の数値未発表で一部合計値比較不可能の為
平成25年2月〜平成13年4月は以下の各駅を合計・増減から除外して再計算。
「南海」─「本線」─「難波」〜「住ノ江」
「南海」─「高野線」─「汐見橋」〜「我孫子前」
★除外なしの計算値はzipファイルの「南海有」フォルダー以下。
※「Hnn(年度)」…平成(nn-1)年4月〜平成nn年3月
※「中之島」「渡辺橋」「大江橋」「なにわ橋」…「H21」10月の[総数]は日割り(13/31日) 。
※「大阪難波」「桜川」「ドーム前」「九条」…「H21」3月の[総数]は日割り(12/31日) 。
※「総数」…「H18」の7月以降及び年度平均はOTS線を除いた数値となっている。
平成24年4月〜平成25年4月
http://www.city.osaka.lg.jp/toshikeikaku/page/0000020916.html
[2013年6月19日]
http://www.city.osaka.lg.jp/toshikeikaku/cmsfiles/contents/0000020/20916/6-2.xls
平成24年3月〜平成13年4月
http://www.city.osaka.lg.jp/toshikeikaku/page/0000164566.html
[2013年6月4日]
http://www.city.osaka.lg.jp/toshikeikaku/cmsfiles/contents/0000164/164566/12-6.xls
0648デフォルトの名無しさん
2013/06/28(金) 08:43:05.24何いってんの?
0649デフォルトの名無しさん
2013/06/28(金) 22:30:03.67どうしろと?
0650デフォルトの名無しさん
2013/06/29(土) 01:02:00.170651デフォルトの名無しさん
2013/06/29(土) 15:51:01.790652桃白白 ◆9Jro6YFwm650
2013/06/29(土) 15:59:38.38いるけど?
∧,_∧ ♪
(( ( )
♪ / ) )) ♪
(( ( ( 〈
(_)^ヽ__)
0653デフォルトの名無しさん
2013/06/29(土) 16:03:11.500654デフォルトの名無しさん
2013/06/29(土) 16:15:54.32お元気そうでよかったです!
0655デフォルトの名無しさん
2013/06/30(日) 23:13:06.000656桃白白 ◆9Jro6YFwm650
2013/06/30(日) 23:33:03.58桃白白が助けてあげちゃう。どういうコードがわからんの?
0657デフォルトの名無しさん
2013/07/01(月) NY:AN:NY.ANVBAは実務でExcelを
活用しつつ使う言語だから
今はわからなくて当然
就職してから覚えればいいよ
0658デフォルトの名無しさん
2013/07/01(月) NY:AN:NY.ANおっと、覚え立てで教えたがりの俺もいるぜ
なんでも聞いてみな
0659デフォルトの名無しさん
2013/07/01(月) NY:AN:NY.AN一度挫折したけど別の言語やりだしてから何となく分かるようになった
初心者が最初にやる言語じゃないと思う
0660デフォルトの名無しさん
2013/07/01(月) NY:AN:NY.AN初心者は何からやり始めればいいの?
0661デフォルトの名無しさん
2013/07/01(月) NY:AN:NY.AN0662デフォルトの名無しさん
2013/07/01(月) NY:AN:NY.ANいくつあっても足りないから
複数のブックに分けてる
ブック操作はなでしこ使って
シートの中はVBAで操作
0663デフォルトの名無しさん
2013/07/01(月) NY:AN:NY.ANそういうのは1枚のシートに全データをまとめて、必要に応じて条件を指定して抽出するんだよ
それでデータ数が10万とか行くんなら、それはExcelじゃなくてAccessを使うべき仕事
0664デフォルトの名無しさん
2013/07/01(月) NY:AN:NY.ANそのボタンをクリックした時のひな形コードが自動で生成されたのですが
その時のボタンの名前が ボタン2 となっており名前が変なので直したいのですが
どうしたらよいでしょうか?
Sub ボタン2_Click
'略
End Sub
↓
Sub executing_Click
'略
End Sub
0665デフォルトの名無しさん
2013/07/01(月) NY:AN:NY.ANExcelのボタンには2種類あって、
自動的に付く名前が「ボタン1」になるのはフォームのボタンなので名前は変更できません
もう一種類の方、Active Xのボタンを貼り付けて下さい
同じメニューの中に並んでいますから、よく探してください
そして、貼り付けたボタンを右クリック→プロパティを開き、オブジェクト名をexeutingに変更してから
最後にボタンをダブルクリックすると、ご希望のひな形が作られます
0666デフォルトの名無しさん
2013/07/01(月) NY:AN:NY.ANVBAはゴミだから他の言語から覚えた方がいい
VBAから入ったやつは必ず変なクセ持ってるから使い物にならない
0667デフォルトの名無しさん
2013/07/01(月) NY:AN:NY.ANちらほら居るな
0668デフォルトの名無しさん
2013/07/01(月) NY:AN:NY.ANエクスポートしとくの忘れてたあああああああああああああああああああああああああ
あー、でもこれでなんかスッキリしたような気がしなくもない
0669デフォルトの名無しさん
2013/07/01(月) NY:AN:NY.AN0670デフォルトの名無しさん
2013/07/01(月) NY:AN:NY.AN0671デフォルトの名無しさん
2013/07/01(月) NY:AN:NY.ANありがとうございます。解決しました。
0672デフォルトの名無しさん
2013/07/01(月) NY:AN:NY.AN0673デフォルトの名無しさん
2013/07/01(月) NY:AN:NY.ANそれVBAでやることなのか?
0674デフォルトの名無しさん
2013/07/01(月) NY:AN:NY.AN先輩&社長から、量が膨大でミスが起きるから、VBA使って自動でやれるようにしろと言われたんで…
0675デフォルトの名無しさん
2013/07/01(月) NY:AN:NY.AN・シート2のデータの参照式をシート1に埋め込み、
・1行終わったら次の行に移って繰り返すよう
なマクロ書けばOK
0676デフォルトの名無しさん
2013/07/01(月) NY:AN:NY.AN0677デフォルトの名無しさん
2013/07/01(月) NY:AN:NY.AN0678桃白白 ◆9Jro6YFwm650
2013/07/01(月) NY:AN:NY.AN桃白白、Excel 2013のPreview版を使ってたんだけど、期限切れで使えなくなったの。
社長助けて。
0679デフォルトの名無しさん
2013/07/01(月) NY:AN:NY.AN�@ Sheet1
�A Module1
とあると思いますが、Formアプリケーションではない場合�@�Aどちらに
書くのが普通なのでしょうか?
0680デフォルトの名無しさん
2013/07/01(月) NY:AN:NY.AN0681デフォルトの名無しさん
2013/07/01(月) NY:AN:NY.AN0682デフォルトの名無しさん
2013/07/01(月) NY:AN:NY.ANWindows再インスコで期限リセットできない?
0683デフォルトの名無しさん
2013/07/01(月) NY:AN:NY.AN0684デフォルトの名無しさん
2013/07/01(月) NY:AN:NY.AN普通はThisWorkbookに書くんじゃね?
必要なければモジュール使うことないだろ
Sheet1はイベントハンドラ周りとか必要な時に書くだけ
まあ、最終的には動けばいいんだけど
0685デフォルトの名無しさん
2013/07/01(月) NY:AN:NY.ANボタンの名前変更は、ボタンを選択した状態で名前ボックスの所で書き換えれる
名前ボックスは数式バーの左横にあるやつな。セルの名前とか出るとこ
>>665
フォームのボタンでも名前は変えられます
0686デフォルトの名無しさん
2013/07/01(月) NY:AN:NY.ANはぁ?
0687デフォルトの名無しさん
2013/07/01(月) NY:AN:NY.AN畜生ォ・・・持っていかれたァ・・・ッッ!!って感じで
だからマクロはモジュールに書くようにしています
0688デフォルトの名無しさん
2013/07/01(月) NY:AN:NY.ANThisWorkbookって
Workbook_open()とかの
ワークブックイベントしか書けないはずだが…違ったかな
0689デフォルトの名無しさん
2013/07/01(月) NY:AN:NY.ANプログラミング言語が宇宙語に見えてしまう程全然やったことのない初心者です。
皆さんはどうやってVBAを勉強しましたか?
参考にさせてください。
0690デフォルトの名無しさん
2013/07/01(月) NY:AN:NY.ANすぐにマスターできるよ
0691デフォルトの名無しさん
2013/07/01(月) NY:AN:NY.AN0692デフォルトの名無しさん
2013/07/01(月) NY:AN:NY.ANすると不思議なことに
次の日にはVBAのコードを楽々書けるようになっていたのです
それだけではありません
身長も伸びスリムになりIQも増えました
上司からも認められ昇進が決まりました
あなたもVBAをやめてC言語を学び豊かな毎日を手に居れましょう
0693デフォルトの名無しさん
2013/07/02(火) NY:AN:NY.AN0694デフォルトの名無しさん
2013/07/02(火) NY:AN:NY.ANありがとうVBA
こんな感じで合ってる?
0695デフォルトの名無しさん
2013/07/02(火) NY:AN:NY.AN> ThisWorkbookって
> Workbook_open()とかの
> ワークブックイベントしか書けないはずだが…違ったかな
そんなことない。普通に関数を書くことができる。
0696デフォルトの名無しさん
2013/07/02(火) NY:AN:NY.AN0697デフォルトの名無しさん
2013/07/02(火) NY:AN:NY.ANIf Man.Face = vbIkemen Then GetKanojo = True
End Function
糞コード
0698デフォルトの名無しさん
2013/07/02(火) NY:AN:NY.AN0699デフォルトの名無しさん
2013/07/03(水) NY:AN:NY.AN0700デフォルトの名無しさん
2013/07/03(水) NY:AN:NY.ANこんな感じ。
Dim r As Range
Set r = Range("T6")
Dim i As Long
For i = 1 To 3
r.Value = "ぱいぱい"
Set r = r.Offset(ColumnOffset:=10)
Next
0701デフォルトの名無しさん
2013/07/03(水) NY:AN:NY.AN0702デフォルトの名無しさん
2013/07/03(水) NY:AN:NY.ANそんなこと言ったら、雨降ってるときに傘ささずに外歩いたらずぶ濡れになるわ。はい論破。
0703デフォルトの名無しさん
2013/07/03(水) NY:AN:NY.ANセル範囲を指定する場合
For c = Range("T6").Column To Range("EZ6").Column Step 10
Cells(6, c) = "ほげ"
Next
データの個数を指定する場合
For i = 1 To 20 ' 個数
Cells(6, Range("T6").Column + (i - 1) * 10) = "もげ"
Next
0704デフォルトの名無しさん
2013/07/04(木) NY:AN:NY.AN現在、R8に列名が書かれており、R9以降に文字列を埋め込みたいと考えています。
0705デフォルトの名無しさん
2013/07/04(木) NY:AN:NY.AN0706デフォルトの名無しさん
2013/07/04(木) NY:AN:NY.AN白桃はやくしてやれよ
0707デフォルトの名無しさん
2013/07/04(木) NY:AN:NY.AN「文字列を埋め込む」ってどういうこと?
0708デフォルトの名無しさん
2013/07/04(木) NY:AN:NY.AN0709デフォルトの名無しさん
2013/07/04(木) NY:AN:NY.ANそんなにこのスレを荒らしたいのか?
0710デフォルトの名無しさん
2013/07/04(木) NY:AN:NY.ANすみません、分かりづらいですよね…
入力したいと言うことです。
0711デフォルトの名無しさん
2013/07/04(木) NY:AN:NY.AN文字列が含まれるかどうか
→InStr()
文字列"abc"の二文字目に"XYZ"を挿入する
→2文字目から0文字を"XYZ"に置換する
→Application.Replace("abc", 2, 0, "XYZ")
0712711
2013/07/04(木) NY:AN:NY.ANR9「以降」ってどういうことだよ…
後はまかせた。
0713デフォルトの名無しさん
2013/07/04(木) NY:AN:NY.AN0714デフォルトの名無しさん
2013/07/04(木) NY:AN:NY.AN0715デフォルトの名無しさん
2013/07/04(木) NY:AN:NY.ANForステートメントは書けるのかな?
0716デフォルトの名無しさん
2013/07/04(木) NY:AN:NY.ANforは書けます。
多分、IF文で列中に該当する文字列があるか見て、該当していたら、入力したい内容を、該当していなければ、また別の処理をさせるという流れなんでしょうが、列名で条件分岐の方法が分からないんです。
0718デフォルトの名無しさん
2013/07/04(木) NY:AN:NY.ANIf InStr(1, Range("R8").Value, "特定の文字列", vbTextCompare) > 0 Then
……
End If
0719デフォルトの名無しさん
2013/07/04(木) NY:AN:NY.AN計算式設定(C1:C3に「=A列*B列」をまとめて設定する場合)
→ Range("C1:C3").FormulaR1C1 = "=RC1*RC2"
0720デフォルトの名無しさん
2013/07/04(木) NY:AN:NY.AN0721デフォルトの名無しさん
2013/07/06(土) NY:AN:NY.AN0722デフォルトの名無しさん
2013/07/08(月) NY:AN:NY.AN例えば行A列の1行目から5000行目までに適当な数値が書かれてるんですが
そこに1行目から5000行目まで一気にそれぞれの数値を100プラスしたいというときに
do loop文を使わずに一括で足し算するみたいなことってできるんでしょうか?
loop使うと時間かかるので、この作業を出来ればloopよりもっと一瞬で行えるようにしたいです。
0723デフォルトの名無しさん
2013/07/08(月) NY:AN:NY.ANでググれ
0724722
2013/07/08(月) NY:AN:NY.ANとりあえず考えてみてB列の1行から5000行まで100と入れておいて
C列の1から5000行に "=SUM(RC[-2]:RC[-1])" と文字で一括貼り付けする。というのが
一応早いみたいですが、これより良いのあるでしょうか?
0726デフォルトの名無しさん
2013/07/08(月) NY:AN:NY.AN× 乗算
0727デフォルトの名無しさん
2013/07/08(月) NY:AN:NY.AN0728桃白白 ◆9Jro6YFwm650
2013/07/08(月) NY:AN:NY.ANじゃあ何のせいだと思うが?
0729デフォルトの名無しさん
2013/07/08(月) NY:AN:NY.AN配列に一括代入して、配列操作して一括で戻すと早い、EXCELVBAでの基本テク
Sub test1()
Dim i As Long
For i = 1 To 50000
Cells(i, 1).Value = Cells(i, 1).Value + 100
Next
End Sub
Sub test2()
Dim i As Long
Dim r
r = Range("A1:A50000")
For i = 1 To 50000
r(i, 1) = r(i, 1) + 100
Next
Range("A1:A50000") = r
End Sub
比べて見れ。50000なのは5000じゃ体感できる差が無かったからな
0730729
2013/07/08(月) NY:AN:NY.ANこれどうやったら空白のまま書き込みできるんだ?
0731桃白白 ◆9Jro6YFwm650
2013/07/08(月) NY:AN:NY.ANねー。この間まで でいけてたと思うんだけど、昨今は全角半角ばかりだよ。
0732デフォルトの名無しさん
2013/07/08(月) NY:AN:NY.AN&nbsp;で駄目なら、全角スペースで インデント すればいいよ。
0733デフォルトの名無しさん
2013/07/08(月) NY:AN:NY.AN0734722
2013/07/08(月) NY:AN:NY.ANありがとうございます。それも一瞬でできるみたいですね。
ちなみに Dim r のあとは、as 何とかって形で形式は
指定しないんですね?
0735722
2013/07/08(月) NY:AN:NY.AN解決しました。
たしかにこちらのやりかたは、加算、などする数値にまた変数を組み込めたりして
便利そうですね。ありがとうございました。
0736722
2013/07/08(月) NY:AN:NY.ANVBAを適当なマニュアルサイトで勉強してたときには無かったんですよね。
これは色々便利ですね。ありがとうございました。
0737デフォルトの名無しさん
2013/07/08(月) NY:AN:NY.ANセルの読み書きに時間がかかるから、配列に一気に読み込んで、演算処理して、一気に書き戻す。
一瞬で終わるかどうかは環境次第だけど、かなり速くなるはず。
0738デフォルトの名無しさん
2013/07/08(月) NY:AN:NY.AN5万件でも1秒
0739デフォルトの名無しさん
2013/07/08(月) NY:AN:NY.AN人に使ってもらうマクロの場合も、一瞬で終わり過ぎると逆に不安になるらしく
頑張ってる感を演出する為にもCellsで回して、Application.StatusBarとかに進捗表示させてます
0740デフォルトの名無しさん
2013/07/08(月) NY:AN:NY.AN0741デフォルトの名無しさん
2013/07/08(月) NY:AN:NY.AN0742デフォルトの名無しさん
2013/07/08(月) NY:AN:NY.AN0743デフォルトの名無しさん
2013/07/08(月) NY:AN:NY.AN0744デフォルトの名無しさん
2013/07/08(月) NY:AN:NY.AN0745722
2013/07/09(火) NY:AN:NY.ANいやぁ、実際には5万件でも明らかにコンマ数秒ぐらいの1瞬でした。配列で飲み込まずに一個ずつやると
17秒かかったんですけどね。
0746722
2013/07/09(火) NY:AN:NY.AN0747デフォルトの名無しさん
2013/07/09(火) NY:AN:NY.AN全体で見たら早くなってるけど、単純な演算は遅くなってる
早くなってるのはセルの値や情報の取得設定などの、所謂オブジェクト操作
0748デフォルトの名無しさん
2013/07/09(火) NY:AN:NY.ANソースある?
単純な演算を遅くする or 遅くなる理由が思い付かないんだが
0749デフォルトの名無しさん
2013/07/09(火) NY:AN:NY.AN0750デフォルトの名無しさん
2013/07/09(火) NY:AN:NY.AN0751デフォルトの名無しさん
2013/07/10(水) NY:AN:NY.AN0752デフォルトの名無しさん
2013/07/10(水) NY:AN:NY.AN0753デフォルトの名無しさん
2013/07/10(水) NY:AN:NY.AN0754デフォルトの名無しさん
2013/07/10(水) NY:AN:NY.ANダミアンさんの言うクセってどんなん?
0755デフォルトの名無しさん
2013/07/11(木) NY:AN:NY.AN0756デフォルトの名無しさん
2013/07/12(金) NY:AN:NY.AN0757デフォルトの名無しさん
2013/07/12(金) NY:AN:NY.ANまぁ、そのうち任意切り替え(選択)ではなく、
強制切り替え(マクロ言語をVB6系からVB.NET系に変更)はされるかもだけどな
まあ、今は他のオフィスソフトもマクロを強化されてるので
マクロ言語をVB.NETに変えると一気にユーザー離れする恐れがあるから
その辺はMSも慎重になるだろうけど
0758デフォルトの名無しさん
2013/07/12(金) NY:AN:NY.AN使っているのはプロの開発者ばかりじゃないんだからさ
エンドユーザーが忙しい業務の合間に苦心して開発して
自動化に役立てていたりするのが大半でしょ
そういう人は他の言語を覚える余裕がないから
VBAを切り捨てられたらたぶん世界中から非難の嵐
0759デフォルトの名無しさん
2013/07/12(金) NY:AN:NY.AN0760デフォルトの名無しさん
2013/07/12(金) NY:AN:NY.ANExcel4 マクロと VBA の両方が動作していた時もあるんだから (そう言えば Excel4 マクロってどうなったんだっけ?)
0761デフォルトの名無しさん
2013/07/12(金) NY:AN:NY.AN0762デフォルトの名無しさん
2013/07/12(金) NY:AN:NY.ANそういう欠点だらけで糞なものを紹介するな
0763デフォルトの名無しさん
2013/07/12(金) NY:AN:NY.AN23:00:00に1時間足すと翌日の零時にならないのは何故ですか?
イミディエイトウインドウで試したら下のような結果になります。
? DateAdd("h", 1, "2013/07/01 22:00:00")
2013/07/01 23:00:00
? DateAdd("h", 1, "2013/07/01 23:00:00")
2013/07/02
? DateAdd("h", 1, "22:00:00")
23:00:00
? DateAdd("h", 1, "23:00:00")
1899/12/31
0764デフォルトの名無しさん
2013/07/12(金) NY:AN:NY.AN? DateAdd("h", 1, "2013/07/01 23:00:01")
2013/07/02 00:00:01
0765デフォルトの名無しさん
2013/07/12(金) NY:AN:NY.AN表示だけの問題かと。
?Format(DateAdd("h", 1, "2013/07/01 23:00:00"), "YYYY/MM/DD hh:mm:ss")
2013/07/02 00:00:00
0766デフォルトの名無しさん
2013/07/12(金) NY:AN:NY.AN途方に暮れていました。
結果を変数に入れててもエラーが出てたので気づきませんでした。
本当に感謝です。m(_ _)m
結果が00:00:00だとこの現象になる見たいです。
?dateadd("n",10,"2013/07/01 23:50:00")
2013/07/02
0767デフォルトの名無しさん
2013/07/12(金) NY:AN:NY.AN日付時刻の型で、時刻部分が00:00:00なら日付として使ってるだろっていう勝手なおせっかいだな
逆に日付が部分がデフォルト日付なら時刻として使ってるだろっていう勝手なおせっかいもあるのか
しかしなぜそれが1899/12/30なんだろ
0768デフォルトの名無しさん
2013/07/12(金) NY:AN:NY.AN0769デフォルトの名無しさん
2013/07/13(土) NY:AN:NY.ANその理由を説明するにはlotus 1-2-3の話に遡る必要がある。
0770デフォルトの名無しさん
2013/07/13(土) NY:AN:NY.ANロータス?是非お聞かせ願いたい
0771デフォルトの名無しさん
2013/07/13(土) NY:AN:NY.AN整数で十分だろ
0772デフォルトの名無しさん
2013/07/13(土) NY:AN:NY.ANスレ違いなので、やりたければBソフ板の
Excel雑談スレでやってね
0773デフォルトの名無しさん
2013/07/13(土) NY:AN:NY.ANだそうだ
また別の機会に
0774デフォルトの名無しさん
2013/07/13(土) NY:AN:NY.ANBソフ板で。では。
0775デフォルトの名無しさん
2013/07/13(土) NY:AN:NY.ANエクセルのマクロでは自分が作ったコード郡をどのように保管運用するのが普通なんでしょう。
エクセルのデータに埋め込むマクロはそれでいいんでしょうが、そうでない汎用的なサブルーチンや
エクセルの個別の書類にあまり依存しないマクロを書いている場合、今現在はエクセルが勝手に作る
personal.xlsとかいう書類に埋め込まれて保存されている状態で、そこからインポート・エクスポート
して使っている状態ですが、みなさんはどのような環境で自分のコード郡を作成・保存し、他人に
あげたりしてるんですか? なんか気持ち悪いけどこれが普通なんでしょうか。
0776デフォルトの名無しさん
2013/07/13(土) NY:AN:NY.AN0777デフォルトの名無しさん
2013/07/13(土) NY:AN:NY.AN業務だとバージョン管理システムとかあるけどVBAに適用している例は知らない
0778デフォルトの名無しさん
2013/07/13(土) NY:AN:NY.ANアドインとして保存
0779デフォルトの名無しさん
2013/07/13(土) NY:AN:NY.ANエクスポートして subversion に突っ込んでる。
0780デフォルトの名無しさん
2013/07/13(土) NY:AN:NY.ANそれはDB操作やロガー等、再利用性が高く再利用前提のクラス?
0781デフォルトの名無しさん
2013/07/13(土) NY:AN:NY.ANクラス、フォーム、モジュール 全部 + Excel ブック
0782デフォルトの名無しさん
2013/07/13(土) NY:AN:NY.AN差分取るには良いかもだけど面倒そう
0783デフォルトの名無しさん
2013/07/13(土) NY:AN:NY.AN0784デフォルトの名無しさん
2013/07/13(土) NY:AN:NY.ANアクティブじゃない時のキーボードイベントってどうすれば捕捉できるんだろう
0785デフォルトの名無しさん
2013/07/13(土) NY:AN:NY.ANアクティブかどうかは関係無いっしょ
0786デフォルトの名無しさん
2013/07/13(土) NY:AN:NY.AN全部のモジュール等をエクスポートするためのマクロボタン作ってあるから、エクスポートしてコミットするだけ。
変更の有無は subversion が判断するから、慣れればさほど面倒じゃないよ。
ただ、フォーム (*.frx) の差分がとれないのが残念。
0787デフォルトの名無しさん
2013/07/13(土) NY:AN:NY.ANそれは流石に非効率かな
イベントで処理したい
0788デフォルトの名無しさん
2013/07/13(土) NY:AN:NY.AN効率的にやりたいなら、組み込みマクロ言語ではなく
アプリ開発言語使えば良いだけだし
0789デフォルトの名無しさん
2013/07/13(土) NY:AN:NY.ANそう思ってた時(ry
0790デフォルトの名無しさん
2013/07/13(土) NY:AN:NY.AN0791デフォルトの名無しさん
2013/07/13(土) NY:AN:NY.AN0792デフォルトの名無しさん
2013/07/13(土) NY:AN:NY.AN0793デフォルトの名無しさん
2013/07/14(日) NY:AN:NY.ANVBAではAddressOfが無いからなぁ、と思ってたが
有るじゃないか、AddressOf演算子
いつのバージョンからあるんだろ?頑張ればできるんじゃね、今のバージョンなら
0794デフォルトの名無しさん
2013/07/14(日) NY:AN:NY.AN0795デフォルトの名無しさん
2013/07/14(日) NY:AN:NY.ANあれを今アクティブなセルを書き換えないで関数を呼びたいのですができませんか?
あとサブルーチンも呼びたいです
0796デフォルトの名無しさん
2013/07/14(日) NY:AN:NY.ANsellに001 002 と0が頭についた数値を表記したい場合はどうすれば良いのでしょうか?
0797デフォルトの名無しさん
2013/07/14(日) NY:AN:NY.AN0799デフォルトの名無しさん
2013/07/14(日) NY:AN:NY.AN0800デフォルトの名無しさん
2013/07/14(日) NY:AN:NY.AN×つでに
○ついでに
0801デフォルトの名無しさん
2013/07/14(日) NY:AN:NY.AN0802デフォルトの名無しさん
2013/07/14(日) NY:AN:NY.ANOption Explicit
Public Sub Hoge()
Debug.Print "Hello"
End Sub
Public Sub Fuga()
Debug.Print "*****"
Application.Evaluate ("Hoge()")
Debug.Print "*****"
End Sub
*****
Hello
Hello
*****
なんで2回よばれてしまうんですか?
0803デフォルトの名無しさん
2013/07/14(日) NY:AN:NY.ANかなあ
0804デフォルトの名無しさん
2013/07/15(月) NY:AN:NY.AN同じ方法で対応できるかは解らないが、ググってみれば?
あとは対処療法で1回しか実行されないようにする方法はいくらでもあるので、それで間に合わせるとかね
0805796
2013/07/15(月) NY:AN:NY.AN0806デフォルトの名無しさん
2013/07/15(月) NY:AN:NY.AN会社の先輩が言うには持ち込み禁止の現場でもエクセルならまず入ってるからと苦しい理由を述べていたのですが…
いくらなんでも開発用の環境はあるはずなのでそれを使うべきではないでしょうか?
0807デフォルトの名無しさん
2013/07/15(月) NY:AN:NY.AN17万ぐらいある
https://www.google.co.jp/search?q=VBA+メリット&safe=off&client=safari&hl=ja&nomo=1&biw=320&bih=504
0808デフォルトの名無しさん
2013/07/15(月) NY:AN:NY.ANオートフィルタの抽出結果の中にある空白セルをカウントするには
どうしたらいいでしょうか?
空白セルの有無で処理を分岐させたいのです。
0809デフォルトの名無しさん
2013/07/15(月) NY:AN:NY.AN甘いな
開発環境がExcelしかない現場など星の数ほどある
0810デフォルトの名無しさん
2013/07/15(月) NY:AN:NY.AN0811デフォルトの名無しさん
2013/07/15(月) NY:AN:NY.ANホントか?
Excel 入ってて Word 入ってない PC なんて見たことないし、メモ帳あれば vbs とかでも開発できるんだよ。
0812デフォルトの名無しさん
2013/07/15(月) NY:AN:NY.ANそうだよ
というか、現場で既存のExcelブックにVBAを打ち込んで
そのまま使ってもらうだけ。
納品も実に簡単だ。
0813デフォルトの名無しさん
2013/07/15(月) NY:AN:NY.ANそれ以外の現場であえてエクセルを使う理由はありますか?
0814デフォルトの名無しさん
2013/07/15(月) NY:AN:NY.ANうざいわ
0815デフォルトの名無しさん
2013/07/15(月) NY:AN:NY.AN理想と現実は385度ぐらい違うし民衆の約122%はバカで豚なんだよ
0816デフォルトの名無しさん
2013/07/16(火) NY:AN:NY.AN0817デフォルトの名無しさん
2013/07/17(水) NY:AN:NY.AN2行目へ移動して同じ事を繰り返す方法を教えてください。
0818デフォルトの名無しさん
2013/07/17(水) NY:AN:NY.ANそれをそのままコードにすれば良いだけじゃん
0819デフォルトの名無しさん
2013/07/17(水) NY:AN:NY.ANforかwhile内でif置くだけの簡単な処理です
要件の規模によっては手でやれよってなる
0820デフォルトの名無しさん
2013/07/17(水) NY:AN:NY.ANどこまでコードができてるの?
コードができていないというのは論外だけど。
0821ピラフ
2013/07/17(水) NY:AN:NY.ANピラフが教えてあげちゃう。
こんな感じ。
Dim row
For row = 1 To 256
If Cells(row, 1).Value = "" Then
Exit For
Else
Dim column
For column = 1 To 256 Step 10
If Cells(row, column).Value = "" Then
Exit For
Else
Cells(row, column).Formula = "hoge"
End If
Next
End If
Next
0822デフォルトの名無しさん
2013/07/17(水) NY:AN:NY.ANネスト深過ぎw
0823ピラフ
2013/07/17(水) NY:AN:NY.ANFor文やIf文でネストするなとでもいうつもりでしょうか?
可読性下がって保守しづらくなるばかりだと思いますが?ピラフ的にはそう思いますが!!
0824デフォルトの名無しさん
2013/07/17(水) NY:AN:NY.ANつか相手にしちゃいけない奴のにおいがするな
0825ピラフ
2013/07/17(水) NY:AN:NY.AN256というのはピラフの頭脳から出てきた数字。
別になんでも良かったんだが、きりのいいところで適当に選んだ。
ピラフはそういう決断力を持ってる。256で足りなければ65536でもいいし、
Rows.Countでもいい。その辺は質問者の環境に合わせて適当に書きかえればいい。
テンプレにも書いてあるとおり質問者はプログラマーであることが前提となってるわけだから、
その辺は適当に対処できる能力を有するものと考えて差し支えないものと思われる。
ピラフは256という数字でいいがかりをつけたお前を心底頭の悪いやつだと思ってる。
0826デフォルトの名無しさん
2013/07/17(水) NY:AN:NY.ANまあ、やっぱり相手にしちゃいけない奴だったようだから以後無視することにするわ
0827デフォルトの名無しさん
2013/07/17(水) NY:AN:NY.AN0828ピラフ
2013/07/17(水) NY:AN:NY.AN書き逃げw ダッセwww
書き換えればいいじゃねえか。マジックナンバが嫌なら。
質問とは関係ないがな。お前どうせ回答できねえだろ。
無視するとかカッコつけてるが、答えられないだけだろ。みんな気付いてるよ。
0829デフォルトの名無しさん
2013/07/17(水) NY:AN:NY.AN0830デフォルトの名無しさん
2013/07/17(水) NY:AN:NY.AN範囲がわからないときは、とりあえずcurrentregion使っとけ
0831ピラフ
2013/07/17(水) NY:AN:NY.ANそれが嫌なら嫌だと思った奴がやらなきゃいい。
それくらい自分で判断してできるだろ。お前はピラフからいちいち指示されなきゃ
できない3歳児なのか?テンプレに書いてあるプログラマは他人から質問と関係ないような
細かいことまでピラフから指図されなければできない奴のことを言ってるんじゃないんだよ。
質問に回答してないやつがくだらない揚げ足取りしてんじゃねえよ。ピラフぶち切れんぞ。お前もピラフぶち切れさせたくないだろ?
ピラフが世界最強の殺し屋だったらピラフはお前を一撃で殺害してやってるところだわ。
0832デフォルトの名無しさん
2013/07/17(水) NY:AN:NY.AN0833デフォルトの名無しさん
2013/07/17(水) NY:AN:NY.AN0834ピラフ
2013/07/17(水) NY:AN:NY.ANそれはピラフに言うことじゃない。質問者に言うことだ。こっちの方がいいよと
お前が質問者に全力で示せばいい。ピラフは関係ない。
0835デフォルトの名無しさん
2013/07/17(水) NY:AN:NY.AN0836デフォルトの名無しさん
2013/07/17(水) NY:AN:NY.AN正論だけど的外れな指摘
0837デフォルトの名無しさん
2013/07/17(水) NY:AN:NY.AN0838デフォルトの名無しさん
2013/07/17(水) NY:AN:NY.AN0839ピラフ
2013/07/17(水) NY:AN:NY.ANピラフ今日初めてここに書き込んだからときどきというのは
間違ってると思うけど、ピラフは嘆かわしいよ。こんな書き込みしかなかったんだよ。。。
1年前は2〜3人技術力のあるすてきな人がいたと思うんだけど。
818 :デフォルトの名無しさん [↓] :2013/07/17(水) NY:AN:NY.AN
>>817
それをそのままコードにすれば良いだけじゃん
819 :デフォルトの名無しさん [↓] :2013/07/17(水) NY:AN:NY.AN
>>817
forかwhile内でif置くだけの簡単な処理です
要件の規模によっては手でやれよってなる
820 :デフォルトの名無しさん [↓] :2013/07/17(水) NY:AN:NY.AN
>>817
どこまでコードができてるの?
コードができていないというのは論外だけど。
0840デフォルトの名無しさん
2013/07/17(水) NY:AN:NY.AN818 819 820 >>817の論点の絞れない質問に対しては皆まともな回答じゃん。
中でも>>820 どこまでコードができてるの?
が一番適切だろう。これに質問者が答えてようやく回答の方向が見つかるレベル。
現状でコードを書くならピラちゃんの>>821 こんな感じ が限度じゃない。
「こんな感じ」のヒントコードに文句をつけている人は単なるクレーマにしか見えない。
クレーマより白白みたいに質問者の意図を考慮しない自己満足コードを張り付けて「どうだ」
と開きなおっているほうがまだましな。
0841ピラフ
2013/07/17(水) NY:AN:NY.ANAする方法を知りたい。
817
Aすればいい。
819
Aしなくていい。
820
俺は論外。
ピラフ
こうすればいいよ。
正常なのはピラフだけ。
0842ピラフ
2013/07/17(水) NY:AN:NY.AN優越感に浸りたいだけなんだよな。だからピラフがふつうの良識ある回答する
とがたがた難癖つけて怒る。かわいそう!ピラフかわいそう!!
0843ピラフ
2013/07/17(水) NY:AN:NY.AN回答者はあっちこっちで同じような回答したり、情報を後出ししたり平気でやる。
回答者のモラルが崩壊している。ピラフはこのスレで回答者のモラルを
取り戻すために頑張りたい。それがこの落ちぶれたスレのためになると思う。
応援よろしくお願いします。
0844デフォルトの名無しさん
2013/07/17(水) NY:AN:NY.AN「これを使いたまえ」
全然正常じゃない。
0845デフォルトの名無しさん
2013/07/17(水) NY:AN:NY.AN0846デフォルトの名無しさん
2013/07/17(水) NY:AN:NY.ANいい加減にしろよ
0847ピラフ
2013/07/17(水) NY:AN:NY.ANちがうよ!ぜんぜんちがうよ!!
ピラフという名前が高貴さを感じさせるからピラフを貴族だと
思ったのかもしれないけれども、ピラフは使いたまえなんて言えるほど貴族じゃないよ。
ピラフという名前はピラフがまだお母さんのお腹の中にいるときに
おばあちゃんが食べ物のピラフのように熱いハートを持ってピラフの味のように
人々をほっこりさせるような人になってほしいというそういう優しいおばあちゃんの
思いが込められたものなんだよ。ピラフは大好きなおばあちゃんに誓っていうけど、ぜんぜん違うよ。
0848ピラフ
2013/07/17(水) NY:AN:NY.ANマジックナンバは突っ込みどころ間違ってると思うんだー。
だからマジックナンバ嫌な人はマジックナンバを自分で書き換えたまえ。
0849デフォルトの名無しさん
2013/07/17(水) NY:AN:NY.AN0850デフォルトの名無しさん
2013/07/17(水) NY:AN:NY.AN0851デフォルトの名無しさん
2013/07/17(水) NY:AN:NY.AN0852デフォルトの名無しさん
2013/07/17(水) NY:AN:NY.AN0853デフォルトの名無しさん
2013/07/17(水) NY:AN:NY.AN0854デフォルトの名無しさん
2013/07/17(水) NY:AN:NY.AN0855ピラフ
2013/07/17(水) NY:AN:NY.ANほとんどピラフじゃん。なにそれ意味わかんない。ピラフゴミじゃないし!!
0856デフォルトの名無しさん
2013/07/17(水) NY:AN:NY.ANそもそも「10行おき」ってstep 10なのか?みたいな曖昧な質問だから、模範解答も糞も無い。
step 11なんじゃないかとも思ったりするが、答えるつもりも無いんでどうでもいい。
0857デフォルトの名無しさん
2013/07/17(水) NY:AN:NY.ANA1からA10までの計算式セットをA11からA20まで、A21からA30まで
ってやりたいんじゃないかと思ったり
0858デフォルトの名無しさん
2013/07/17(水) NY:AN:NY.AN0859ピラフ
2013/07/17(水) NY:AN:NY.AN回答者が議論することで読解力を身につけるいい機会だと思うよ。ピラフ的には問題ないと思うよ。
0860デフォルトの名無しさん
2013/07/17(水) NY:AN:NY.AN0861デフォルトの名無しさん
2013/07/17(水) NY:AN:NY.ANCells(row, column).Formula = "hoge"
しかなくておじさん辛い。
0862デフォルトの名無しさん
2013/07/17(水) NY:AN:NY.AN>>821「読み解いて適宜修正しろや!シネカス!」
他「プークスクス」
0863デフォルトの名無しさん
2013/07/18(木) NY:AN:NY.AN誰かVBAでちょろっと説明して下さい。
0864デフォルトの名無しさん
2013/07/18(木) NY:AN:NY.ANsumifsとかcountifsの文字列結合版のユーザー関数(catifs)を作ってみました。
引数はほぼsumifsとかcountifsと同じで、違いはデリミタを指定できる点ぐらい。
=catifs(結合範囲, デリミタ, 条件範囲1, 条件1, 条件範囲2, 条件2...)
一応期待通りの動きはしてるんですが、各条件範囲をぶっこんだVariant型配列(仮にCriteriaRanges)の呼び出しが重い。
このCriteriaRangesは、条件範囲(Range型)を代入したVariant型の配列をさらに、
CriteriaRanges(0)に条件1の条件範囲、CriteriaRanges(1)に条件2の条件範囲・・・となるようまとめた代物です。
(ex.CriteriaRanges(3)(5, 1)で「条件4の条件範囲の、上から5番目の左端のセルの値」にアクセスできます)
試しにこの数式を200行くらにい貼り付けると、30秒近く画面が固まったままになります。
やっぱりこの配列が原因なんでしょうか? また、より高速に処理する方法はないでしょうか?
0865デフォルトの名無しさん
2013/07/18(木) NY:AN:NY.AN0866デフォルトの名無しさん
2013/07/18(木) NY:AN:NY.AN○○とはでググれば一番最初に丁寧な概念解説がでてくるじゃん。
Excel実装例でいったら、OSやMSの版によってオブジェクトの有無や違いがある場合に、版を取得・判断し、必要とするオブジェクトを返す。とか。
HTTP通信関係のオブジェクトの、MSXMLだかなんとかSERVERなんかで、OBJECTの版数(x.x)が端末によって違いがあって、create→onerrorで探す・・・あ、これはエラー回避処理か。
>>864
ソースはよ
1,000まで>>864のブラッシュアップで遊ぼうぜ
0867デフォルトの名無しさん
2013/07/18(木) NY:AN:NY.AN0868デフォルトの名無しさん
2013/07/18(木) NY:AN:NY.AN人の書いたソースをいじった方が楽だし
0869デフォルトの名無しさん
2013/07/18(木) NY:AN:NY.AN0870デフォルトの名無しさん
2013/07/18(木) NY:AN:NY.AN0871デフォルトの名無しさん
2013/07/18(木) NY:AN:NY.AN0872デフォルトの名無しさん
2013/07/18(木) NY:AN:NY.ANセルへのアクセスは遅いってのは定説
セル範囲で受け取ったら、セル範囲の値を配列に入れてから使えよ
これ以上はソースさらせ
0873デフォルトの名無しさん
2013/07/19(金) NY:AN:NY.ANセルP2にセルG4の文字列"20130718"を
.Range("P2").value = Mid(.Range("G4"), 5, 2) & "/" & Right(.Range("G4"), 2)
の様に変換して入力し、セルの書式設定で"dd"として日付のみ表示しています。
(数式バーには 2013/7/18 と表示されています)
これをセルQ2に=P2+1と数式を入れ行方向にオートフィルしています。
G列にはG4の様な8桁の数字(日付)が入力されているので
このオートフィルした範囲をG列の各セルをキーワードとして検索したいのですか
Findでヒットしません。
ちなみに
I = .Range("Q2").value とするとローカルウィンドウには"2013/07/18"
と表示されます。
下手な説明で申し訳ありませんが、このような場合どうしたら検出来るようになりますか?
0874デフォルトの名無しさん
2013/07/19(金) NY:AN:NY.ANとりあえずそのヒットしないって言うFindのとこさらせ
あとオートフィルした所は結局どんな値か式が入ってるんだ?
どうせ検索元と検索対象で型が違うだけだろ。日付を文字で検索してるかその逆か
0875デフォルトの名無しさん
2013/07/19(金) NY:AN:NY.ANGとQをtypenameで確認
Gが数値でQが日付なんだろう
それにしても読みにくいな
説明が云々を免罪符にせず
100回読み直して添削してよ
0876デフォルトの名無しさん
2013/07/19(金) NY:AN:NY.ANDim lRow As Long
Dim r As Integer, s As String
Dim Obj As Range
With Worksheets("データ")
.Range("P2").value = Mid(.Range("G4"), 5, 2) & "/" & Right(.Range("G4"), 2)
lRow = .Cells(Rows.Count, 1).End(xlUp).Row
For r = 4 To lRow
s = Cells(r, 7).value
s = Right(s, 2)
Set Obj = .Range("P2:CU2").Find(s, SearchOrder:=xlByRows)
If Obj Is Nothing Then
MsgBox "データが見つかりませんでした。"
Else
Obj.Select
End If
です。
この状態で最初のP2は検索にヒットしますが、
s = Mid(s, 5, 2) & "/" & Right(s, 2)
とするとP2もヒットしなくなります。
オートフィルした所は左隣りのセル+1としてします(Q2なら=P2+1,R2ならQ2+1)
>>875
確認した所P2,Q2ともDateでした。
おっしゃる通りで申し訳ない。
0877デフォルトの名無しさん
2013/07/19(金) NY:AN:NY.ANみんなが指摘しているように検索キーと対象の型があっていないだけでしょう
特に日付型の場合はFormatを完全に合わせないと検索できないよ
s = Mid(s, 5, 2) & "/" & Right(s, 2) '見かけ上の日付型を
s = Format(s, .Range("P2").NumberFormat) 'Range("P2")の型に合わせる
で試してみて
0878デフォルトの名無しさん
2013/07/19(金) NY:AN:NY.AN張るならちゃんとしたコード張れよ
NextもEnd Withも無いじゃないか
検索の初期値は数式で検索だから、値で検索しろよ
Findの引数にLookIn:=xlValues追加するだけだ
0879デフォルトの名無しさん
2013/07/19(金) NY:AN:NY.ANアドバイス通り試しましたが、"20130521"で検索したのに対し、
Obj.Selectしたのは6/21のセルとなり、
また、"20130625"で検索をするとObj.Selectしたのは5/25のセルとなり、
望んだ結果通りにはなりませんでした。
>>878
コードのコピペミスすみません。
LookIn:=xlValuesを追加して試したのですが、
同じように違う月の日付が検索結果として出てきました。
お二人のアドバイスを両方組み合わせたり、
s = Left(s, 4) & "/" & Mid(s, 5, 2) & "/" & Right(s, 2)
s = Format(s, .Range("P2").NumberFormat)
としたりしてみたのですがどうも思うような結果になりません。
どうしたらいいでしょうか?
0880デフォルトの名無しさん
2013/07/19(金) NY:AN:NY.ANs = Cells(r, 7).value
s = Right(s, 2)
検索してるのは日付だけなんだから、違う付きの日付が検索されるのは正常だろうが
何がやりたいんだよお前
0881デフォルトの名無しさん
2013/07/19(金) NY:AN:NY.ANそれに気づき、879にも書いたように
s = Left(s, 4) & "/" & Mid(s, 5, 2) & "/" & Right(s, 2)
でもためしましたが、だめでした。
0882デフォルトの名無しさん
2013/07/19(金) NY:AN:NY.ANI = .Range("Q2").value
とし、せるQ2を確認するとDate型で#2013/05/22#
となっていました。
これに検索キーワードの型を合わせたいのですが、
Dim s1 As Date
s = Cells(r, 7).value
s1 = Format(s, Date)
としても型が合わないと実行時エラーが出ます。
どう修正したらいいでしょうか?
0883デフォルトの名無しさん
2013/07/19(金) NY:AN:NY.AN>セルの書式設定で"dd"として日付のみ表示しています。
を見落としていたわ
日付だけで月の違うデータが混在する表にどんな意味があるのか想像できないが
セルの表示 01,02,・・・01,02・・・
(セルの値 2013/05/01,2013/0502,・・・2013/06/01,2013/06/02・・・)
こんな表で 2013/06/01 のセルの場所を見つけたいってことだろう
見つかったセルのValueが[2013/06/01]かどうか判定する
(参考)FindのHelpをそのままコピペ、Doの中に判定文
Set c = .Find(s, lookin:=xlValues)
If Not c Is Nothing Then
firstAddress = c.Address
Do
If c.value = "2013/06/01" Then
おおあたり
Exit Do
End If
Set c = .FindNext(c)
Loop While Not c Is Nothing And c.Address <> firstAddress
End If
0884デフォルトの名無しさん
2013/07/19(金) NY:AN:NY.AN当然でしょう
Date はFormat関数に使用する表示書式指定文字ではありません。
日付型にを変換したいのなら yyyy/mm/dd の文字列にしてから CDate
但し、検索に使うならあまり意味はないよ。合わせるのは Format ね。
0885デフォルトの名無しさん
2013/07/19(金) NY:AN:NY.ANだから何がしたいんだ?
計算式で日付計算して日しか表示してないのに、年月日で検索したいのか?
.Findでやりたいなら
計算式やめるか、日しか表示してないのを年月日まで表示する
.Findでなくてもいいなら
自分でループしてチェックする
どっちかでやれ
0886882
2013/07/19(金) NY:AN:NY.ANなかなか思うようになりません。
やりたいことはガントチャートを作ろうとしていて
出来るだけページの横幅を抑えたいので
日付は1行目に月、2行目に日を表示してセルの幅を最小限に抑えようとしています。
材入り日をキーワードとし、P2から横方向に検索し、該当セルに色付けをしたいのです。
該当部のみ抽出したサンプルをupしました
よろしければ一度確認してみてください。
http://www1.axfc.net/uploader/so/2969597
DL Key tesu
SYORI1にFindで SYORI2にループでやろうとしていますが
どちらも失敗に終わっています。
>>883さんのも試しましたが、
If Not c Is Nothing Then
ですぐにEnd IFになりました。
書きかけのコードで見にくいと思いますが、お力をお貸しいただけると助かります。
0887ピラフ
2013/07/20(土) NY:AN:NY.ANナイスアップロード!ピラフも見ちゃう。
0888デフォルトの名無しさん
2013/07/20(土) NY:AN:NY.AN0889デフォルトの名無しさん
2013/07/20(土) NY:AN:NY.ANソースはよ
0890ピラフ
2013/07/20(土) NY:AN:NY.ANぇ・・・。
日付の検索は厄介だって田中さんも言ってた。
0891ピラフ
2013/07/20(土) NY:AN:NY.ANじつはピラフ、エクセル持ってなくてLibreOfficeで確認してるんだけど。
SearchOrderをxlByColumnsにしたら検索できた。
0892デフォルトの名無しさん
2013/07/20(土) NY:AN:NY.AN0893ピラフ
2013/07/20(土) NY:AN:NY.ANSYORI2は
If .Cells(r, 7).value = .Cells(2, a).value Then
これを
If s1 = .Cells(2, a).Value Then
にしたら検索できた。
0894デフォルトの名無しさん
2013/07/20(土) NY:AN:NY.ANいやガントチャートとか材料入り日とかそんなのどうでもいいから
エクセルブックとか怖くてダウンロードとか出来ねえわ
.Findでやりたいなら
計算式やめるか、日しか表示してないのを年月日まで表示する
.Findでなくてもいいなら
自分でループしてチェックする
どっちか選べよ
0895デフォルトの名無しさん
2013/07/20(土) NY:AN:NY.AN>If Not c Is Nothing ThenですぐにEnd IFになりました。
アホか
対象が見つかったらDoで回せというコードだから見つから無ければそのまま終了だろう
例でいうと 01が表示されているセルがいくつか見つかったらそのうちどれが正しいか判定するものだ
ヒットしたセルのValueを調べて事前に用意した正しいValueと比較-同じなら正解-違っていれば次を検索
>>879のようにddにはヒットするが対象が違うというコードの中に組み込んで初めて機能する
Helpもよく読め。
>日付は1行目に月、2行目に日を表示して
表を変えてよいのなら別の手もある
1行目に"yyyy/mm/dd"、2行目に月、3行目を日にして1行目を見た目非表示にする。
1行目を検索対象にして2行目、3行目の表示も1行目を参照。
これならセルの表示形式に惑わされることもない。
0896デフォルトの名無しさん
2013/07/20(土) NY:AN:NY.AN>>894は滅茶苦茶斜め上から目線で気に食わないけど言ってる事は正しいな。
対処方法としてはぱっと見て3つ位思い付くけど、
一つ目は>>893が言ってる様に、G列のセルから取得した値をDate型に変換して
シリアル値として比較する方法。
二つ目は逆に2行目の日付セルから取得した値を文字列型に変換して
文字列として比較する方法。
三つ目は隠し行を仕込んでおいて、そこに2列目に相対する年月日を書いておいて
それと比較する方法。
まぁこんなところか。
0897デフォルトの名無しさん
2013/07/20(土) NY:AN:NY.AN変なものシートに仕込まなくていいから現実的かな。
0898デフォルトの名無しさん
2013/07/20(土) NY:AN:NY.ANいちいちセルの値チェックしなくても横位置は解る
まあ俺なら多分そうする。要件次第だけど
0899デフォルトの名無しさん
2013/07/20(土) NY:AN:NY.ANCommandButton1_Click()を作りました
次にフォームを作り、そのフォーム上にactiveXコントロールのコマンドボタン作って、それをクリックしたら起こるイベント
CommandButtonForm_Click()を作りました
そのCommandButtonForm_Click()イベント時にCommandButton1_Click()の動作を行いたいのですが、どうすればいいのでしょう
フォームのコードのsub CommandButtonForm_Click()に
CommandButton1_Click
Call CommandButton1_Click
Sheet1.CommandButton1_Click
Call CommandButton1_Click
を入れてもエラーが起きてしまいます。
0900デフォルトの名無しさん
2013/07/20(土) NY:AN:NY.AN多分、Sheet1.CommandButton1_ClickがPrivateになってる
Publicにすれば呼び出せるけど、つくりとしてはお勧めじゃない
CommandButton1_Clickで処理する内容をPublicな別プロシジャーに書きだして
それを両方から呼ぶのが正当派なつくり
0901882
2013/07/20(土) NY:AN:NY.ANFor r = 4 To lRow
s = Cells(r, 7).value
s = Left(s, 4) & "/" & Mid(s, 5, 2) & "/" & Right(s, 2)
s1 = CDate(s)
For a = 16 To lColumn
If s1 = .Cells(2, a).value Then
.Cells(2, a).Select
MsgBox "あたり"
Exit For
End If
Next a
Next r
で行こうと思います。
皆さんありがとうございました。
0902デフォルトの名無しさん
2013/07/20(土) NY:AN:NY.ANありがとう
見落としてました
0903864
2013/07/20(土) NY:AN:NY.AN皆様アドバイスありがとうございました。
いただいたアドバイスを元にあれこれ検証したところ、
30秒かかったものが10秒程度まで縮めることができました。
このまま自力での解決を試みてみます。
ソース公開の声もあるようですが、
例外処理も何もなっていない糞コードですのでご勘弁下さい。
0904デフォルトの名無しさん
2013/07/21(日) NY:AN:NY.ANRange(Cells(5, 3), Cells(5, 3).Offset(0, 5)).SpecialCells(xlCellTypeVisible).Select
Selection.Interior.ColorIndex = 5
これを仮に3列列非表示にしてためすと、非表示セルは塗りつぶしされませんが、
可視セルも3個しか塗りつぶしされません。
非表示セルに関係なく可視セルのみ6セル分塗りつぶしたい場合は
どのようにしたらいいでしょうか?
0905デフォルトの名無しさん
2013/07/21(日) NY:AN:NY.ANLoopして可視セルだけ塗る
案1、順に可視セルか否かを判断して可視セルなら塗る。6個塗ったら終了
案2、対象範囲のSpecialCells(xlCellTypeVisible)をFor Eachで6個だけ塗る
余計なお世話だが元コードもなんだかなー
Range(Cells(5, 3), Cells(5, 3).Offset(0, 5)).SpecialCells(xlCellTypeVisible).Select
Selection.Interior.ColorIndex = 5
↓
Cells(5, 3).Resize(, 6).SpecialCells(xlCellTypeVisible).Interior.ColorIndex = 5
0906デフォルトの名無しさん
2013/07/21(日) NY:AN:NY.ANありがとうございます。
コードもスッキリしました。
0907デフォルトの名無しさん
2013/07/22(月) NY:AN:NY.AN親切な方に組んで頂きました。
(あの時は感動しました。ありがとうございました!)
実はまた、ちょっと検証したいことがあり
VBA(有償)をお願いしたかったのですが
その後、お約束通り、やり取りしたメールや振込先銀行口座等
一切の記録を破棄してしまい連絡の取りようがありません。
もしよかったらまたお願いしたかったのですが・・。
メールお待ちしております。どうぞ宜しくお願い致します。
0908デフォルトの名無しさん
2013/07/22(月) NY:AN:NY.AN458 : デフォルトの名無しさん[[email protected]] 投稿日:2008/07/18(金) 00:30:09
かなりなスレ違いお許し下さい
過去の株価をVBAで検証したいのですがスキル不足です。
検証の内容は、ごく単純なもので恐らく数十分ほどで組めるのではないかと思われます。
(検証条件=システムは、恥ずかしい位、幼稚なものです。期待なさらないで下さい。
特別な秘密など有したものではありません・・)
どなたか有償でVBAを組んで頂けませんでしょうか。
0909ピラフ
2013/07/22(月) NY:AN:NY.AN質問書いちゃったら?
ただでやる人がいるかもよ?
0910908
2013/07/22(月) NY:AN:NY.AN単純な検証だとはおもうんですけど・・
トレードに関わっている人なら簡単な説明でわかるかなぁ
0911ピラフ
2013/07/22(月) NY:AN:NY.ANじゃあいいです。
0912デフォルトの名無しさん
2013/07/22(月) NY:AN:NY.ANhttp://crowdworks.jp/public/job_categories/13
http://www.lancers.jp/work/search/programing/vba
クラウドソーシングで発注すればいんじゃね
他にも仲介するサイトはあるし、英語出来るなら海外の類似サービスもある
0913デフォルトの名無しさん
2013/07/22(月) NY:AN:NY.ANありがと!
ある程度待ってみてコンタクト取れなかったらクラウドソーシング考えてみます。
0914デフォルトの名無しさん
2013/07/22(月) NY:AN:NY.ANどんなものかと覗いてみたけど、時給1500〜のプロジェクトに複数応募があったりして
暗い気持ちになった。
需要と供給が合致してるんだから、第三者がとやかく言うなと言われれば、何も言えないんだけどさ・・・
0915908
2013/07/24(水) NY:AN:NY.ANコンタクト無理そうなので
クラウドソーシングに頼もうと思って今みてみましたが
登録その他諸々メンドそう・・
どなたかやって頂ける方いらっしゃいませんでしょうか
たぶんそれほど難しいものではないかと(たぶんですけど)
金額は、8000円位で考えております。
小額のお金で恨みを買ったりして
後々まで気分悪く過ごすの絶対イヤなので
お約束の金額は必ず(即日で)お支払致します。
メールお待ちしてます!(スレチごめんなさい・・
0916デフォルトの名無しさん
2013/07/25(木) NY:AN:NY.ANメール送ってみました
0918デフォルトの名無しさん
2013/07/28(日) NY:AN:NY.ANこれってモロに>>1★5なんじゃないのか。
それ以前に2ちゃんでこう言うやり取りが許されるのか知らんけど。
0919デフォルトの名無しさん
2013/07/28(日) NY:AN:NY.AN削除依頼すれば?
0920デフォルトの名無しさん
2013/07/28(日) NY:AN:NY.AN0921デフォルトの名無しさん
2013/07/29(月) NY:AN:NY.ANシートには中身の概要として2文字〜6文字くらいで名前を併記している
例えば、「富士山・葡萄・山梨・メロン・リンゴジュース・・・・」(名前は「・」で区分し、全文字数はMAX15文字)
ただしシートは期毎に追加しているため、複数のシートに同名、例えば「富士山」を記入している
シート中身を見れば作成年月が解るので同じ「富士山」を含むシートを見ても違いは判別できる
やりたいこと
シート数が多すぎるため見たいシートを見つけるのに手間が掛かりすぎる
入力ダイアグラムを表示させ、例えば「富士山」と入力し「OK」すると、富士山を含むシートがアクティブになる
内容を確認して、時期が違う、つまり別のシートを検索したいときは「NEXT]ボタンをクリックすると
次のシートを検索しアクティブになる、を繰り返す
ということをExcel VBAマクロで組みたいのですがどうやればいいのでしょうか?
0922デフォルトの名無しさん
2013/07/29(月) NY:AN:NY.ANまずはどこまでできたのかコード教えて。
コード作成依頼はここじゃできないよ。>>1★5
0923デフォルトの名無しさん
2013/07/29(月) NY:AN:NY.ANシートの追加・更新・対象年月日とかを併記すれば一発だよ。
全部のシートに目次用シートへのハイパーリンクを置けばよりいいでしょう。
もっと言うとシート名を年月日とかにして概要はシートのどこかに書けばいいよ。
エクセルの検索機能を使えば当初の目的も果たせるようになるだろうし。
とりあえずそのbookを作った人にきれいに構造化しろよバーカって言っていいよ。
0924デフォルトの名無しさん
2013/07/29(月) NY:AN:NY.AN入力ダイアグラムで検索文字列を入力
↓
ブック内のシート名を順に抽出
↓
シート名から文字列検索
↓
該当があったらMSGボックス表示とシートのアクチベート
↓
MSGボックスのOKボタンで次を検索
ここまで出来たんだけど該当シートをアクチベートしたところで一旦停止して
つまりMSGボックスではなく、シートが操作できる状態にする
その後、シート内を確認して
検索再開して次のーシートを検索
↑
この部分はどうやったらいいのかな?
0925デフォルトの名無しさん
2013/07/29(月) NY:AN:NY.ANさすれば道は開かれん
0926デフォルトの名無しさん
2013/07/29(月) NY:AN:NY.AN入力ダイアグラムってなんのことだ? InputBox? まあ、それは置いといて
一旦停止して「シートが操作できる状態」を実現したいのならユーザーフォームをモードレスで
使うことを検討してみたらどうかな
またはSheets(1)をコントロールを張り付けた操作専用シートにして常に表示しておくとか
0927デフォルトの名無しさん
2013/07/30(火) NY:AN:NY.AN0928デフォルトの名無しさん
2013/07/30(火) NY:AN:NY.AN0929デフォルトの名無しさん
2013/07/30(火) NY:AN:NY.AN検索ワードをスタティックで保持しといて
msgboxはOK、キャンセルで分ければ
マクロのショートカットキー登録か
専用のボタンをシートに作るかツールバーに作るか
0930デフォルトの名無しさん
2013/07/30(火) NY:AN:NY.AN・検索用シートを別に作って、検索用ワードを入れるセルとマクロのボタンを用意
・他の全シートに、検索用シートへのリンクを用意 (セル・ボタンなど)
・ボタンを押すと、全シート名を検索して、該当するシート名をリンク付きで表示 <- マクロ作るのここだけ
・該当シートに行って内容を確認 〜 違ってたら検索用シートに戻る、を繰り返す
でどう?
0931デフォルトの名無しさん
2013/07/30(火) NY:AN:NY.ANActiveSheet.Index + 1から検索すればいい
0932デフォルトの名無しさん
2013/07/31(水) NY:AN:NY.ANx As Double
y As Double
End Type
Function Cmul(z1 As complex, z2 As complex) As complex
Cmul.x = z1.x * z2.x - z1.y * z2.y
Cmul.y = z1.y * z2.x + z1.x * z2.y
End Function
Cmulを使うとby ref 引数の型が一致しませんと表示されます。
そこで
Function Cmul(ByVal z1 As complex,ByVal z2 As complex) As complex
と書くと
ユーザー定義型をbyvalで渡すことはできません
と表示されます。
どうすればいいでしょうか。
excelのバージョンは2010です。
0933デフォルトの名無しさん
2013/07/31(水) NY:AN:NY.ANexcel2002では普通に動くけど。
Cmulをコールしているコードはなんて書いてあるのかな?
0934デフォルトの名無しさん
2013/07/31(水) NY:AN:NY.ANCmul()に渡す方の引数を定義するときに型を明示する。
Dim c1 as complex
Dim c2 as complex
0935932
2013/07/31(水) NY:AN:NY.ANレスありがとうございます。
動かなかった原因はそこじゃなくて
public a,b,c as complex
Function aa()
a=Cmul(b,c)
End Function
みたいな感じで使ってたのですが
public a as complex
public b as complex
public c as complex
みたいな感じで宣言すれば大丈夫でした。
変数の宣言ってまとめるとダメなんですね。
0936デフォルトの名無しさん
2013/07/31(水) NY:AN:NY.AN型は変数1個ごとに書く
Public a As Complex, b As Complex, c As Complex
なら大丈夫
0938デフォルトの名無しさん
2013/08/01(木) NY:AN:NY.AN0939デフォルトの名無しさん
2013/08/05(月) NY:AN:NY.ANエクセルVBAでOSの操作って出来ますか?
やりたいのは
「タスクバーを固定する」を解除
タスクバーの高さが1倍の時は2倍に、2倍の時は1倍にする
タスクバーを固定する
です
検索してもエクセル自身の設定を変更するマクロしか出てこないんです
0940デフォルトの名無しさん
2013/08/05(月) NY:AN:NY.ANできるんじゃないかな
0941デフォルトの名無しさん
2013/08/05(月) NY:AN:NY.ANVBA:Visual Basic for Applications Excel VBA : Excel用のVisual Basic(VB6)
よってVB6でできることはほとんどできる(そのままコピペではだめな部分も多いがたいてい抜け道はある)
タスクバー・・・Win32 API を駆使することになると思うので限りなくスレチに近い。
「VB6 タスクバー 高さ 取得」あたりでググれ。
0943デフォルトの名無しさん
2013/08/05(月) NY:AN:NY.ANVBAからWin32APIを呼ぶ方法はググればすぐ見つかるだろう
そのうえでWin32APIに関する質問はこっちのスレだな
http://toro.2ch.net/test/read.cgi/tech/1373671389/
0944デフォルトの名無しさん
2013/08/05(月) NY:AN:NY.AN教えてもらった言葉で検索してみます
942は自分じゃ無いです
0945デフォルトの名無しさん
2013/08/06(火) NY:AN:NY.ANあそこまでやるならマンコやケツの穴まで見せるべきでは?
VBAでなんとかなりませんか?
0946デフォルトの名無しさん
2013/08/08(木) NY:AN:NY.AN操作と同時にその数値を使ってマクロで計算をさせたいのですが
スクロールバー操作→連動してマクロ実行
ってどうやればいいですか?
0947デフォルトの名無しさん
2013/08/08(木) NY:AN:NY.AN0948デフォルトの名無しさん
2013/08/09(金) NY:AN:NY.AN0949デフォルトの名無しさん
2013/08/09(金) NY:AN:NY.ANセルの文頭に「'」(シングルクォーテーション)がある場合、
データとしては「'」が見えるのに、
表示自体はされないってことがあるかと思います。
例)
データ:'○○○〜
表示:○○○〜
VBAでこの「'」があるかどうかを判断したいのですが、
表示されたデータを取得する方法しかわからず困っています。
文頭に「'」がついているかどうか判断する方法はありますでしょうか?
0950デフォルトの名無しさん
2013/08/09(金) NY:AN:NY.AN何からはじめればよいでしょうか?
ソースから勉強した方が早いでしょうか?
0951デフォルトの名無しさん
2013/08/09(金) NY:AN:NY.ANRange.PrefixCharacter
0952デフォルトの名無しさん
2013/08/09(金) NY:AN:NY.ANありがとうございます!
おー、なんてこった!
数日悩んでいたのにあっさり解決するとは!
シングルクォーテーションではなく、接頭辞で検索すればすぐ出てきたみたいですね。
検索の仕方が悪かったみたいです。
ともかくありがとうございます。
0953デフォルトの名無しさん
2013/08/10(土) NY:AN:NY.AN突然全てのプログラムでエラーが出現。
vbaでIE呼出
↓
ページ読み込み(URLへ飛ばし)
↓
vbaでフォーム入力(ラジオボタンクリックでも)の箇所でエラー
ページ読み込みの後ウェイトをかけると解決するという特徴から
恐らくIEがページを読み込みきれていない
自動update辛い …
0954片山博文MZパンク ◆0lBZNi.Q7evd
2013/08/11(日) NY:AN:NY.AN画像処理。各区間の画素を平均化して塗りつぶす
0955デフォルトの名無しさん
2013/08/11(日) NY:AN:NY.ANなんでそれをここのスレに書こうと思ったんだろ
0956デフォルトの名無しさん
2013/08/11(日) NY:AN:NY.ANDim objIE As Object
Set objIE = CreateObject("InternetExplorer.application")
objIE.Navigate " URL "
Do While objIE.Busy = True
DoEvents
Loop
Do While objIE.ReadyState <> 4
DoEvents
Loop
これでも、アカンか?
0957デフォルトの名無しさん
2013/08/11(日) NY:AN:NY.ANそうなるだろうからIEとか全力拒否&責任が及ばないように予防線張るでしょ
普通の人なら
0958デフォルトの名無しさん
2013/08/11(日) NY:AN:NY.AN>>953はチラ裏だろ。これをどう見たら質問になるんだ?
0959デフォルトの名無しさん
2013/08/11(日) NY:AN:NY.AN0960デフォルトの名無しさん
2013/08/12(月) NY:AN:NY.AN叩かれて育っただけあって
0961デフォルトの名無しさん
2013/08/12(月) NY:AN:NY.ANタスマネ見てると窓を閉じたあとでも5秒から10秒ぐらいプロセスが動き続けてる
おかげでIEオブジェクトの生成のところで失敗する
0962デフォルトの名無しさん
2013/08/12(月) NY:AN:NY.ANIE5とか、たぶんもっと前のでもその機能あるよ
0963デフォルトの名無しさん
2013/08/12(月) NY:AN:NY.AN新しいタスクを下に追加してもマクロを実行すればしっかり並び替えされるようにしたいのですがよろしくお願いします。
http://uproda.2ch-library.com/692439D0T/lib692439.png
OS:win7 64bit
Excel2010
0964デフォルトの名無しさん
2013/08/12(月) NY:AN:NY.AN1500円でやってもいいよ
0965デフォルトの名無しさん
2013/08/12(月) NY:AN:NY.AN優先度でソートをマクロ記録すればできるだろ
0966デフォルトの名無しさん
2013/08/12(月) NY:AN:NY.AN0967デフォルトの名無しさん
2013/08/13(火) NY:AN:NY.AN0968デフォルトの名無しさん
2013/08/13(火) NY:AN:NY.AN0969デフォルトの名無しさん
2013/08/13(火) NY:AN:NY.AN大きな企業ならなおさらその傾向にあるから
>>967はニートか学生か底辺サラリーマンなんだろうと思うよ
0970デフォルトの名無しさん
2013/08/13(火) NY:AN:NY.ANVBAを組むってレベルじゃないだろ
表の下限を調べて範囲指定してソートで終わり
0971デフォルトの名無しさん
2013/08/13(火) NY:AN:NY.AN情弱死ね
http://itstrike.biz/apple/3560/
0972デフォルトの名無しさん
2013/08/13(火) NY:AN:NY.AN情弱死ね!!
0973デフォルトの名無しさん
2013/08/13(火) NY:AN:NY.AN使ってるというか、環境としては用意してあるよ
Win98やExcel95もね
作った物を売る前には、相手先と同じバージョンでの動作確認は必須だから
0974デフォルトの名無しさん
2013/08/13(火) NY:AN:NY.ANなぜ連中はわからないのか
0975デフォルトの名無しさん
2013/08/13(火) NY:AN:NY.ANが間違いだと知っているからだよ
個人と企業では違うからな
まあ限度はあるけどね
0976デフォルトの名無しさん
2013/08/13(火) NY:AN:NY.ANお偉いさんがケチケチしてエンジニアに古いシステムの保守ばかりさせるから新人が育たない
0977デフォルトの名無しさん
2013/08/13(火) NY:AN:NY.AN0978デフォルトの名無しさん
2013/08/13(火) NY:AN:NY.AN・所定のダウンロード用ボタンをクリックする ←ここまではExcelVBAでわりと簡単にできる
・画面の下の方に 「ファイルを開く」「保存▼」「キャンセル」 の選択が出る
・「保存▼」の▼を押して「名前を付けて保存」をクリックする ←ここをExcelVBAでやる方法がわからない
IE6だったらsendkeyとかでサクッとできてしまうんだろうけど
IE10だとググっても「無理」とか「面倒」とか「VBAを使うな」とか出てきて有効な方法がよくわかりません。
どうやったらよいとか、何を調べたらよいとか、なにかアドバイスはありますでしょうか?
0979デフォルトの名無しさん
2013/08/13(火) NY:AN:NY.AN0980デフォルトの名無しさん
2013/08/13(火) NY:AN:NY.AN0981デフォルトの名無しさん
2013/08/13(火) NY:AN:NY.AN同じくフィルターがかかったり非表示のため、見えないセルがある領域へ
値をコピーするためのコードを教えてケロ。
0982981
2013/08/13(火) NY:AN:NY.AN0983デフォルトの名無しさん
2013/08/13(火) NY:AN:NY.ANftpか?なら、直接ftpでダウンロードしろよ
0984デフォルトの名無しさん
2013/08/13(火) NY:AN:NY.ANググレカス
0985981
2013/08/13(火) NY:AN:NY.ANこら、ちゃんと答えろ
0986978
2013/08/13(火) NY:AN:NY.AN直接ダウンロードも試みましたが、以下のいずれかのパターンで今のところ出来ていません。
何かやりようがあるのかも知れませんが。
・ログイン認証が必要なサイトなので、直接ダウンロードしようとしても
なんらかのガードがかかっているようで、ダウンロードされないパターン。
(ログイン認証が不要なサイトでは、同様のコードで直接ダウンロードに
成功してるので、サイト側のガードの問題かと)
・そもそも直接ダウンロードするためのURLが不明で、ソースにもなく、
探れないパターン。
0987デフォルトの名無しさん
2013/08/13(火) NY:AN:NY.ANやりようがなきゃブラウザでダウンロードできるわけ無いだろ
ちょっとは頭使えよ
0988978
2013/08/13(火) NY:AN:NY.ANそれをどうやってVBAで行えばいいのか・・・
具体的に、どのように頭を使えばいいんでしょうか?
0989デフォルトの名無しさん
2013/08/13(火) NY:AN:NY.ANまず、ブラウザがどうやってダウンロードしてるか調べろよ
0990978
2013/08/13(火) NY:AN:NY.ANググるヒントとかもらえますか?
0991デフォルトの名無しさん
2013/08/13(火) NY:AN:NY.ANChrome -> デベロッパーツール
0992デフォルトの名無しさん
2013/08/13(火) NY:AN:NY.AN0993978
2013/08/13(火) NY:AN:NY.ANちなみに、ブラウザ上で普通にダウンロードボタンを見ても、そのボタン画像のURLぐらいしか分からないですよね?
>>989の書き方だと、公開されている普通のwebページからftpサーバ名なりを探るノウハウがありそうに読めたのですが、
この理解は見当違いですか? 見当違いだったらすみません。
0994デフォルトの名無しさん
2013/08/13(火) NY:AN:NY.ANWebProg板で具体的なURLを示して、コードでダウンロードを実行できるか聞いてこい。
既にスレ違いだ。
0996デフォルトの名無しさん
2013/08/13(火) NY:AN:NY.AN>>1
> ★4 とりあえず、Excelのインスタンスを作らずにVB6で出来ることは全てスレ違いだと思ってください。
0997978
2013/08/13(火) NY:AN:NY.ANつい、スレの流れにつられて書き込んじゃってました。完全スレ違いでごめんなさい。
スレ違いにも関わらず相手して頂いてありがとうございました。
0998デフォルトの名無しさん
2013/08/13(火) NY:AN:NY.ANhttp://toro.2ch.net/test/read.cgi/tech/1376371376/
0999デフォルトの名無しさん
2013/08/13(火) NY:AN:NY.AN1000デフォルトの名無しさん
2013/08/13(火) NY:AN:NY.AN10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。