Excel VBA 質問スレ Part30

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
ExcelのVBAに関する質問スレです

★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/
2デフォルトの名無しさん:2013/06/01(土) 21:14:27.59
01 http://pc11.2ch.net/test/read.cgi/tech/1054356121/
02 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/
3デフォルトの名無しさん:2013/06/02(日) 21:26:04.29
               ノ      ゚.ノヽ  , /}      ...
            ,,イ`"     、-'   `;_' '    ..::::::::::::::...
   ,-、  _.._   (        (,(~ヽ'~     ..:::::::::::::::::::::::
 )'~  レー'  〉   ヽ       i`'}       .:::::::::::::::::::::::
 ~つ     '-ー、  i       | i'     ...:::::::::::::::::::::::
 /       <  /     。/   !  ......:::::::::::::::::::::::::    これは>>1乙じゃなくて
/         ~^´     /},-'' ,●::::::::::::::::::::::::::::::::::::
i、        ,i' _,,...,-‐-、/    i  ::::::::  .:::::::::::::
..ゝ        <,,-==、   ,,-,/      .:::::::::::            放射能がうんたら
 )       {~''~>`v-''`ー゙`'~       ..:::::::::                          ........::.
 {        レ_ノ            ..::::::::.                         ......:::::::::
ノ         ''           ..:::::::                        ...::.:...:::::::::
                     .:::::::::                     ...:......:::::::::::: .
                    .:::::::::::.        .....      ..  ..::::::::::::::::::::::::   :::.
                    ::::::::::::::::.::::::....:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::.. ::  ::..
                    .:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::    ::.
                    ::::::::::::::::: :::::::::::::::::::::::::::::: :::::
                          .::    ::.  :::
4デフォルトの名無しさん:2013/06/02(日) 22:46:44.37
テンプレ追加要望。
質問者はFriendpasteで書き込む事、使い方は簡単だし、使った事無い人は逆に使ってみると良いかも知れない。

この要望は反対意見があれば取り下げるものとする。
ただ、いちいちダウンロードしてやるよか余程早いし安全だと追記しておく。
5デフォルトの名無しさん:2013/06/02(日) 22:58:54.02
>>4
言ってることが良くわかんないんだけど。
質問者はこのスレに内容を書き込むじゃ駄目なのか?
6デフォルトの名無しさん:2013/06/02(日) 23:09:00.23
>>4
質問者に何をさせようとしているのかよくわからん。
質問者が質問の内容をこのスレとFriendpasteに書かなければいけないのならNG。
7デフォルトの名無しさん:2013/06/02(日) 23:09:52.31
〜みたいな時はどうするの、とかそういうのはただ書き込めばいいと思う。
実際にコードを貼って、このコードのどこが変でしょうみたいな質問はそっちに貼って貰えば回答する側も楽かと思うんだけど。
自由に編集出来る環境の方が皆使いやすいし、間違った回答や分かりづらい回答があった時も修正しやすい、まさにコードで語るって感じになるし。
8デフォルトの名無しさん:2013/06/02(日) 23:13:17.42
>>6
実際に書いてみると。

a1に『あ』って書きたいんだけど、どうしたら良いんだろ?
とりあえずここまで出来た。
ttps://friendpaste.com/

上のURLには何も書いてないが、雰囲気はこんな感じになるかな。

使いづらいかなぁ。
96:2013/06/02(日) 23:15:36.28
>>4
追記。
一番の問題はパイパンのような奴がのさばらないようなルールにするんだったら全然OK。
Friendpasteに書き込むのは質問者のみとかね。
回答者はそれを見て回答すればいいわけでしょ。いちいちコード書く必要なんてないわけだし。
10デフォルトの名無しさん:2013/06/02(日) 23:23:37.57
前スレのようにパイパンの糞コードがさんざん叩かれたレスを見て
はたして質問者がコードを提示するとは到底思えないなのだが。
そういうのも含めてそこそこルール化する必要があると思うけど・・・。

かなり面倒なスレになると思う。
11デフォルトの名無しさん:2013/06/02(日) 23:23:42.27
そうか、自分で書かせるのは本来だよな。
俺が間違っていたよ、>>9のルールにしよう。
12デフォルトの名無しさん:2013/06/02(日) 23:37:40.62
あぁ!?テメエなんだよ a ってのはよう!!質問するならまともなコード示せやゴミ!!シネ!!カス!!

a ってなに?てかコメント書くかレスで改札よろ。あ、後の参照のためにもコメントがいいかも。とりあえずよろ。

こんな感じか。別に気にする必要はないかと。
13デフォルトの名無しさん:2013/06/02(日) 23:38:13.12
改札よろ
14デフォルトの名無しさん:2013/06/02(日) 23:41:43.54
>>4
編集やコメントできなくね?
前スレだと共有できるところをって雰囲気だったけど。どうなん
てかお前白桃か?

>>8
https://じゃなくてhttp://でいいんじゃね
15デフォルトの名無しさん:2013/06/02(日) 23:48:38.35
>>14
編集出来るんじゃないか?
例えば俺が貼るわな。
http://friendpaste.com/3W9OXsW2ANN4jKIqZsBay1

で、左下に編集あるからやってみ。
16デフォルトの名無しさん:2013/06/02(日) 23:56:08.37
なんかパイパイがコード貼る理由を作ってるようにしか見えない。
17デフォルトの名無しさん:2013/06/03(月) 00:01:29.73
まぁ、まだ試しの段階だよ。
新しいルールを組み込むのは簡単じゃない。
でも本当に編集出来るなら個人的にちょっと興味があるな。
WEBにこういうツールがあるとは知らなかった。
18デフォルトの名無しさん:2013/06/03(月) 00:04:07.85
>>8
20行程度までだったら、レスでいいだろ。
外部に質問者のコードがあったら、いちいちそこ見ないと話の流れがわからんし。
19デフォルトの名無しさん:2013/06/03(月) 00:05:16.52
>>17
ハァ?
てめ、プログラマじゃねーのかよ。
プログラマだとしたら閉じ籠りすぎだわ。
20デフォルトの名無しさん:2013/06/03(月) 00:11:16.80
>>19
何で知らないだけでそんな言われ方されなきいけねーんだ、調子にのんなよ
21デフォルトの名無しさん:2013/06/03(月) 00:12:30.56
これまで通り、このスレに書き込むでいいでしょ。
何十行もあるコードを晒したい人は、そのfriendなんちゃらでもどこでも使えばいい。
でも、そのコードに突っ込みを入れるときは要注意なってのが新ルール。
22デフォルトの名無しさん:2013/06/03(月) 00:13:47.33
>>20
個人的興味でこのスレのルールにしようなんて思うなカス
23デフォルトの名無しさん:2013/06/03(月) 00:14:17.39
まだまだ続くの?
24デフォルトの名無しさん:2013/06/03(月) 00:16:48.47
>>22
早とちりしてんじゃねーよバカ
どうみても俺がルール変える話してないだろうが
俺はプログラマだ、確かにな閉じこもりではあるけどな…そこは正解
25デフォルトの名無しさん:2013/06/03(月) 00:24:39.76
後から追っかけでみる人を考えると
投稿したコードの有効期限が十分に長い事
リビジョン毎にURLが違う事
も重要だけどどうなん?
266:2013/06/03(月) 00:24:43.43
>>21
賛成。
動くコードは質問者が把握していればいいわけで回答者が質問者のコードの全てをを知る必要はないしね。
勿論概要程度は知っておく必要あるけど。

コードのやり取りでFriendpasteにしなくてはいけない理由がよくわからない。
今までだって質問者がうpローダを使っている実績があるわけで、今更感が否めない。
Friendpasteは編集できるって言ってるけど、オリジナルのコードが無くなるわけだで
それはそれで問題だと思う。

結論としてはFriendpasteを使うのはノーかな。
27デフォルトの名無しさん:2013/06/03(月) 00:26:46.81
じゃ、Friendpasteなしでいいね。
ちゃんと明言しとかないと、質問者が迷うぞ。
28デフォルトの名無しさん:2013/06/03(月) 00:33:50.55
これまでどおりでOKだわな。
29デフォルトの名無しさん:2013/06/03(月) 00:36:04.79
うむ。
30デフォルトの名無しさん:2013/06/03(月) 02:11:55.99
他人の足引っ張るのが目的みたいな連中だね
31デフォルトの名無しさん:2013/06/03(月) 02:23:33.39
>>21
>コードに突っ込みを入れるときは要注意
何をどう注意しろと?
32デフォルトの名無しさん:2013/06/03(月) 02:50:54.35
前回の桃白白のコードのどこが糞なのか 「具体的に」 指摘しろ。
「それ以前の問題」とか「糞」とかいうのは完全に叩きだからな。

今のところ人格攻撃だけで、具体的な指摘がないんだ。
33デフォルトの名無しさん:2013/06/03(月) 03:21:39.49
>>32
あっただろ
34デフォルトの名無しさん:2013/06/03(月) 04:27:47.35
あっただろとはレスが付くが実際に指摘はしない件についてw
35デフォルトの名無しさん:2013/06/03(月) 05:46:39.02
うp先をスレのルールで強制するからには、それなりの理由が必要だと思うけど、
ここまで「使いたい」「編集ができる」程度の理由しかないし、それほどメリットがあるとは思えない。
そもそもうp先の選択は個人の自由だろ。

ルール化したら、指定うp先じゃないから見ないとかくだらない話になりそうだし、今までどおりでいいと思う。
36デフォルトの名無しさん:2013/06/03(月) 06:53:37.69
>>32
前スレで具体的に指摘されたてのが理解できないのなら
ここで改めて指摘しても意味ないと思う。
具体的な指摘内容から総称して「糞」と言われてるだけだと思う。。
37デフォルトの名無しさん:2013/06/03(月) 07:15:20.66
再度何かを語り合う価値もない屑コード
38デフォルトの名無しさん:2013/06/03(月) 09:52:57.21
まだ桃白白に嫉妬してんのかよ
39デフォルトの名無しさん:2013/06/03(月) 11:49:18.76
>>32
そんなのは新ルールでもなんでもない
理由も具体的指摘もなくて批判が成り立つわけないだろ
人格攻撃してるやつとまっとうな批判をしてるやつを一緒にしないでくれ

あと、そこで誰かの名前だすの必要なの?
お前の方がよっぽど個人の人格を攻撃してないか
40デフォルトの名無しさん:2013/06/03(月) 15:01:33.91
このスレで一番クズなのは自治厨
なにがFriendpasteだよ、あほかw
41デフォルトの名無しさん:2013/06/03(月) 18:10:34.74
Excel 2000で作成したApplication.VBEを使用するアドインhoge.xlaが動作する環境に関する質問です。
hoge.xlaは、例えば http://officetanaka.net/excel/vba/vbe/03.htm のようなことを行います。

このアドインは、Windows XP+Excel 2000では動作確認できているのですが、それ以降のバージョン
・Excel 2003/2007/2010/2013
・Windows 7/8
の組み合わせで、動かないものはありますか?
4241:2013/06/03(月) 18:13:58.56
念のため付け加えておきますが、これは業務に関わるものでは無く、純粋に趣味の質問です。
43デフォルトの名無しさん:2013/06/03(月) 18:26:20.40
>>41
少なくとも7(32bit)+2007では動くと思う。後は知らん。
44デフォルトの名無しさん:2013/06/03(月) 18:50:15.30
>>41
VBEへのアクセスは2002以降デフォルトで無効だけどアドインなら平気かも
45デフォルトの名無しさん:2013/06/03(月) 20:02:21.42
>>44
アドインでも駄目だよ。明示的に有効にしてやらないと動かない。
46デフォルトの名無しさん:2013/06/03(月) 22:58:21.55
>>41
そのアドインどこかにうpれば試してくれる人いるかもよ
47デフォルトの名無しさん:2013/06/03(月) 23:22:38.41
Friendなんちゃらは知らないけど、
便利なら使ってもいいんじゃない?
ただルールとして義務付けるのは無しだね。
その場において便利だと思った人が使えばいいんじゃないかな。
48デフォルトの名無しさん:2013/06/03(月) 23:25:31.24
>>41
普通に考えてそれだけの環境持ってる人探して聞くより
MSDNに質問投げた方が早いと思うけどなぁ。
49デフォルトの名無しさん:2013/06/04(火) 07:37:44.24
>>41
OSもOfficeも試用期間で試せばいいじゃん
ここの回答で動くっていわれても当てにならないよ
50デフォルトの名無しさん:2013/06/04(火) 10:44:57.45
ブックにシートが20枚ほど有り、その中からシート名が1月、2月、、、、12月となっているもの
のシートについてデータを処理するんですが、シート名を得て処理するやり方教えて下さい。
順番は問わないです。
51デフォルトの名無しさん:2013/06/04(火) 10:54:47.98
52デフォルトの名無しさん:2013/06/04(火) 11:23:49.39
>>51
ありがとう、見てみます。
5341:2013/06/04(火) 11:29:31.40
皆様、レスありがとうございます。

>>49
> OSもOfficeも試用期間で試せばいいじゃん
Windows 8は購入しました。
Office 2013の評価版を試そうとしたのですが、プロダクトキーがXXXXX-XXXXX-XXXXX-XXXXX-XXXXXと
なってしまい、評価できない状態です。ググると同様の状況になっている人が居るみたいですが、現状では
解決できていません。
いっそ製品版を買ってしまおうかと悩んでいるところです。

> ここの回答で動くっていわれても当てにならないよ
もっともなご意見です。
ただ、求めているのは「動かない組み合わせ」です。
もちろん、「動く組み合わせ」の情報もうれしいです。
54デフォルトの名無しさん:2013/06/04(火) 12:39:12.39
下位互換あるからどの組み合わせも平気だよ
って言って欲しかったんじゃないの?
5541:2013/06/04(火) 12:56:23.95
>>54
動作しないよという情報があって、その組み合わせを私の方で手に入れることができれば、
アドインを修正しようかなと思いたったのが質問した動機です。

このアドインは数年前にsourceforge.jpで公開済みのもので、今回動かないよという情報が
なければ、このまま放置しようと思っています。
56デフォルトの名無しさん:2013/06/04(火) 18:24:29.44
のどかな日々
57桃白白 ◆9Jro6YFwm650 :2013/06/04(火) 18:52:40.26
         _,,..,,,,_  
         / ,' 3  `ヽーっ 
         l   ⊃ ⌒_つ
          `'ー---‐'''''"
58デフォルトの名無しさん:2013/06/06(木) 13:30:21.67
このスレオワタ
59デフォルトの名無しさん:2013/06/06(木) 17:45:17.85
次の方どうぞ
60デフォルトの名無しさん:2013/06/06(木) 17:47:01.10
お言葉に甘えて・・・

桃白白さんのようなコード書きたいんですが、お勧めの書籍・HPありますか?
61デフォルトの名無しさん:2013/06/06(木) 17:52:25.16
>>60
お勧めできるような書籍で学習すれば、桃白白のようなコードにはならない。
よってそのような書籍はない。
62デフォルトの名無しさん:2013/06/06(木) 18:17:37.67
>>60
あれだけパイパンのコード叩かれても、アレを目指すというのは理解できない。
パイパンのようなコードを書けるような書籍は確かに>>61の言ってるとおり無いと思う。

因みにC言語だけどダメダメなコードを診断して最終的に直すといったサイトならここ。
ソースコードが分からなくても、何でダメなのかという解説を読めばだいぶ参考になると思う。

Cプログラミング診断室
http://www.kojima-cci.or.jp/fuji/mybooks/cdiag/
63デフォルトの名無しさん:2013/06/06(木) 18:29:21.09
>>60
マジレスすると、ExcelのオブジェクトをVBAで操作する系の書籍一冊と、Code Complete。

「ExcelのオブジェクトをVBAで操作する系」はいっぱいあって絞れないんで、Amazonで検索して
目次見たりレビューコメント見たり、書店に行って選んだりして。

パイパンのコードに書けてるのは、Excelのオブジェクトの知識と、Code Completeで語られるような内容。
64デフォルトの名無しさん:2013/06/06(木) 18:31:33.81
誤:パイパンのコードに書けてるのは
正:パイパンのコードに欠けてるのは
65桃白白 ◆9Jro6YFwm650 :2013/06/06(木) 18:47:10.15
解せぬ
66デフォルトの名無しさん:2013/06/06(木) 18:54:15.99
>>63
確かにCode Completeはまともなことが書かれてるけど一冊6000円以上するし、
かなり分厚い本だから一から全部読もうという気になれないんだよな。
しかも上下巻で二冊w

値段が値段なんで個人で買うにはかなり勇気がいると思う。
気になったテーマだけ読むようにすればいいけど・・・
67デフォルトの名無しさん:2013/06/06(木) 18:59:12.03
これはプログラミング自体が目的の人と、他の目的がある人で見解が分かれるところ。
68デフォルトの名無しさん:2013/06/06(木) 19:40:30.24
前者ならVBAはオススメできない
69デフォルトの名無しさん:2013/06/06(木) 21:22:34.78
Xls拡張子のファイルに記録されているVBAをExcel以外のソフトで見る事はできないのでしょうか?しかもMacで、、オープンOffice都会宇野使ってみましたがVBAのコードは見れませんでした。
70デフォルトの名無しさん:2013/06/06(木) 21:42:17.69
>>69
実際試してないからわからないけど、Kingsoft OfficeのVBA対応版なら見れるんじゃないかと。
体験版にはVBA対応してないようだから購入する(5000円程度)必要はあるみたい。
71デフォルトの名無しさん:2013/06/06(木) 21:42:39.10
>>69
Windows版のLibreOfficeなら普通に開いて編集できますよ
そのまま動くことは期待できませんが
当方 Win7プロ+LibreOffice3.6.4.3です
72デフォルトの名無しさん:2013/06/06(木) 21:52:26.19
エクセルくらい買えよ
73デフォルトの名無しさん:2013/06/06(木) 22:35:48.36
ちょっと見たいだけなら体験版で
7469:2013/06/06(木) 23:17:52.09
>>70
>>71
ありがとうございます。
75デフォルトの名無しさん:2013/06/07(金) 16:23:50.16
死ねゴミw
76デフォルトの名無しさん:2013/06/07(金) 21:07:36.72
>>75
よう、seikyouサン
77デフォルトの名無しさん:2013/06/07(金) 23:54:47.64
死ねゴミw
78デフォルトの名無しさん:2013/06/08(土) 00:12:11.90
584 : uy [] DATE:2011/05/31(火) 02:08:25.67
はじめましてマ板、ム板、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年くらい実は、技術高めるべく超研究者モードだったのでイベント関係殆どいってないから今年はいっぱいいきたなぁ(**^^)キミと

スレ汚し、失礼しました
79デフォルトの名無しさん:2013/06/08(土) 14:31:40.42
人は皆いつか死ぬから心配する必要はない
80デフォルトの名無しさん:2013/06/08(土) 14:33:38.29
Excelメニューのカスタムボタンで
VBEを起動するボタンを作ることは出来ないのでしょうか?
81デフォルトの名無しさん:2013/06/08(土) 15:03:28.50
>>80
どういうことを試してできなかったのか教えてください。
82デフォルトの名無しさん:2013/06/08(土) 15:20:39.01
>>81
まだ何も試してませんが
出来ると言うことですねありがとうございます。
8381:2013/06/08(土) 15:27:57.88
>>82
出来るとも出来ないともい言ってないけど。
少なくても自分でやれることやらずに他人にいきなり聞く姿勢はどうかと。
84デフォルトの名無しさん:2013/06/08(土) 22:20:48.80
はいはい馬鹿がしゃべってますねー
85デフォルトの名無しさん:2013/06/09(日) 13:23:03.77
ここは楽しいスレですね\(^o^)/
86デフォルトの名無しさん:2013/06/09(日) 13:37:08.24
>>80
ユーザー設定→新規作成でボタンの土台(空白の小窓)ができる
その状態でメニューからVBEエディターの箇所を呼び出し該当項目を土台までドラック&ドロップしたらカスタムボタンの完成
87デフォルトの名無しさん:2013/06/09(日) 14:59:19.33
VBAでコピーペースト時に日時の情報がおかしくなるのですが
コピーペースト中にデータ型を変換することはできないのでしょうか?

Range("a1").Select
Selection.Copy

Range("a2").Select
ActiveSheet.Paste

CDate ??
88デフォルトの名無しさん:2013/06/09(日) 15:01:57.02
>>87
range("a2").value = range("a1").value
89デフォルトの名無しさん:2013/06/09(日) 15:07:02.77
>>88
なるほど、すばらしくシンプルですね!ありがとうございます。
90デフォルトの名無しさん:2013/06/09(日) 17:47:06.22
>>86
カスタムボタンなんて用意しなくてもツールバーに「コードの表示」ボタンあるし。
91デフォルトの名無しさん:2013/06/09(日) 22:02:40.46
VBA中級者ですが1
一般的な業務で導入できる範囲内で
VBAよりもさらに高速かつ膨大な計算が可能な計算ソフトはあるのでしょうか?
92デフォルトの名無しさん:2013/06/09(日) 22:17:46.32
>>91
VBA は計算ソフトじゃないぞ。

とりあえずエスパーすると、答えはデータベースかな?
93デフォルトの名無しさん:2013/06/09(日) 22:26:05.20
ソートのコード書くとき一般的なのはバブルソートですか?
94デフォルトの名無しさん:2013/06/09(日) 22:47:53.22
>>93
VBA関係ないし
95デフォルトの名無しさん:2013/06/09(日) 22:50:55.19
>>93
このスレ的にはワークシートにデータ貼り付けてExcelの機能でソートさせるんじゃないの
96デフォルトの名無しさん:2013/06/09(日) 22:54:35.85
ソートのコード書く事がすでに一般的ではないと思う
97デフォルトの名無しさん:2013/06/09(日) 23:10:26.43
>>92
DBですかDB2とかオラクルとか覚えることを考えただけでも大変ですね(笑)
VBAで粘りますわw
98デフォルトの名無しさん:2013/06/09(日) 23:31:13.10
 >>93
A→Zのボタンを押すだけです。
99デフォルトの名無しさん:2013/06/09(日) 23:57:48.78
>>97
膨大なのが計算処理等なのかデータなのかにもよるが
Accessでいいんじゃね?
100デフォルトの名無しさん:2013/06/10(月) 00:25:33.23
>>99
Accessで扱えるデータ件数はExcelの行数と同じ認識なんだが。
どういう意味でAccessをすすめてるのかな?
もしかしてSQLが使えるから?
101デフォルトの名無しさん:2013/06/10(月) 00:44:30.92
>>100
Accessって行数に制限ないでしょ
102デフォルトの名無しさん:2013/06/10(月) 00:55:43.66
アクセスはテーブルのフィールド数が255までだから、それと勘違いしてんじゃね
http://office.microsoft.com/ja-jp/access-help/HA010341462.aspx
103100:2013/06/10(月) 05:21:03.40
>>101
>>102
プロジェクトでDBのデータをAccess2003にコピーしようとしたら、
フィールドの制限だけじゃなくデータ件数も制限があってコピーできなかった経験がある。
その時いろいろ試してみたらデータ件数、フィールドともにExcelの行数、列数と変わらなかった。
この時の印象はAccessはなんちゃってデータベースなんだなぁと。

最近のバージョンは使ったことないから分からないけど、>>102のリンクを見る限り、
データ数の制限は固定じゃなくて、テーブルのサイズで制限してそう。
104デフォルトの名無しさん:2013/06/10(月) 06:47:18.33
2003で行数、列数がExcelと変わらないってことは
65536行、256列ってことだよな
ありえない、やり方がおかしいかったんだろ
105100:2013/06/10(月) 07:09:17.93
>>104
元となるデータの内容にもよるだろうし、あくまで実際に起きたことに対する印象。
たまたまテーブルサイズの制限に引っかかったデータ件数ががExcelと同じになっただけかもしれない。

少なくてもAccessのデータ格納件数には固定じゃないにしろ限りがあることは確か。
データ件数が無制限というようになるとSQL Serverとの位置づけがよくわからなくなる。
Accessでデータベースを全てカバーできるならSQL Serverいらなくなるわけだし。
106デフォルトの名無しさん:2013/06/10(月) 07:44:48.70
>>105
いい加減黙れ
107桃白白 ◆9Jro6YFwm650 :2013/06/10(月) 07:56:30.37
>>93
そうだね。桃白白クラスになるとバブルソートを優雅に実装しちゃうね。
108デフォルトの名無しさん:2013/06/10(月) 08:24:45.56
>>105
そりゃまあ、何事にも限度つーもんがあるから、制限はあるだろうけど、Excel と同じなわけない。

あと、Access と SQL-Server は仕組みが全然違うから、仮に機能が全く同じでも SQL-Server の存在意義がなくなったりしない。
109デフォルトの名無しさん:2013/06/10(月) 09:30:57.69
データシートのコピペをしようとしたんじゃね
制限あったかどうか知らんが
110デフォルトの名無しさん:2013/06/10(月) 10:28:34.33
コードコンプリートにはソートのことは触れてないんだな

ソートはどの書籍で学べばいい?
111デフォルトの名無しさん:2013/06/10(月) 11:19:08.25
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可

シート上のデータを元にcsvファイルを作りたいんですが
一部で "A","B","C" というようなデータが存在します。
chr(34)とchr(44)を&していけば出来るのですがsplitの逆で
一連の文字列を "(文字列)", で繋ぐような関数や方法って
ありませんか?

よろしくお願いします。
112デフォルトの名無しさん:2013/06/10(月) 11:27:12.67
>>111
Excelの機能でCSVで保存しろ
113111:2013/06/10(月) 11:54:17.97
補足します。

1行全て固定文字列の部分はそのまま Write #n "A","B","C" で
良いのですがセルを参照した変数を含む行は一旦文字列変数
にセットしてからWriteしようかと考えています。

"A","B","C","(セルA列)","D"

strText=chr(34)&"A"&chr(34)&chr(44)・・・
write #n strText

この文字列変数に固定文字列をセットする方法でわざわざchr
で繋がなくても良い方法があるのではないかと思って探してい
ます。よろしくお願いします。
114デフォルトの名無しさん:2013/06/10(月) 12:04:16.46
何でそんな事に拘るのかサッパリわからないが
それで動くならいいじゃん
115桃白白 ◆9Jro6YFwm650 :2013/06/10(月) 12:09:10.93
>>113
こんなこと書いたら桃白白また怒られるかもしれないけれども、もう怖くて
震えながら返信文章を書いてるけれども、関数作っちゃったら?

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
116111:2013/06/10(月) 12:22:13.28
>114
>それで動くならいいじゃん

君とは分かり合えそうに無いな。
知らないなら無理にレスしなくて結構ですよ(^o^;

>115

返信ありがとうございます。

つまりSplitの逆は無いって事なんですかね?
配列に入れてゴリゴリ回しておきますわ。
117桃白白 ◆9Jro6YFwm650 :2013/06/10(月) 12:50:32.86
>>116
>つまりSplitの逆は無いって事なんですかね?

せやな。
118デフォルトの名無しさん:2013/06/10(月) 13:23:16.80
>>116
> つまりSplitの逆は無いって事なんですかね?
Splitの逆はJoinだけど?
119デフォルトの名無しさん:2013/06/10(月) 14:12:14.32
vb系は文字列の連結が遅いので
join(array("a","b","c"),"")
とやるのが一つの定石。

ただ、実際測るとまちまちだよ
120デフォルトの名無しさん:2013/06/10(月) 14:49:24.17
>>111
Chr(34)、Chr(44)をあえて使う理由がよくわからんね。

strText=chr(34)&"A"&chr(34)&chr(44)・・・
って書くより
strText="""A"",""B""," & (セルのデータ) & ・・・

のほうが直感的に分かりやすいんだけどw
更に「"""A"",""B"","」をConstステートメントにすればコードはすっきりすると思う。
121デフォルトの名無しさん:2013/06/10(月) 15:54:19.01
>120

趣味の問題じゃね?

俺的には""""のが気持ち悪い。
もし自分で組むならchr(&h22)だけどな。
ASCIIコードを10進で扱うのは気持ち悪い

反論は認めるw
122デフォルトの名無しさん:2013/06/10(月) 16:11:24.23
VBA関係無いし
123デフォルトの名無しさん:2013/06/10(月) 16:32:51.93
>>121
趣味の問題というより、可読性の問題かな。
見ただけでどういう文字を示すのか分かるのはどっちだ?

chr(&h22)

,

chr()でコード書いたとして書いた当時はどういう文字か分かっているからいいけど、
一週間、一か月たってから見直した時にchr(&h22)を見てすぐ文字が思い出せるとは思えないし。
しかもchr(&h22)なんて書くとASCIIコードの指定間違いだってあるだろうからバグ対策にもなる。

今回たまたまダブルクオーテーションが入っているから「"」→「""」という記述になるだけで
何が書かれているのか、何を書こうとしているのか意図が読み取りやすいと思う。
124デフォルトの名無しさん:2013/06/10(月) 16:35:02.21
>>123
いつまで続けるつもり?
125デフォルトの名無しさん:2013/06/10(月) 16:39:25.92
まあ趣味の問題だろう。
個人的には桃白白方式に一票。
126デフォルトの名無しさん:2013/06/10(月) 17:04:01.90
だから区切り文字指定してjoinしろって…
join(array( ... ),""",""")
127桃白白 ◆9Jro6YFwm650 :2013/06/10(月) 17:09:49.98
>>125
     ____
    / ⌒  ⌒  \
  ./( ―) ( ●)  \
  /::⌒(_人_)⌒:::::  |
  |    ー       .|
  \          /
128デフォルトの名無しさん:2013/06/10(月) 17:10:52.43
>>126
元々データが配列に格納されているんだったらJoinでいいと思うけど、
Joinするためだけに配列にデータを格納するのは微妙な気がする。
129111:2013/06/10(月) 17:18:40.85
何か話が脱線してる・・・私のせい?

JOINってのがあるんですね。
検索キーが下手で見つけられませんでした。

うろ覚えでSplitの逆はUnionだと思って調べてました。
Union使えね〜と思って質問させていただきました。

ありがとうございました。
130桃白白 ◆9Jro6YFwm650 :2013/06/10(月) 17:31:15.49
>>128
そんなことないっしょ。データ構造を変換してよしなにやっちゃうんだから
超絶スマートっしょ。これこそVBAの真髄っしょ。
131デフォルトの名無しさん:2013/06/10(月) 18:10:23.67
>>130
join(array("a","b","c"),"") ←>>119から引用

"""a",""b"",""c"""

うーん。下のほうがシンプルかな。文字数少ないし。
上だとJoinの仕様を知っている必要がある。
"a"、"b"、"c"のデータが可変で配列に格納されてるならまだしも
"a"、"b"、"c"のデータが可変なのか、配列に格納されているのか明確じゃないわけで。

これのためだけにarrayにデータを突っ込む処理を作りたくはないなぁ。
後者だと一行で書けるし、見た目どういうデータを作ろうとしているか理解できるしスマートだと思うけど。
ベタ書きは結構嫌われるけど、こういう場合はありだと思う。
132デフォルトの名無しさん:2013/06/10(月) 18:24:39.64
どうでもいいわ。
133デフォルトの名無しさん:2013/06/10(月) 18:26:01.71
完全に固定な文字列で配列つくってJoinとか無駄な処理もいいとこ
ソースの読みやすさの話は個人の主観が多すぎるので話したい人は別スレ立ててやってくれ
134デフォルトの名無しさん:2013/06/10(月) 19:02:39.81
join(sprit())、sprit(join())はよくやる

>>111の質問が悪かったのか、回答者の知識や読解力が低かったのか、途中の盛り上がりが謎な一日でした。
135桃白白 ◆9Jro6YFwm650 :2013/06/10(月) 19:25:55.71
>>134
その話とは全然関係ないし、Excel VBAとも全然関係ないことなんだけどさー、
桃白白前から気になってることがあるんだけど、聞いていい?聞いちゃだめ?聞いていい?
136デフォルトの名無しさん:2013/06/10(月) 19:30:18.36
>>110
アルゴリズム関連の本を漁ればいくらでも。
137デフォルトの名無しさん:2013/06/10(月) 19:33:53.05
>>135
聞くな。察しろ。
138デフォルトの名無しさん:2013/06/10(月) 19:38:46.51
>>1に則った質問ならいいんじゃね。
つまりExcel VBAの質問ならば。
139桃白白 ◆9Jro6YFwm650 :2013/06/10(月) 19:46:26.44
>>138
Excel VBAとは全然関係ないの。>>134とは関係あるといえば関係あるし
関係ないといえば関係ないの。聞いていい?聞いちゃだめ?聞いていい?
140デフォルトの名無しさん:2013/06/10(月) 19:52:06.53
>>139
聞くな。察しろ。
141桃白白 ◆9Jro6YFwm650 :2013/06/10(月) 20:05:19.36
>>137
>>140
そうなんだ、やっぱり>>134は桃白白のことを・・・そんな桃白白まだ心の準備が・・・
142デフォルトの名無しさん:2013/06/10(月) 20:12:51.60
>>141
聞いていい?と聞いてるくせになんなん
お前そろそろNGに入れるぞお前お前お前
143デフォルトの名無しさん:2013/06/10(月) 20:48:43.78
age失礼します。
配列について質問してもいいですか?
144デフォルトの名無しさん:2013/06/10(月) 20:49:54.51
>>143
いいかげんにしろパイパン
145143:2013/06/10(月) 20:52:20.72
>>144
今来たところで流れ知らないんですが・・・
上の人とは別人ですw
146桃白白 ◆9Jro6YFwm650 :2013/06/10(月) 20:56:05.60
>>145
なんかごめん、桃白白が許可出すようなことじゃないけど質問していいと思うよ。
桃白白にわかることだったら桃白白もお答えしちゃうよ。
147143:2013/06/10(月) 20:57:05.07
Function test(r As Range) As Integer
Dim arr As Variant
arr = r.Value
test = arr(2, 2)
End Function

これ動いちゃうんですがまともなコードですか?
一般にRangeをArrayに変換する場合は
要素ごとに多重のfor文まわしてコピーするべきですか?
148デフォルトの名無しさん:2013/06/10(月) 21:14:05.03
以下、俺ならば、が前提になります。ご理解ください。
149143:2013/06/10(月) 21:22:04.02
了解〜
150デフォルトの名無しさん:2013/06/10(月) 21:25:44.57
>>147
これは動いちゃいけないコードなのか?
151デフォルトの名無しさん:2013/06/10(月) 21:28:14.88
>>147
普通のコード。

て、言うか Range の範囲が大きいときは For で回すのは遅いから、一括代入するのは定石。
152143:2013/06/10(月) 21:39:46.08
名前はarrって付けましたが、
これ本当に配列になってますか?
また、
LBound(arr,1)
UBound(arr,2)
などがRangeのサイズと一致していることは保証されますか?
153デフォルトの名無しさん:2013/06/10(月) 21:43:06.83
>>147
まともなコードとは思えない。
配列の考え方は良いと思うけど、コール元でB2を含まない範囲を指定されるとエラーになる。

ret = test(ThisWorkbook.Worksheets("Sheet1").Range("A1"))
154デフォルトの名無しさん:2013/06/10(月) 21:44:05.60
これってtestに1行1列のrangeを渡した時にはエラーになるの?
155143:2013/06/10(月) 21:48:27.03
>>153
確かにそこは問題だが、本当に聞きたかったのは配列の扱い。
コピーが深いのか浅いのかという点も気になる。
156デフォルトの名無しさん:2013/06/10(月) 21:51:09.52
>>152
VarType( ) とか TypeName( ) とかで確認しなよ。
157143:2013/06/10(月) 21:57:05.01
>>156
なるほど。Variant()型か
・・・とはならない・・・
本当に都合よくサイズ決まってるのか?
158デフォルトの名無しさん:2013/06/10(月) 22:04:27.07
ドキュメントにないのなら保証されてないってこった
159デフォルトの名無しさん:2013/06/10(月) 22:14:36.33
>>135
聞けよ。はやく。
160デフォルトの名無しさん:2013/06/10(月) 22:21:47.98
>>152
何でこういう質問になるのか背景が全く分からん。
>>143の環境では配列になってないってこと?
161デフォルトの名無しさん:2013/06/10(月) 22:42:51.19
引数rに指定するセル範囲のareas(1)が単一セルじゃなくて、複数のセルだったら配列になるんじゃないの。
1個だけだったら配列じゃなくて値返すでしょvalue。
162デフォルトの名無しさん:2013/06/10(月) 22:56:19.00
結合セルとか非表示の行列とかあって考えるの面倒だからcellsをforで回しちゃう、遅くても気にしない
163デフォルトの名無しさん:2013/06/11(火) 00:58:52.40
ファイルを開いた時にボタンを作る+特定のセルをアクティブにする処理をさせたいのですが、

Private 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しかない気がするし、何か解決策ないでしょうか
164デフォルトの名無しさん:2013/06/11(火) 01:53:38.72
>>163
Sheet1.Activate
Range("A1").Select

じゃないの?(適当
165デフォルトの名無しさん:2013/06/11(火) 02:17:29.88
>>164
同じエラーが出ます
166デフォルトの名無しさん:2013/06/11(火) 03:27:08.14
>>163
2007で試したけどエラーになんかならんぞ
エラーになってるのはSelectionChangeの方だな
そっち修正するか、EnableEvents=Falseしてみるとか
167デフォルトの名無しさん:2013/06/11(火) 03:32:29.84
>>143は配列について質問って言ってるけど、それ配列の質問じゃない

Range.Valueが、対象セルが複数の場合に配列で値返す
これの公式なドキュメントないですか

>>143の聞きたかったのはこういう事だろ
168デフォルトの名無しさん:2013/06/11(火) 05:42:19.52
>>133
可読性の問題を趣味の問題と言い切るのはいかがなものかと。
カンマと聞いて「,」より「chr(&h22)」をイメージするのは個人の主観云々というより文字認識がぶっ壊れてるだろw
169桃白白 ◆9Jro6YFwm650 :2013/06/11(火) 09:38:48.07
>>155
Range.Valueで配列の中に配列が入るようなことはないと思うけれども、
仮にあったとしてもディープコピー。

Sub test()
Dim a As Variant
a = Array(Array("A"))

Dim b As Variant
b = a

Debug.Print "a " &amp; VarPtr(a(0)(0))
Debug.Print "b " &amp; VarPtr(b(0)(0))
End Sub

a 276005496
b 276009912
170デフォルトの名無しさん:2013/06/11(火) 10:32:55.22
>>167
> Range.Valueが、対象セルが複数の場合に配列で値返す
> これの公式なドキュメントないですか

それはヘルプに載ってるだろ。具体的なフォーマットとか、セル結合の場合どうなるとかは無いにせよ。
171デフォルトの名無しさん:2013/06/11(火) 10:45:02.57
MSDNにちゃんと書いてある

タイトル「Range.Value プロパティ」
要点抜粋「複数のセルが含まれているときは、値の配列が取得されます」

ttp://msdn.microsoft.com/ja-jp/library/microsoft.office.interop.excel.range.value(v=office.11).aspx
172デフォルトの名無しさん:2013/06/11(火) 10:59:04.01
マニュアルに書いてあることくらいは読めよってことだな。
Rangeプロパティって何ですか?っていうのと大して変わらないレベルw
173デフォルトの名無しさん:2013/06/11(火) 13:12:40.83
ヘルプには書いてないんだよなぁ
EXCELのVBA周りのヘルプはあんまり役に立たんわ
OFFICE ONLINEもダメ
結局MSDNかよ
174デフォルトの名無しさん:2013/06/11(火) 13:57:34.33
俺のヘルプには書いてるよ。
Excel 2000だがw
175デフォルトの名無しさん:2013/06/11(火) 14:13:51.23
2013はヘルプがMSDN直行だから問題ない
ローカルヘルプ無くなったけど
176デフォルトの名無しさん:2013/06/11(火) 15:27:53.05
マクロで外部のCSVを取得してセルの内容を更新するように作ったのですが
CSVが更新されていない時はデータの更新も行わないようにしたいのです
どのように記述すればよいでしょうか?
ttp://www.relief.jp/itnote/archives/000271.php
このあたりの最終更新日時取得が使えそうなんですが
外部ファイルに使う方法が見つからなかったのです
177176:2013/06/11(火) 15:28:58.97
あ、書き漏らし
Win7でExcel2010です。2003で動かせる内容だと助かります。
178デフォルトの名無しさん:2013/06/11(火) 15:41:53.99
>>176
CSVファイルの内容を変更せずに上書き保存した場合は、最終更新日だけ更新されるだけでデータは更新されないけど
こういうパターンでも更新するってことなのかな?

個人的にはCSVを取得してセルの内容を更新するのができているのなら、
CSVを取得した値とセルの内容の値を比較して異なっていたらセルの内容を更新すれば確実だと思うけど。
179デフォルトの名無しさん:2013/06/11(火) 15:46:30.56
>>177
>>1★5を読んだ上での質問ということかな?
「2003で動かせる内容だと助かります。」ってあるのはコードを書けってこと?
180デフォルトの名無しさん:2013/06/11(火) 16:02:05.47
>>176
ファイルのハッシュを保存しとけ
181176:2013/06/11(火) 16:11:28.94
>>178,180
ありがとうございます。内容的にはCSV内の変更が反映されればいいので
ハッシュを保存というのは良さそうです

>>179
すいません、VBA超初心者なもので検索するにもワード自体が分からず
○○をやれと言われた時それが2007以降でしか動かないかが判断できないので
そのための注釈でした。キーワードさえ分かればググるなりしようと思ってます
182桃白白 ◆9Jro6YFwm650 :2013/06/11(火) 16:53:34.52
>>181
田中さんがファイルが最後に更新されたときの日付と時刻を取得する手段を
教えてくださってるからこれ使ったらいいと思うの桃白白。
最終更新日付を取得して保存しといてさ、比較するの。

Office TANAKA - Excel VBA FileSystemObject[DateLastModifiedプロパティ]
http://officetanaka.net/excel/vba/filesystemobject/file04.htm
183176:2013/06/11(火) 17:44:06.71
MD5クラスモジュールを追加してMD5を取得、「PreMD5」と名づけたセルに保存する所までは出来ましたが
ファイル内容を変更し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
184デフォルトの名無しさん:2013/06/11(火) 17:50:46.22
>>183
> Debug.Print MD5.MDFile
の下に
Debug.Print Range("PreMD5").Value
を入れて、同じか違うか再度確認。

同じ場合は、MD5算出ロジックがおかしい可能性あり。
違う場合は、ブレークポイントを設定してステップ実行し、本当に意図しない動きをしているか確認。
185デフォルトの名無しさん:2013/06/11(火) 17:57:46.82
>>183
Dim MD5 As New MD5

じゃなくて

Dim hoge As MD5
Set hoge = New MD5

じゃね?
更にいうと型と同じ変数名は、混乱するから別名にしたほうがいいかと。
186デフォルトの名無しさん:2013/06/11(火) 18:06:08.87
>>183
md5クラスのソース見せてみ
間違ってるかもしれんで
187デフォルトの名無しさん:2013/06/11(火) 18:07:24.46
>>185
> Dim MD5 As New MD5
これは問題ない。
インスタンス化はこの行で行われるのではなく、初めて使用した箇所まで遅延する。

> 更にいうと型と同じ変数名は、混乱するから別名にしたほうがいいかと。
それには同意する。
188185:2013/06/11(火) 18:13:23.29
>>187
指摘どもです。
手元の環境で

Dim MD5 As New MD5

が問題ないことを確認できました。

>>183
混乱させるようなレスしてごめんなさい。
189176:2013/06/11(火) 18:38:54.71
>>184
テストの結果、MD5算出は正常に行われているようです。
ファイル内容を変更するたびきちんと変化します。
さらにブレークポイントで止めても、変更した時はElse以下、していない時はIfの内容が実行されています
ということは比較、もしくは実行内容以下のソースがおかしいということになるでしょうか
実行内容自体はテストして問題がなかったものですが

>>185
いえいえ、変数や定義の意味が分かるのでとても勉強になります。
とりあえずfMD5という名前に直しておきました。
190176:2013/06/11(火) 18:43:41.85
>>182
ありがとうございます。まさにピッタリの内容なんですが
上のものを安易な考えで最終更新日時に置き換えてみたところ
  Set FSO = CreateObject("Scripting.FileSystemObject")
  FSO.GetFile("aaaa.csv").DateLastModified ←
で実行時エラー438(オブジェクトはこのメソッドまたはプロパティを〜)が出ます。
このやり方も気になるので調べてみたいと思います
191デフォルトの名無しさん:2013/06/11(火) 18:52:29.89
>>190
FileSystemObjectを使用するときは
VBEのメニュー「ツール」→「参照設定」で「Microsoft Scripting Runtime」を有効にする必要がある。

Visual Basic で FileSystemObject を使用する方法
http://support.microsoft.com/kb/186118/ja
192176:2013/06/11(火) 19:31:21.58
原因が判明しました。MD5の変更のためにCSVをExcelで編集した結果
改行コードが変わったため実行内容が動作していなかっただけでした…
本番環境で実行した結果意図した通りの挙動になりました

>>191
FSOも動作するようになりました!

皆さんありがとうございました
193163:2013/06/11(火) 19:44:08.98
>>166
そうか、一時的にイベント切ればいいだけだったんだ…
ありがとうございます
194デフォルトの名無しさん:2013/06/11(火) 23:35:32.35
A列にある150行程度のセル内の文字を基にテキストボックスを作る。これを利用してマインドマップとして使いたい。
そんなサンプルコードがある場所を教えてください!
195デフォルトの名無しさん:2013/06/11(火) 23:47:16.81
196デフォルトの名無しさん:2013/06/12(水) 00:19:41.99
>>195
Excel VBA 文字 テキストボックス 作成
でググった結果のTOPのやつじゃん
ggrksとはこの事か
197デフォルトの名無しさん:2013/06/12(水) 00:49:17.30
はい
198デフォルトの名無しさん:2013/06/12(水) 06:59:56.12
TeXコードをExcel方眼紙にコンパイルするライブラリやツールは存在しますか?
有料のでも良いのでもしありましたら教えて頂けると助かります
199デフォルトの名無しさん:2013/06/12(水) 07:16:05.66
>>198
> TeXコードをExcel方眼紙にコンパイル

意味不明、スルー推奨。
200デフォルトの名無しさん:2013/06/12(水) 07:34:08.73
わからないならレスしなくて結構です
201デフォルトの名無しさん:2013/06/12(水) 07:54:29.04
放置決定w
202デフォルトの名無しさん:2013/06/12(水) 08:35:20.12
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    Application.OnTime Now(), "Hoge"
End Sub

ブックを保存して終了する時に↑が実行されるとHogeの前にWorkbookのDeactivateイベントが発生してしまいます
Deactivateの前にHogeを実行するか、Deactivate内でHogeを発生させない処理をさせることはできないでしょうか?
Excel2000です
203デフォルトの名無しさん:2013/06/12(水) 08:59:27.50
>>202
保存用のマクロ組めばいいんじゃね?

Sub ブック保存()
  Application.OnTime Now(), "Hoge"
  'ブック保存の処理を追加
End Sub
204デフォルトの名無しさん:2013/06/12(水) 09:11:06.19
なんでOnTime
Runじゃダメなのか?
205202:2013/06/12(水) 19:39:23.46
>>203
hogeは保存後に編集を継続する時用の処理が書いてあります
なのでhogeは保存後に実行したいのです
しかし保存自体をExcelに任せず自分で作るとなると、挙動のパターンが多くて俺にはちょっと手に負えないので…

>>204
Runは別のブックしか呼び出せないと思ってたのですが違いましたっけ?
206203:2013/06/12(水) 20:25:05.91
>>205
何かよくわからなくなってきた。
保存後にHogeを実行したいがために、 Workbook_BeforeSaveのところで
Application.OnTimeを使っているということ?
>>202の質問の内容とかコードを見る限り保存前にHogeを実行したいものと思ってた。

ちょこっと動作確認してみた程度けど、単純な保存じゃないよね?
普通の上書き保存だとDeactivateイベント発生しなかった。

1.マクロが格納されているファイルを編集
2.編集後、即ブックを閉じる操作を実行。
3.上書き保存しますか?というメッセージ出力。
4.「はい」を選択するとDeactivateイベント発生。
5.Hogeの実行。

これだとすると

Sub 作業終了処理()
  'ブック上書き保存
  'Hogeの実行
  'ブックを閉じる
End Sub

でできるような気がするけどどうでしょう?
207デフォルトの名無しさん:2013/06/12(水) 20:32:07.88
Deactivateイベント内でHoge実行しないでねフラグ立てれば?
同様にActivateも必要かもだけど
208デフォルトの名無しさん:2013/06/12(水) 20:36:56.97
なんで直接呼ばないでOnTimeとかRunとかなの?
209デフォルトの名無しさん:2013/06/12(水) 20:39:59.51
これ見たんじゃね?
http://www.officelabo.net/vbaskill/vba19.html
210デフォルトの名無しさん:2013/06/12(水) 20:44:11.38
>>206
OnTimeを使ってる理由はその通りです
説明を端折ってしまいましたがOnTimeの前に保存直前の処理があります
教えてもらった方法では「名前を付けて保存」を選択された場合にフォローできなくなってしまうのです

弄ってて気付いたんですが、ブックだけ閉じるとDeactive→hogeの順なのにExcelを閉じるとhoge→Deactiveになるんですね

とりあえず>>207でもう一度考えてみます
211デフォルトの名無しさん:2013/06/12(水) 20:52:13.40
>>209
へー
212デフォルトの名無しさん:2013/06/12(水) 21:12:21.73
OnTimeで保存後に実行されるとか、保障されない微妙なタイミングの動作だな
保存してそのあと処理したいなら、自分で保存処理書いて(イベントはキャンセルして)
そのあと自分でやりたい処理呼べば良いだけだと思うが
213デフォルトの名無しさん:2013/06/12(水) 21:59:38.52
保存自体を自分で作ると手に負えないって言ってるけど
そうしてない今でも全然手に追えてないよね
別の方法を考えたほうがいいんじゃない
214デフォルトの名無しさん:2013/06/12(水) 22:09:17.15
保存処理なんて
上書きならSaveメソッド呼ぶだけ
新規でもファイル名決めてSaveAsメソッド呼ぶだけだろ
215デフォルトの名無しさん:2013/06/12(水) 22:20:53.04
ieのオブジェクト使ったマクロ、実行するパソコンによって動くのと途中でエラー出るのとあるけど、なんだろう。
216デフォルトの名無しさん:2013/06/12(水) 22:36:42.95
>>202
Deactiveにこだわる理由がわからん。
終了処理とからめたいのならBeforeCloseを使うのが本筋と思うが?
ExcelまたはBookを終了したときの動作仕様があいまいなのも良くない。
必ず保存させたいのなら「未保存ならBeforeCloseでCancel」という手もある。
217202:2013/06/12(水) 23:10:42.29
>>216
保存させたいわけではなく、保存して終了する時と保存するだけの時の処理を分けようとしてこうなりました
BeforeCloseはブックを閉じようとした時に出る「保存しますか?」の直前に呼ばれるので、そこでキャンセルされた場合、BeforeCloseの終了処理が無駄になります
Deactivateなら実際にブックが消える時に呼ばれるので都合がいいと思いましたがそうでもなかった
218デフォルトの名無しさん:2013/06/12(水) 23:22:43.15
保存するときの処理を保存がキャンセルされても実行したいの?
それおかしくね?
219デフォルトの名無しさん:2013/06/12(水) 23:25:39.65
>>217
ユーザーフォームを使って選択させたり、ボタンで処理を分けたりするほうが無難な気がする。
220デフォルトの名無しさん:2013/06/12(水) 23:26:31.45
閉じるときならbeforeclose使えば済む話とは違うのそれ
deactiveならブック切り替えただけでも走るし
221デフォルトの名無しさん:2013/06/12(水) 23:28:55.78
保存が手に負えないのは標準の保存処理を真似ようとしてるのでは?
それやると結構で保存ボタンを別に置くのが無難だと思うよ
222デフォルトの名無しさん:2013/06/12(水) 23:30:35.45
>>220
多分こうかと

保存後にしたい処理がある
だがクローズ時の保存は対象外としたい
223デフォルトの名無しさん:2013/06/12(水) 23:57:53.00
標準のライブラリと同じ動作を一から作るのは本当に大変
.Netがインスコできない環境のためMFCで.Netの動作を再現しようとして血反吐を吐いた覚えがある
結局はフラグを山のように用意して条件分岐しまくりになった
224202:2013/06/12(水) 23:59:25.04
>>218
Private Sub Workbook_BeforeSave
 保存前に必要な処理
 Ontime 保存後の処理
End Sub

Private Sub 保存後の処理
 ただの保存や、閉じようとしてキャンセルした場合等、続けて編集する場合に備えた処理
End Sub

閉じる時の保存確認で「いいえ」だった場合はBeforeSave通らないし何もする必要がないので問題なし
「キャンセル」だった場合も上の処理で問題なかった
「はい」だった場合、本来「保存後の処理」は不要ですが、あとは閉じるだけだし保存にも編集にも影響しないので放置することにしました
しかし「保存後の処理」の前にDeactivateが発生してしまい…
やっぱり上で言われてる通りOntime使ってるのが間違いな気がします

>>221
使う人に独自の操作をさせたくなかったので…

>>222
そんな感じです

長くなってすいません
225デフォルトの名無しさん:2013/06/13(木) 00:13:30.88
>>224
まずDeactivateを勘違いしてると思われ
保存後の処理とやらが、ほんとに保存後にやる必要があるのかどうかも疑問は残るが
どっちにしても>>212で解決する気がするが
終了時の(新規)保存で処理したくないならBeforeCloseでフラグ立てときゃ良い話
226デフォルトの名無しさん:2013/06/13(木) 00:27:18.06
いまいちわからんけどこういうこと?deactivate使わんで閉じようとしたときになんか変更あれば自分で聞く感じ。

Private 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
227デフォルトの名無しさん:2013/06/13(木) 00:38:17.03
>>226
それだとどっちにしても閉じてるけど、>>224によれば
閉じようとして、セーブするか聞かれてキャンセルしたら
実際はセーブされていないが、保存後の処理とやらは実行するらしい
228デフォルトの名無しさん:2013/06/13(木) 00:42:54.53
それ保存後の処理じゃないじゃん。意味わからん。
yesnocancelで聞いてvbcancelの時にそれ呼ぶ感じなのかね。
もう寝る。
229202:2013/06/13(木) 00:59:31.94
>>227
すいません、間違ってますねこの説明>>224
いいえもキャンセルもbeforesaveは通らないですね
「保存後の処理」は、保存だけして編集を続行する時のための処理です
230デフォルトの名無しさん:2013/06/13(木) 01:24:55.88
>>229
だから>>212,225ではダメなのかと
231デフォルトの名無しさん:2013/06/13(木) 07:46:59.75
一度設計を見直す必要がある気がするなぁ。
保存後に処理を実行するって、保存後にワークシートを操作する処理を実装しているのなら
結局もう一度ブックを保存する必要あるし。
今のままだとブック保存→マクロ実行→ブック保存・・・の永久ループになりそうな気がする。

本当にブック保存時にマクロを実行しなければいけないのか、
ブック保存時じゃなくて単にマクロを実行するだけじゃだめなのか。
作業者に対する配慮ももちろん必要だけど、配慮しすぎて作りが非常に難しくなったら
それこそ本末転倒かと。
232デフォルトの名無しさん:2013/06/13(木) 18:56:44.54
>>230
保存イベントの自作は避けたかったのです

>>231
保存後の処理は引き続き編集する時だけ必要なもので、終了する時は不要です
終了するだけだから放置しても問題なかろうと思ってそのままにしてました

しかし俺も結局>>231さんの言うところに落ち着きました
OnTime使うのは危うい
融通効かそうとして無理してた感じなので、周りがAfterSaveを使える環境になるまでここら辺の処理は保留することにします

色々ありがとうございました
233デフォルトの名無しさん:2013/06/14(金) 10:20:24.79
>>232
それがいい
あんまガチガチの入力フォーム使わされるとストレスたまる
234デフォルトの名無しさん:2013/06/14(金) 13:53:03.24
>>217
「保存した後の処理」とやらを説明した方が最適解にたどり着く可能性があったりするかもしれない。
235デフォルトの名無しさん:2013/06/14(金) 17:19:17.21
>>233
ガチガチの入力フォームってどんなもの?w
マクロなんだからガチガチしなくていいと思うけど。
236デフォルトの名無しさん:2013/06/14(金) 18:10:54.60
どや?カッチカチやろ?
237デフォルトの名無しさん:2013/06/14(金) 20:07:49.82
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)

End Sub



ここのTargetが複数だった場合、行をひとつひとつ見ていくにはどうすればいいのでしょうか?
Range.Rowだと一番上のしか見れないみたいです
238桃白白 ◆9Jro6YFwm650 :2013/06/14(金) 20:17:49.06
お前ら出番です。
239デフォルトの名無しさん:2013/06/14(金) 20:23:46.03
>>237
Target云々じゃなくてRangeプロパティの使い方が分からないってことだと思う。
MSDN見ても分からなければ諦めたほうがいい。

Range プロパティ
http://msdn.microsoft.com/ja-jp/library/microsoft.office.interop.excel.range_properties(v=office.11).aspx
240桃白白 ◆9Jro6YFwm650 :2013/06/14(金) 20:26:00.06
>>239
それ.NETやで
241デフォルトの名無しさん:2013/06/14(金) 20:27:11.27
>>238 - 240

For Each使ってひとつずつ処理していきました
ありがとうございました。
242デフォルトの名無しさん:2013/06/14(金) 23:39:59.27
変数xがあって、A行のx列目を指定したい時
Range("A
の次はどのように記述すれば良いのでしょうか。
243桃白白 ◆9Jro6YFwm650 :2013/06/14(金) 23:47:50.70
>>242
Range("A" & x)
244デフォルトの名無しさん:2013/06/14(金) 23:47:53.43
>>234
ファイルを開いたときに編集に必要なボタンを作成
保存するときにボタンを削除
保存後、編集を継続する場合は削除したボタンを再度作成

最初からシート上にボタンを用意しておいた場合、マクロ無効でファイルを開くとそのボタンが見えてしまうのが嫌でこういう仕様にしようとしました
メインの処理と関係ない部分なので、これだけの為に保存用フォームを作ったりするのはちょっとどうかと思ったのでそれは避けたかった次第
245デフォルトの名無しさん:2013/06/14(金) 23:52:58.76
>>243
ありがとうございます。
246デフォルトの名無しさん:2013/06/15(土) 01:18:04.87
>>243
顔文字にみえた
247デフォルトの名無しさん:2013/06/15(土) 02:37:39.94
>>244
ん?保存用フォーム作ると思ってた?
確かにそれはやりたくないわw
248デフォルトの名無しさん:2013/06/15(土) 04:04:27.86
>>243
相変わらず乱暴な書き方するなぁ。
249デフォルトの名無しさん:2013/06/15(土) 05:07:57.18
>>244
保存用フォーム作れなんて誰か言ってたか?
250デフォルトの名無しさん:2013/06/15(土) 05:15:56.82
>>242
>>243でも出来なくはないが、Cells(x, 1)と書く方が一般的
必要ない文字列連結はしない方が良いし、マクロでセル位置してするときにA1形式はあんまり使わない
251デフォルトの名無しさん:2013/06/15(土) 06:58:25.80
>>242
> A行のx列目を指定したい時

A行?
252デフォルトの名無しさん:2013/06/15(土) 08:44:01.70
>>249
例えです
253桃白白 ◆9Jro6YFwm650 :2013/06/15(土) 09:37:47.11
>>248
そんなことない、桃白白はこれでいいか何度も見直して慎重に、まるで
ジェンガのように必要な所だけを残して返信したの。
これがそのときの桃白白。これでジェンガしたの。乱暴とはほど遠いっしょ。
http://garakuta.chips.jp/blog/ga/yonekura.jpg
254デフォルトの名無しさん:2013/06/15(土) 11:01:43.44
>>250
いや普通にRangeも使うだろ

この状況でどうしてもCellsにこだわるなら、せめてCells(x, "A")と書く
その方が可読性が高い
255デフォルトの名無しさん:2013/06/15(土) 12:32:49.78
俺は基本に忠実なcellsを使う桃白白が好きだよ
256デフォルトの名無しさん:2013/06/15(土) 13:39:16.07
cells(x, "A")とか書く奴見たら、殺したくなるな
257デフォルトの名無しさん:2013/06/15(土) 13:57:26.09
Cells(x, "A")て。
258デフォルトの名無しさん:2013/06/15(土) 14:20:03.93
やってみると案外便利だったとは言えない流れ
259デフォルトの名無しさん:2013/06/15(土) 14:48:24.36
>>254
ほぅ、糞コード書くヤツが考えそうなアホなネタだなw
260桃白白 ◆9Jro6YFwm650 :2013/06/15(土) 15:11:43.73
>>259
そんなことないだろ
261デフォルトの名無しさん:2013/06/15(土) 15:27:13.28
1行目に列名がズラーっと並んでるデータ形式だと、
Dictionaryオブジェクトとか色々使って更に可読性を上げたくなる。
(Cells(x, "伝票番号")、みたいな)
262デフォルトの名無しさん:2013/06/15(土) 15:52:47.04
enumさんのお世話になる
263デフォルトの名無しさん:2013/06/15(土) 16:55:57.91
>>261
すまん、何が言いたいのか全く分からんw
264桃白白 ◆9Jro6YFwm650 :2013/06/15(土) 17:12:02.93
>>263
桃白白はわかったけど?
265デフォルトの名無しさん:2013/06/15(土) 17:26:50.52
>>264
糞コードを書くヤツ同士波長が合うわけかw
266桃白白 ◆9Jro6YFwm650 :2013/06/15(土) 17:37:59.24
>>265
自分がわからないのは、回りが全部糞だからだ、みたいなね。
267デフォルトの名無しさん:2013/06/15(土) 17:48:14.61
列名のアルファベットをいちいち暗算で数字に変換するのってバグの元じゃん
デバッグもやりにくいし
さすがに最初の方なら暗記してても、2文字とか3文字の時はどうすんの
結局はRange("ABC" & x)とかCells(x, "ABC")って書くしかないだろ
268デフォルトの名無しさん:2013/06/15(土) 17:51:42.92
いつまでもA列があると思うなよ
269デフォルトの名無しさん:2013/06/15(土) 18:04:35.26
>>267
メニュー「ツール」→「オプション」→全般タブの設定の「R1C1 参照形式を使用する」を有効にすれば
数字のままで充分対応できるんだが何か?

> 結局はRange("ABC" & x)とかCells(x, "ABC")って書くしかないだろ

痛すぎて笑えないレベルってか釣りか?
270デフォルトの名無しさん:2013/06/15(土) 19:17:37.90
ちょっとしたマクロ書く為にわざわざR1C1に設定するくらいなら"ABC"でいいや
271デフォルトの名無しさん:2013/06/15(土) 19:36:35.42
今年の頭ぐらいにVBAを初めて最初の頃は次から次へとVBA特有の変なErrorが発生し
何度も痛い目に合わされたが、
すっかり飼い慣らしてしまえば何千行のコードを書こうがこっちのもんだね。うひっひっひ!
272デフォルトの名無しさん:2013/06/15(土) 19:39:53.82
。゜( ゜^∀^゜)゜。アーッハハ八八ノヽノヽノヽノ \ / \
273デフォルトの名無しさん:2013/06/15(土) 19:44:15.64
\(^○^)/ワーハッハッ/ \/ \♪
274デフォルトの名無しさん:2013/06/15(土) 21:15:38.96
列位置に対して演算する必要が全くないなら"A"でも良いよ
その方が可読性が高いのには同意する
275デフォルトの名無しさん:2013/06/15(土) 23:21:27.59
列に一切動きのないマクロなら確かにAだのBだのでいいと思う。
列に対して削除・挿入・移動かけるような奴だと、
後でコード見ることになる人のことを考えて、
列ラベルから列番号を取得できるような仕組みを入れる。
276デフォルトの名無しさん:2013/06/15(土) 23:49:49.35
質問スレで持論を語るアフォばっかりw

よそでやれ
277デフォルトの名無しさん:2013/06/16(日) 03:45:47.19
>>274
>>275
同意。
でも、Cells(x, "A")は痛いw
278デフォルトの名無しさん:2013/06/16(日) 08:57:30.39
cells()って文字も扱えるのか。知らなかったにょーん
279デフォルトの名無しさん:2013/06/16(日) 09:56:20.94
Excelは日本のIT業界全体の生産性を著しく低下させている
280桃白白 ◆9Jro6YFwm650 :2013/06/16(日) 10:07:50.00
>>279
仕事くれ
281デフォルトの名無しさん:2013/06/16(日) 10:45:17.24
ソートとかフィルタをちょっとかけるぐらいなら
これ以上に無いぐらい便利だけど
282デフォルトの名無しさん:2013/06/16(日) 10:52:06.50
そんなんでいいならシェルコマンドで一瞬やん
283デフォルトの名無しさん:2013/06/16(日) 11:36:45.58
>>282
Windowsの話ですので。
284デフォルトの名無しさん:2013/06/16(日) 11:43:36.74
範囲指定と結果の確認を直感的にできる
手段と目的を混同しない
285デフォルトの名無しさん:2013/06/16(日) 11:56:45.77
>>283
窓でもできるやん
286デフォルトの名無しさん:2013/06/16(日) 13:10:58.80
WindowsならExcelの方が一瞬やろ
可能か不可能かの話してるわけでもないし
287デフォルトの名無しさん:2013/06/16(日) 13:25:16.22
ExcelだとテキストをCSVにしてExcelに読み込ませて何度もクリックしてようやくソートされる
コマンドならささっとキーボードをコンマ数秒触るだけでできるやん
288デフォルトの名無しさん:2013/06/16(日) 13:34:27.61
どうしても反論したいだけなのね
289デフォルトの名無しさん:2013/06/16(日) 13:40:24.88
そりゃ事実だからね
間違いがあるなら指摘しなきゃ
290デフォルトの名無しさん:2013/06/16(日) 13:51:32.24
だってCSVソートするだけじゃ仕事にならないんだもん
291デフォルトの名無しさん:2013/06/16(日) 14:14:30.37
ならなおさらExcelは使っちゃダメだろ
大量のデータを複雑な分析にかけるのにExcel使うんか?
292デフォルトの名無しさん:2013/06/16(日) 14:19:31.19
お好きな方法で解析すればよろしいやん
293デフォルトの名無しさん:2013/06/16(日) 14:21:38.24
Excel VBA質問スレでExcelをdisって何したいのか分からんな。
こういうやつがコード書くと最初の目的とはかけ離れた糞コード書いて自己満足に浸ってるんだろw
294デフォルトの名無しさん:2013/06/16(日) 14:26:40.68
仕事で使われたら迷惑だし
撲滅したいんだよ
いわば敵情視察ってやつさ
295デフォルトの名無しさん:2013/06/16(日) 14:29:19.33
御愁傷様
296デフォルトの名無しさん:2013/06/16(日) 14:44:32.55
あんたが管理職や経営者に向いてないことはわかった
一生安月給で社畜やってろ

反論で「年週××万ですが」「起業してますが」とか嘘つくの禁止な
297デフォルトの名無しさん:2013/06/16(日) 14:46:39.22
ソートするのにExcel使われたら迷惑って、何か心に病を抱えてませんか?
298デフォルトの名無しさん:2013/06/16(日) 15:13:39.99
>>296
逆に今のExcel大好きなオジサンたちが優秀に見えるか?
299デフォルトの名無しさん:2013/06/16(日) 16:01:58.61
数年かけて会社の業務の7割をVBA&VBで自動化して今では仕事やってるふりして遊んでいますが何か問題でも?
300デフォルトの名無しさん:2013/06/16(日) 16:50:33.89
パソコンなんて道具なんだから好きに使えばいいじゃない
過程より結果だよ
極めて効率悪い方法で残業しながらでも結果を出した人が評価されるんだから

そりゃ同じ事を素早くやればもっと評価されるだろうけど、
ここでExcelの使い方に文句言ってるやつらは間違いなく途中経過にこだわりすぎて結果を出せてない
301デフォルトの名無しさん:2013/06/16(日) 16:58:40.27
途中経過にこだわらなきゃ結果は出ない
Excel設計書という悪しき文化が日本のIT業界を衰退させてるんだ
302デフォルトの名無しさん:2013/06/16(日) 17:20:01.90
IT業界w
303デフォルトの名無しさん:2013/06/16(日) 17:23:09.96
なんかおかしいか?
304デフォルトの名無しさん:2013/06/16(日) 17:24:30.79
。゜( ゜^∀^゜)゜。アーッハハ八八ノヽノヽノヽノ \ / \
305デフォルトの名無しさん:2013/06/16(日) 17:25:55.68
なんだキチガイか
Excelでお遊びすると脳がやられるんだな
306デフォルトの名無しさん:2013/06/16(日) 19:45:05.31
>>294 >>301
頼むからこっちのスレを盛り上げて下さい。

VBA資産を駆逐するにはどうすればいいか
http://kohada.2ch.net/test/read.cgi/prog/1324790161/
307デフォルトの名無しさん:2013/06/16(日) 20:01:20.35
VBAにフリーなC言語パーサってある?
308デフォルトの名無しさん:2013/06/16(日) 22:02:41.72
VBAで10万行ぐらいあるコードを毎秒実行し続け素晴らしい生産性を得ていますが
Microsoftからおまえ使いすぎだろって!警告が来たりしないのでしょうか?
309デフォルトの名無しさん:2013/06/16(日) 22:24:31.54
そういえば糞コードしか書けない奴で3000件を超えるようなデータはaccsess使うべきって奴いたな
ようするにexcelが使いこなせないだけなんだが
310デフォルトの名無しさん:2013/06/16(日) 22:49:48.77
タオパイパイ助けれ。
とあるブックにシートが2枚あって、
そのブックのショートカットがパスAとパスBにそれぞれ有った場合、
パスAから開かれた場合は、起動時にシートAを、
Bの場合はシートBを。

見たいな子としたいんだけど。
引数付けてショートカット軌道した場合、エクセルどうやって受けとんだ?
VBSなら簡単なのにな。
311桃白白 ◆9Jro6YFwm650 :2013/06/16(日) 22:55:14.23
>>310
桃白白それわかんないから、桃白白にはふらないで(しのび声)
312デフォルトの名無しさん:2013/06/16(日) 22:59:17.90
>>311
人間考える事を止めると終わりだぞ。考えれ。
俺も考える。
お前も考えれ。
313片山博文MZパンク ◆0lBZNi.Q7evd :2013/06/16(日) 23:04:53.61
コマンドライン引数はGetCommandLine APIで確認できます
314デフォルトの名無しさん:2013/06/16(日) 23:17:41.91
>>310
なんとなくググってみたらこんなん出てきたけど
ttp://chaichan.lolipop.jp/vbtips/VBMemo2006082401.htm
315デフォルトの名無しさん:2013/06/16(日) 23:19:22.41
316デフォルトの名無しさん:2013/06/16(日) 23:39:19.99
ちょっと遠回り感否めないが、直に引数は渡せない。
VBS経由で引数的な状態で渡す事ができる。

という事やな。
よっしゃやってみるわ。
317デフォルトの名無しさん:2013/06/16(日) 23:47:58.33
どの方法もなんだかめんどくさそうだな
俺ならバッチファイルでやるわ

echo "引数" > param.txt
start hoge.xls
318デフォルトの名無しさん:2013/06/17(月) 05:44:05.69
>>317
バッチファイルの書き換え或いは複数のバッチファイルを残す必要ありそうだし、これもなんか面倒。

何もしない対応が一番楽な気がする。
シートの数が多いブックで起動時に毎回スクロールするのが面倒というのなら
左下のシートスクロール用のスクロールバーで右クリックすればシートのリストが表示されて選択できる。
引数でシートを指定するとしてもシートの数が多かったら覚えきれないだろうし。

仮にシート数が少ないのならそれこそシートのタブ?で選択すればいいわけで。
319デフォルトの名無しさん:2013/06/17(月) 15:15:53.14
俺ならシートAとシートBを別ブックにするがな
320デフォルトの名無しさん:2013/06/17(月) 15:43:52.59
VBSでExcelもExcel VBAも全部操作してしまえばいい
321デフォルトの名無しさん:2013/06/17(月) 16:34:02.66
以前こちらでお世話になり、Excel2003でハッシュを保存し更新チェックをするマクロを組みました。
しかし新たに、2010へ持っていくと「インデックスが有効範囲にありません」というエラーが発生する
問題が起こりました。2003環境では問題なく動作します。
ttp://officetanaka.net/excel/vba/error/execution_error/error_9.htm
などを見ると変数の型の問題か名前関連の扱いなどがあやしい?と思い
色々と試してはみたのですが、その度別のエラーが発生し
自分では手に余りそうです。
どこが問題なのか、どうすれば良いのかご指摘いただけないでしょうか。

MD5チェックのモジュールはこちらのものを使わせていただいています。
ttp://www.taru-net.jp/excel/excelVBA/MD5/readme.html

ソースは以下の通りです(長いので分けます)
322デフォルトの名無しさん:2013/06/17(月) 16:34:37.84
Private Sub Workbook_Open()
  Dim 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
323デフォルトの名無しさん:2013/06/17(月) 17:06:38.85
>>321
「インデックスが有効範囲にありません」というエラーが発生したときに
コードのどこで止まってるのかな?
まずはそこから判断していかないことには何とも言えない。
324323:2013/06/17(月) 17:21:52.39
>>321
因みにRange("PreMD5")ってあるけど、Excel2010のブックのセルの範囲に"PreMD5"の名称は定義されてるのかな?
325デフォルトの名無しさん:2013/06/17(月) 17:23:43.23
>>323
失礼しました。
Range("PreMD5") = fMD5.MDFile
のあたりで止まります。名前は「抽出」ワークシート内の1セルに定義してあります。
326デフォルトの名無しさん:2013/06/17(月) 17:31:54.15
>>325
シートの指定を省略してるから別のシートのセルを参照している可能性があると思う。
試しに下記のコードでエラーが出なければRangeのシートの指定をする必要がある。
ThisWorkbook.Sheets("抽出").Range("PreMD5") = fMD5.MDFile
327デフォルトの名無しさん:2013/06/17(月) 18:12:37.53
>>244
ファイルを開いたときに必要なボタンを作成
ファイルを閉じたときに上記ボタンを削除

じゃだめなの?
328桃白白 ◆9Jro6YFwm650 :2013/06/18(火) 02:25:28.16
>>325
ReDimでマイナス値を指定したときも
「インデックスが有効範囲にありません。」というエラーが発生するの。

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なんじゃなあい?
329デフォルトの名無しさん:2013/06/18(火) 04:45:13.49
>>326
ありがとうございます。それだと「アプリケーション定義またはオブジェクト定義のエラーです」
となります。

>>328
一応パスは通っていると思いますし、サイズもきちんとデータが入っており2003では普通に動きます。
Ifを外した際には想定通りデータの読み込みまで行きます。が、その後Line Input #1, buf
で「データがこれ以上ありません」というエラーが発生します。

バージョンが違うだけでこれだけ挙動って変わるんですね…
330デフォルトの名無しさん:2013/06/18(火) 06:55:57.57
>>329
ごめんなさい。
こっちでもダメかな?
csvws.Range("PreMD5") = fMD5.MDFile

怪しいところはRange("PreMD5")、fMD5あたりだから問題の個所を切り分けしたいところ。
331デフォルトの名無しさん:2013/06/18(火) 11:51:04.89
少なくとも2007まではVBAの互換性は極めて高い。2010になって極端に互換性が下がるとは考えにくい
もともと問題のあるコード書いてたんだろ

まずエラーの出てる行を特定しろよ。xxあたりとか話にならん
Range("PreMD5") = fMD5.MDFile の行は二つあるがどっちでエラーなんだ?
その前のIfではエラーにならんのか?だったらその行を
Range("PreMD5").Value = "test"
MsgBox VarType(fMD5.MDFile)
MsgBox fMD5.MDFile
に変えたらどうなる?

どうでもいいけど、Range("PreMD5")って何回か出てくるが、どれかはNowMD5の間違いじゃないのか?
あとオープンのファイル番号は決め打ちするなとかデフォルトプロパティは省略するなとか
332デフォルトの名無しさん:2013/06/18(火) 16:21:41.41
>>331
何をそんなに焦ってるんだ?w
質問者が焦ってるならともかく、お前が焦る必要なんてこれっぽっちもないわけだが。
質問者だってこれにつきっきりっていう暇人でもないんでしょ。

質問者のレスがくるまでゆっくりしようや。
333デフォルトの名無しさん:2013/06/18(火) 16:40:18.73
>>332
うざ
334桃白白 ◆9Jro6YFwm650 :2013/06/18(火) 18:47:49.66
で、みんなほんとのところはどう思ってる?
桃白白はこれが怪しいとにらんでるの。桃白白の涼しげな目線の先には
これがあるの。
ChDir ThisWorkbook.Path

・ファイルのサイズが0なら、>>323のエラーや>>329のエラーが発生する。
・ファイルが存在しなければサイズが0のファイルが作られる。
・ファイルパスが違っていればファイルが存在しない。
・ThisWorkbook.PathがExcel2003とExcel2010とで違う値を返すならファイルパスが違う。
っていうふうに理屈付けができるのよね。

         ___
       /::::::::::::::::\              
      /:::::─三三─\             桃白白を信じるのです……。
    /:::::::::<○>三<○>.\
/⌒)⌒)⌒.:::::::::: (__人__) :::::: \   /⌒)⌒)⌒)
| / / /..    ` ⌒´    | (⌒)/ / / /,,
| :::::::::::(⌒)          /  ゝ ::::::. .........._
|     ノ           \  /_ /´    ヽ
ヽ    /             ヽ / /0      .',
 |    |                {o       ::}
                     ':       /
                      ヽ、___,.,/
335デフォルトの名無しさん:2013/06/18(火) 21:26:23.97
そんなとこの仕様変えられたら大変だから、そこの仕様そのものは変更ないと思う
ただし、UACの影響受けたりはするだろうけど
もしファイルパス回りなら、アクセス権かUNCパスかUACの影響だと思うが
あとはカレントディレクトリとカレントドライブが理解できてないか
336デフォルトの名無しさん:2013/06/18(火) 21:29:39.53
Activate, Select使う族はまだ生き残っていたのだなあ
337デフォルトの名無しさん:2013/06/18(火) 21:33:48.69
生き残っていたというより、新しく生まれ続けてるんだろ
338デフォルトの名無しさん:2013/06/18(火) 22:24:43.30
VBAやり始めのころはマクロの記録が頼りだからActivate, Selectは意味も分からず使ってたなぁ。
ブック.シート.セルでセルの指定ができることが分かってActivateやSelectは必要ないって理解したよ。
339デフォルトの名無しさん:2013/06/18(火) 22:29:57.31
Selectが不要とわかった頃はいちいち消して見た目スッキリにこだわってたけど
今はもう記録したまんま
動けばいい
340デフォルトの名無しさん:2013/06/19(水) 00:26:02.50
VBAのライブラリって貧弱ですね
341桃白白 ◆9Jro6YFwm650 :2013/06/19(水) 10:26:34.14
>>340
あるところにトムさんという人がいました。
トムさんはある日モデルルームに見学に行きました。
モデルルームには必要最小限の物しか置いてありませんでした。
実際生活するには不便だろうと思いました。しかし、いつのまにかモデルルームに見とれていました。
物が少ないからこそ美しさと気品が際立つことに気づきました。
そのことを後世に語り継ぎたいと考えました。これが、足るを知る者はとむということわざの由来です。
桃白白は日本古来に生存していたであろうトムさんに思いを馳せ、VBAを使うの。
342デフォルトの名無しさん:2013/06/19(水) 17:43:04.84
タオパイはVBAなんかやってないで
お笑い番組の放送作家を目指した方が才能を生かせると思う。
とりあえずケータイ大喜利あたりに投稿したらどうだろ
343デフォルトの名無しさん:2013/06/20(木) 01:44:18.28
クイックソートとバブルソートどっちがいいですか?

コード書くのはバブルソートの方がわかりやすいんですが、
スピードが全然違うんで悩んでます
344デフォルトの名無しさん:2013/06/20(木) 02:02:16.76
>>343
Excelのソート機能をVBAで使えばいいのに何で面倒な方を採用したいのかよくわからん。
345デフォルトの名無しさん:2013/06/20(木) 03:00:40.84
>>343
いいって何?
君の質問は質問になっていないよ
346デフォルトの名無しさん:2013/06/20(木) 03:38:56.88
うん。わかりやすい、スピードが速い、どっちもいいプログラムだね
何を悩んでいるのかな?どっちが「いい」のか、アンケート?
347桃白白 ◆9Jro6YFwm650 :2013/06/20(木) 13:39:32.03
>>343
桃白白はバブルソートがいいと思う。クイックソートは安定ソートじゃないし、
実装が難しいし、甘えだと思う。それを補って余りあるほどに処理速度が大事なんですって
ときじゃないかぎり使うべきじゃない。使わないべき。バブルソートを使うほうがいい。
バブルソートで実装して処理速度が問題になってからそこではじめてクイックソートを検討するべき。
とりあえず関数わけとけば問題ない。

Sub Bubble(a, l, u)
  ……
End Sub

Sub Sort(a, l, u)
  Bubble a, l, u
End Sub
348デフォルトの名無しさん:2013/06/20(木) 13:59:52.58
答えが割れる質問はアンケートと言って、質問スレでなく雑談スレでやるのが普通
349デフォルトの名無しさん:2013/06/20(木) 14:40:01.69
問題個所が分かってて、しかも対策方法分かってるのに問題あるほうを残すってのは意味が分からん。
コード云々以前の話だな。
350デフォルトの名無しさん:2013/06/20(木) 15:16:29.84
突然何の話だ?
351デフォルトの名無しさん:2013/06/20(木) 15:46:48.40
>>347
バブルソートって安定だっけ?
352デフォルトの名無しさん:2013/06/20(木) 15:58:53.41
>>351
なぜそんな疑問を抱くのか
353デフォルトの名無しさん:2013/06/20(木) 16:29:15.08
バブルソートにしろ
354デフォルトの名無しさん:2013/06/20(木) 16:57:17.96
>>343
Excel VBA質問スレなのにExcelのソート機能を使わないのはこのスレの住民に喧嘩売ってるの?w
355デフォルトの名無しさん:2013/06/20(木) 18:21:12.22
>>354
>>1
但し、VBA無しでも出来ることだが、あえてVBAでやりたいって物に関してはOK。

わざわざVBAでソート書く理由はわからんが
356デフォルトの名無しさん:2013/06/20(木) 18:34:24.49
>>355
> わざわざVBAでソート書く理由はわからんが

・シートに一旦値を設定する時間が大きい場合
・データ→シート→ソート→データというコードを書きたくない場合(めんどくさい)
・単純な数値や文字列ではないものをソートするとき

などなど。
357デフォルトの名無しさん:2013/06/20(木) 18:38:24.26
・己の美学(キリッ
358デフォルトの名無しさん:2013/06/20(木) 19:03:47.75
>>355
VBA有り(今回はソート機能)でも出来ることだが、あえてVBAでやりたいってことでしょ。
全然意味合いが違う。
Excel VBAにソート機能が無いということなら>>1に当てはまると思うけど。

>>343が何であえてソートを書かなければいけないのか理由を明確にする必要はあると思う。
359デフォルトの名無しさん:2013/06/20(木) 19:06:41.26
というかVBAにソートが無いことに驚きと失望を覚えた
ひょっとしてVBAは日本の生産力を下げるためにMicrosoftが投入した情報兵器なのではないか
360デフォルトの名無しさん:2013/06/20(木) 19:31:17.25
>>356
>・シートに一旦値を設定する時間が大きい場合
→今どきのPCでそんなに時間がかかるのか?
 画面更新を停止させるだけでも充分対策になると思う。

>・データ→シート→ソート→データというコードを書きたくない場合(めんどくさい)
→データの格納は変数にしてもセルにしてもやることは大差ない。
 単純に変数をセルに置き換えればいいだけだし。
 ソート処理は一行で書けるわけで、こっちの処理のほうが楽。
 どこがめんどくさいのかよくわからん。

>・単純な数値や文字列ではないものをソートするとき
→数値や文字列じゃないもののソートって例えばどんなものがある?
 普通は数値、文字列、日付程度だと思うけど。
361デフォルトの名無しさん:2013/06/20(木) 19:38:28.77
結論

他のスクリプトを使い快適なプログラミングライフを過ごしましょう
362デフォルトの名無しさん:2013/06/20(木) 19:54:16.19
そういや、数字の羅列だけで構成されているシートをソートするのにバブルソート使ったことあったっけな。
363デフォルトの名無しさん:2013/06/20(木) 19:54:50.73
×数字の羅列だけで構成されているシート
○数字の羅列だけでシート名が構成されているシート
364デフォルトの名無しさん:2013/06/20(木) 20:29:29.60
>>360
> >>356
> >・単純な数値や文字列ではないものをソートするとき
> →数値や文字列じゃないもののソートって例えばどんなものがある?
>  普通は数値、文字列、日付程度だと思うけど。

プログラム内でソートするときは、key-valueペアをkeyでソートとか、ユーザ定義体をとか
オブジェクトをとか。
365デフォルトの名無しさん:2013/06/20(木) 21:42:55.00
ソートを実装する必要性を問いかけた結果、トイプログラマであることがばれました
366デフォルトの名無しさん:2013/06/21(金) 11:45:58.55
>>360
> >・シートに一旦値を設定する時間が大きい場合
> →今どきの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
367デフォルトの名無しさん:2013/06/21(金) 12:22:31.99
>>366
配列使おうよ。
368デフォルトの名無しさん:2013/06/21(金) 12:45:51.35
>>367
>>366は、元データが10個の要素を持つユーザ定義体/インスタンスの場合を想定した処理。
10個の配列を用意して、そこにデータを入れてからシートに貼り付けてもいいが、めんどくさいでしょ。
さらに、ソート後、元データの構造に詰め替える処理もいる。

だったら、直接ソートしたのがシンプルだし速い。
369デフォルトの名無しさん:2013/06/21(金) 12:48:40.62
直接ソートする場合は、元データがどんな物であれ、基本的には比較関数を変えるだけで良い。
(ユーザ定義体/インスタンスのswapのコードも必要な場合もあるが)

Public Function fooCompare(obj1, obj2) As Boolean
  fooCompare = (obj1.key > obj2.key)
End Function

的な。
370桃白白 ◆9Jro6YFwm650 :2013/06/21(金) 13:11:17.57
>>369
1まんこのデータとなるとヴァブルソートじゃ厳しいかもしれんね。
371デフォルトの名無しさん:2013/06/21(金) 13:41:51.78
贅沢して作業用シート作って画面更新も計算停止もしないで別関数コールしても1秒かからんかったよ。
それ時間かかってる場所ソートと関係ないからなんかズレてんじゃ?>>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
372デフォルトの名無しさん:2013/06/21(金) 13:46:19.24
>>370
今のパソコンなら100マンコでも大丈夫
スペックが上がりすぎて初心者には違いがわかりにくくなった
マイコン時代はアルゴリズムが悪いと何時間とか何日って単位で遅くなったかんな
373デフォルトの名無しさん:2013/06/21(金) 13:46:54.52
あとvbaのrangeから取ったり貼ったりする「配列」って、最近の言語みたいに配列の配列じゃなくて、
普通の2次元配列だから、いわゆるレコードやフィールドを並べ替えるみたいなのは自作めんどいよ。
1次元配列だったらよそのひっぱってくればいいけど。
374デフォルトの名無しさん:2013/06/21(金) 13:50:04.31
>>371
お前は何がしたいんだ
375デフォルトの名無しさん:2013/06/21(金) 13:51:10.91
■桃白白他■

http://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秒用してしかも画面がフリーズする
376デフォルトの名無しさん:2013/06/21(金) 13:55:37.74
>>375
> ここでクイックソートとバブルソートの比較やるとぜんぜん違うんだが

誰か違いが無いなんて言ってるか?
377360:2013/06/21(金) 17:50:43.29
>>366
>元データの構造にも寄るが、セル一つ一つに値をコピーせざるを得ない場合、10要素を持つ一万個の
>データをコピーするのに必要な時間を計ってみる。

この条件、現実的じゃないと思う。
データをコピーと言っているけどその元データはどこに格納されてる?
それとソートした結果は最終的にどこに出力される?

元データが格納されると推定される場所
・DB
 データ取得時にSQLでソートできる。
 →Excel VBAでのソートの処理必要なし。
  Excelにデータを反映する処理は必要だけど、サンプルコードだとほんの数秒。

・テキストファイル
 カンマ区切りであれ、タブ区切りであれExcelで直接読み込める。
 →ファイルオープン処理のみで済む。
  ソートはExcelのソート機能をVBAで実装。

・Excelのシート
 既にデータ格納済みなのでデータの読み込み不要。

更にいうと
378桃白白 ◆9Jro6YFwm650 :2013/06/21(金) 18:12:58.32
>>375
要素数が100万個だとそれをバブルソートするのに必要な時間は22秒の1万倍で
足かけ3日っすね。いまでもまだ厳しいな。バブルソート厳しいな。
379デフォルトの名無しさん:2013/06/21(金) 18:15:30.12
>>377
> この条件、現実的じゃないと思う。
例えば、バイナリデータを直接ユーザ定義体の配列に読み込んだときとかですかね。
1秒1データで、データ要素が10個あるものを1日分(86400個)読み込んで処理するとか。
シートに展開してExcelの機能を使わないのであれば、VBAでやるなって話もありますが。

> データをコピーと言っているけどその元データはどこに格納されてる?
配列やCollection、独自コンテナなど。

> それとソートした結果は最終的にどこに出力される?
直接、配列やCollection、独自コンテナをソートします。
380379:2013/06/21(金) 18:17:43.09
付け加えると、CやC++で作ったDLLとデータをやり取りするので、シートに展開するよりメモリ上に
データを保持して扱った方が便利なときがあったりします。
381デフォルトの名無しさん:2013/06/21(金) 19:11:14.55
C#で作ったクラスを使いたいのですがどうすれば出来ますか?
382デフォルトの名無しさん:2013/06/21(金) 19:36:36.09
COM相互運用をONにしてビルド
DLLにCOMとしてのインターフェイスが生成される
RegAsmでレジストリ登録
(ビルド時にやってくれる)

構成ファイルはもちろんExcel.exe.config
ランタイムバージョンがどうなるか不明
(他ブックが似たようなことしてた場合とか)
383デフォルトの名無しさん:2013/06/21(金) 19:50:01.81
>>381
そのクラスをCOM対応にする
http://msdn.microsoft.com/ja-jp/library/ms173184(v=vs.100).aspx
とか参照

C#の方でEXCEL操作する方が楽だと思うぞ
384360:2013/06/21(金) 20:02:48.98
>>379
配列とかCollectionとか独自コンテナとかってあくまで処理に都合のいいデータの型であってデータとは違う。
配列とかCollectionとか独自コンテナに格納する元のデータはどこに格納されてるのかと言っているんだけど。
データ処理後の配列とかCollectionとか独自コンテナに格納されたデータは最終的にどこに出力するの?

要件定義が曖昧なまま、処理ありきで話を進めてるから現実的じゃないんだよね。
385デフォルトの名無しさん:2013/06/21(金) 20:10:36.42
もう諦めろよみっともない
386デフォルトの名無しさん:2013/06/21(金) 20:14:13.18
>>384
ん、だから例えばバイナリファイルが入力元とかだよ。
ソートやその他処理(例えば統計処理とかFFTとかね)をして、グラフ表示したり、
シートに出力したり、ファイルに出力したりだよ。

そこそこ大量の、単なる数値配列などではないデータ形式のデータを、オンメモリで処理すること
なんかありえないって言いたいのかなぁ。

ちょっと目的がわかりません。
387デフォルトの名無しさん:2013/06/21(金) 20:21:47.96
ソート自分で書きたいなら書けば良いじゃん。その理由なんてどうでもいいわ
VBAで処理すべきかEXCELの機能で処理すべきかの論議はよそでやってくれ
388デフォルトの名無しさん:2013/06/21(金) 20:47:43.02
質問そっちのけでオレ流コーディングポリシーの
主張に余念の無い人が多いよねえ。
そういうことをするためのスレじゃないんだけどな。
これも一種のコミュ障?
389デフォルトの名無しさん:2013/06/21(金) 20:57:46.40
VBAでソートしたいことだってあるよねというだけなんだが、ひどい言われようだな。
390デフォルトの名無しさん:2013/06/21(金) 21:13:23.20
>>386
バイナリファイルを入力にしてグラフ表示やシート出力なら普通にExcel VBAのソート機能で充分だと思うし、
バイナリファイルを入力にしてファイル出力なら態々Excel VBAを使う意味が分からん。

>そこそこ大量の、単なる数値配列などではないデータ形式のデータを、オンメモリで処理すること
>なんかありえないって言いたいのかなぁ。

俺もよくわからなくなってきたんでもうやめるw
391デフォルトの名無しさん:2013/06/21(金) 21:20:52.28
>>388
元々開発環境に用意されているものを態々自作で作るって意味なくね?って話でしょ。
392デフォルトの名無しさん:2013/06/21(金) 21:44:53.81
ソート関数なんて一回書きゃ使い回せるから、俺からすればソートだけしたいのに
なんで態々シートに転記してソートするかねって感じだな。
393デフォルトの名無しさん:2013/06/21(金) 21:53:30.01
型が変わったら書き直しだから馬鹿らしい
394デフォルトの名無しさん:2013/06/21(金) 22:04:40.97
ソートの話はもうお腹一杯
395デフォルトの名無しさん:2013/06/22(土) 00:19:25.04
16進から符号なし10進への変換の良い方法ありませんか?
hex2decだと余分な0が頭についていると駄目だし、
最上位ビットが符号ビットとみなされて8〜fではじまるものは負数になってしまいます。
396デフォルトの名無しさん:2013/06/22(土) 00:38:38.34
シートに転記しないでいいなら、EXCEL使う必要あるのか疑わしいわけですが
397片山博文MZパンク ◆0lBZNi.Q7evd :2013/06/22(土) 00:49:17.98
"&h"を頭に付けてValに渡す。
負数になるときは、もっとサイズの大きい型で2の補数を求める。
398デフォルトの名無しさん:2013/06/22(土) 00:53:52.60
>>395
hが変換前の16進(文字列型)として

d = Val("&H" & h)
399デフォルトの名無しさん:2013/06/22(土) 01:00:41.32
VBAに符号なし32ビット整数ってあったっけ?
400デフォルトの名無しさん:2013/06/22(土) 01:18:18.37
>397-398
できました!
ありがとうございます。
401桃白白 ◆9Jro6YFwm650 :2013/06/22(土) 02:15:48.60
>>395

  ヘ⌒ヽフ
 (  ・ω・) ドキドキ
 ( ∪ ∪
 と__)__)

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
402デフォルトの名無しさん:2013/06/22(土) 06:20:26.78
パイパンオナニー発動!
403デフォルトの名無しさん:2013/06/22(土) 08:14:40.07
こんな短いコードでも糞さ爆発
404デフォルトの名無しさん:2013/06/22(土) 09:32:56.42
ドキドキかわいい
しばらくそうしといてもらおう
405デフォルトの名無しさん:2013/06/22(土) 10:02:52.21
既に終わっている話だし、質問者はコードの回答を望んでいる訳でもないのに何故あえて糞コードを晒すのか?
406デフォルトの名無しさん:2013/06/22(土) 12:39:48.08
耐えきれずに具体的な突っ込みをする奴を待ち、途中切れたりしながら反論・再反論を繰り返すのを
2,30レスほどかまって欲しいんじゃないの?つまり、餌。
なので、具体的にどこがどう駄目なのかは言わない方が良いと思うよ。
407デフォルトの名無しさん:2013/06/22(土) 12:44:26.82
短くても糞って逆に凄い
408桃白白 ◆9Jro6YFwm650 :2013/06/22(土) 12:50:33.73
>>406
見てもらえばわかるんだけれども、ぶたさんの署名が入ってるでしょ。
桃白白の正式なコードだから不備はないよ。
409デフォルトの名無しさん:2013/06/22(土) 13:16:57.04
署名ならシングルクォートくらいしてくださいよ
コンパイル通らないじゃないですか
次からは気をつけてください、まったく
410デフォルトの名無しさん:2013/06/22(土) 13:59:27.11
>>408
俺ルールを押し付けるな。
411デフォルトの名無しさん:2013/06/22(土) 14:02:05.88
早速16進→10進変換システムを使ってみたのですが上手く動きません。
どこがおかしいのでしょうか。

Debug.Print H2D("01AF2158h")
412デフォルトの名無しさん:2013/06/22(土) 14:05:25.73
毎週土曜日曜はVBAの日っておまいら知ってるか?
413デフォルトの名無しさん:2013/06/22(土) 14:12:42.15
>>411は完全に釣りだなw
414桃白白 ◆9Jro6YFwm650 :2013/06/22(土) 14:17:18.19
>>411
hは16進文字列として無効なものだから動かないのが正しい動作であり、
どこもおかしくなく、すべてうまく動いている。桃白白は桃白白の名前で
あると同時に桃白白のコードのブランド名なの。
415デフォルトの名無しさん:2013/06/22(土) 14:18:11.36
>>414
自演乙
416デフォルトの名無しさん:2013/06/22(土) 14:28:32.74
自分はGOTO最強だと思ってるけど
ここに常駐しているような方々は使ってないのですか?
417デフォルトの名無しさん:2013/06/22(土) 14:34:59.91
>>416
この理由は
プロシージャ呼び出しを多用しすぎて少しでも怪しい呼び出し方をすると簡単にErrorを吐いてくるけど 
膨大な数のGOTO命令を設置しても全く止まらない事がわかったのでgotoで書いてます。 
418桃白白 ◆9Jro6YFwm650 :2013/06/22(土) 14:57:12.39
>>417
桃白白はGotoを使わないな。怪しい呼び出しかたってどんな呼び出し方なの?
なんてエラーが出るの?最強の理由がよくわかんない。
419デフォルトの名無しさん:2013/06/22(土) 15:10:17.16
>>418
プロシージャ呼び捨てにして不特定多数の処理へ繋ぎたい場合とか
多用するとすぐエラーを出す
420デフォルトの名無しさん:2013/06/22(土) 15:15:04.17
GOTOは呼び捨てにしようがループしてようがErrorを出さない、構造化プログラミングの場合>>419を回避するために骨の折れるコードを書く必要がある。
421桃白白 ◆9Jro6YFwm650 :2013/06/22(土) 15:15:43.57
>>419
なにいってんのかよくわかんない。コード教えて。
コードが長かったらここにコード書いてそのURLを教えて。
https://friendpaste.com/
422デフォルトの名無しさん:2013/06/22(土) 16:43:33.62
>>419
そのようなコードはスパゲッティコードと呼ばれ
プログラミングの歴史の中で、止めた方がよいとされたスタイル
Gotoがスパゲッティになる理由だとされ、Gotoを使わないでも良いように
プログラムを組めるようにプログラミング言語は進化してきた

大昔の考え方でプログラム組むなら大昔の言語使ってください
423デフォルトの名無しさん:2013/06/22(土) 17:02:02.52
          ,〜〜〜〜〜〜 、
|\     ( 釣れたよ〜・・・)
|  \    `〜〜〜v〜〜〜´
し   \
゙'゙":"''"''':'';;':,':;.:.,.,  ヽ○ノ
          ~~~~~|~~~~~~~ ̄ ̄ ̄ ̄ ̄ ̄ ̄
                 ト>゚++<
              ノ)
424正しく動けば何でもよい:2013/06/22(土) 17:22:36.88
個人で手っ取り早く仕事をかたづけたい場合とか
速く書けて正確に動けばどんなコードでも良いと思う (個人じゃなくても会社でもねw)
スパゲッティーは超速く書けるしjくみかえも速く出来る。
425デフォルトの名無しさん:2013/06/22(土) 17:45:51.30
と思って書き始めたコードが思わぬ肥大化や分業化して
誰も手をつけられなくなるのがスパゲティコードじゃないの?(´・ω・`)
そら特定条件下や小物なら自由に書いたらいいけどもさ
426デフォルトの名無しさん:2013/06/22(土) 17:47:47.47
他人が読む可能性がないなら好きにすればいい
427デフォルトの名無しさん:2013/06/22(土) 17:55:13.61
超早く書いて使って仕事をこなして
ソースを投げ捨てればいい
428デフォルトの名無しさん:2013/06/22(土) 19:38:28.10
excel c#を作らないM$の意図は何なんだろう
429デフォルトの名無しさん:2013/06/22(土) 19:44:52.43
今のVBAはジェンガ状態だからいじれないんだよ。
後方互換シカトして新しくすると一気にExcel自体から客が逃げそうで危ないし無理。

内部的にC#のコードをVBAにコンパイルするという変態コンパイラ作るくらいしかないだろうけど、
変態すぎてやりたがらないんだろ。
430デフォルトの名無しさん:2013/06/22(土) 19:52:12.17
>>428
既に広く普及したVBAがあるからでしょ
君の思うよりもC#って普及していないよ
431デフォルトの名無しさん:2013/06/22(土) 19:58:47.23
>>428
まあ、VBA 使ってる人に C# は、ちょっと荷が重いと思ってるんだろうな。
俺も、それは正しいと思うし。

>>429
後方互換なら単に両方使えるようにすればいいだけ。
現に Excel4 マクロから移行できただろ。

そもそも、VBA にコンパイルとかは意味不明だが。
432桃白白 ◆9Jro6YFwm650 :2013/06/22(土) 20:09:29.67
>>431

                _,. --- 、─-- .,
            ,. -イ          ヽー 、
           /   レ /,.  ,ィ   /    } ヽ
              /   iゞァ' _,.ノ  / , / /i   ヽ
          〈     !、 ',. - 、∠,. ノ. - 、'' /|   /
          ヽ   ! {;;;;;;;;;.},.- 、{;;;;;;;;;;;}' i  /    DimもAsもない2流言語になにができる?
        ,. -'" ヽ /  ,`ー'´〃 ヾヽー'  ト、/
       i    / i  (ゝ.,_,ィr--- く_ァ' )  ! iヽ
      /´  ,. ´ ̄`ヽ/,>    ̄ ̄     / ' ノ
     "   / 、 `ヽ.  l_)________,. '",. '" ヽ
        /  、 \  Y-'  `ー '"   / / /  |
.      ,/ 、__ \ ヽノ \__ ,. - '7   |     |
.     {   フ>-'"\     ,. - '/   |       |
..     \___ノ i 〉  `ー-‐'  /    /     |
433デフォルトの名無しさん:2013/06/22(土) 20:16:18.66
>>432
豚さん書く時はシングルクォートしてって言いましたよね?
コンパイル通らないんです、まったく
434デフォルトの名無しさん:2013/06/22(土) 20:39:53.89
載せるならC#じゃなくてVB.NETだろJK
435デフォルトの名無しさん:2013/06/22(土) 20:44:17.34
>>426
この業界には「明日の自分は他人」、という格言があってだな
436デフォルトの名無しさん:2013/06/22(土) 20:46:15.81
>>430
C#で書く人は少なくてもC#で書かれたソフトを使ってる人は多い
VBAを書く人は多くても、それを他人に使わせるケースは少ない
437デフォルトの名無しさん:2013/06/22(土) 20:56:30.30
>>436
> それを他人に使わせるケースは少ない
なんかさあ、こういう無意味に上から目線なのやめた方いいよ。
438デフォルトの名無しさん:2013/06/22(土) 20:59:23.96
>>436
循環参照してそうな思考回路だな
439デフォルトの名無しさん:2013/06/22(土) 21:33:48.20
>>432
Asを省略するヤツが言うセリフか?
440デフォルトの名無しさん:2013/06/22(土) 21:37:26.04
LINQでシート参照したい
441デフォルトの名無しさん:2013/06/24(月) 01:39:25.84
あなたたちのようにコードを書けるようになるにはどうしたらいいのですか?

本?

けれど書店行っても、そういう本が並んでない・・・
442デフォルトの名無しさん:2013/06/24(月) 01:57:44.96
>>441
必要は発明の母
「コードを書く」じゃなくて「コードを書いて何をする」を考えた方がいいよ
443デフォルトの名無しさん:2013/06/24(月) 05:40:02.27
>>441
簡単な方法はC言語などほかの言語を学ぶこと
VBAだけ勉強しても役にたたないし歪んだ常識が身についてしまう
なせならVBAとC言語などでは使い手のレベルが段違いだから本やネットの情報に大きな格差がある
レベルが高い他の言語使いが書いた良い入門書を通じてプログラミングの正しい常識、作法、考え方を身につける
そうすれば二つめの言語を覚えるのはたやすい
444デフォルトの名無しさん:2013/06/24(月) 05:45:10.99
4
44
4 4
445デフォルトの名無しさん:2013/06/24(月) 06:36:04.92
>>443
VBAレベルでこんな質問をしてくる初心者に
ステップとしてCを勧めるとか、挫折させる気満満だなw

>>441
今の君にVBAがなぜ必要なのか、明確に言えなければ
身につけることは無理と思った方が良いよ。
446デフォルトの名無しさん:2013/06/24(月) 08:54:06.66
>>441
きれいで読みやすいコードを書きたいならこんなところかな。下3つしか俺は持ってないけど。
言語は不問。
・Code Complete
・リーダブルコード
・プログラミング作法
・Cプログラミング診断室
・きれいなコードを書くための鉄則

設計の仕方が分からないということなら、どういう本があるのかよくわからん。
自分が書いたコードと上記の本で言われている内容を踏まえて書き直ししてみて
っていうのを繰り返していけば、自然と書けるようになると思うけど、これが一番っていうのはないな。
447桃白白 ◆9Jro6YFwm650 :2013/06/24(月) 09:43:12.30
>>441
参考になるかわかんないけど、桃白白はワンピースとか封神演義読んでるよ。
448441:2013/06/24(月) 15:03:52.86
コードのきれいさはもとより設計の仕方がわかりません。

以前桃白白氏が競馬好きの人に書いたコードみて感心しました。
パッとコードを設計して出せるレベルに持って行きたいです。
449デフォルトの名無しさん:2013/06/24(月) 15:22:00.44
最近は義務教育で情報処理ってやるみたいだけど、何を教えてんだろうね

>>448
基本は「入力」「処理」「蓄積」「出力」の4段階に分けるところから始める
現場でも基本は同じ
たとえ1行で終わるとしても、プロシージャに分けるクセを付けておいた方がいい
最初は1行で終わると思っていたことが、だんだん欲が出てきてどんどん長くなることも珍しくない

きちんと分けておけばあとで修正したくなった時に応用や再利用がしやすい
450デフォルトの名無しさん:2013/06/24(月) 15:45:31.18
>>448
> 以前桃白白氏が競馬好きの人に書いたコードみて感心しました。

おい、勘弁しろよ。
あれは糞コードだ。見習っちゃいかん。
451デフォルトの名無しさん:2013/06/24(月) 15:46:09.79
つか、全部桃白白の自演じゃないかと思うぞ。
452デフォルトの名無しさん:2013/06/24(月) 16:16:38.35
こういう本とかいいかもよ。俺は読んでないけど。

『プログラマの考え方がおもしろいほど身につく本 問題解決能力を鍛えよう!』
http://www.amazon.co.jp/dp/4048869558
453デフォルトの名無しさん:2013/06/24(月) 16:19:24.41
日経ソフトウェアがいいと思うよ。
454デフォルトの名無しさん:2013/06/24(月) 16:34:49.34
>>441
とりあえず5万円分本買ってきて、週30時間、月120時間を勉強時間に充てろ。
三ヶ月〜半年もすれば芽が出るだろう。
455桃白白 ◆9Jro6YFwm650 :2013/06/24(月) 18:12:47.49
           _, ,_ _, ,_
     パコーン (Д´≡`Д) あおおぉぉぉ―――!
  _, ,_       ((=====))       ← >>450
(*`Д´)     __ ((⌒(⌒ ))@))
  ⊂彡☆(( /\ ̄ ̄し' ̄ ̄ ̄\ ))
  ↑     ̄ ̄ ̄ ̄| | ̄ ̄ ̄ ̄
 桃白白          | |
             / \
456デフォルトの名無しさん:2013/06/24(月) 22:14:31.13
わざわざ糞コード書いてくれるんだから、反面教師として活用すればいいだけ
457デフォルトの名無しさん:2013/06/24(月) 22:47:46.80
>>441
文法覚えたらセンスだよ後は
できるやつは新人から半年で、何年もやってきたやつらよりクールなコードを書けるようになる
458デフォルトの名無しさん:2013/06/24(月) 23:51:17.92
>>448
パッとコードを設計できる人は殆どいないと思う。
パッと書いたコードは、まずきちんと設計されてないと思ったほうがいい。
459441:2013/06/24(月) 23:57:15.88
>>458
手慣れた人でもパッとはいかないものですか。
やはりチャート書いて、ゆっくり進めていくものなのでしょうか
460デフォルトの名無しさん:2013/06/25(火) 00:25:12.25
1 コメントに処理手順をざっくり書き出す
2 手順を元に実装方法をコメントで追記する
3 実装する
461458:2013/06/25(火) 00:45:05.65
>>459
過去に作った経験があるのならパッとできると思うけど、
初めて作るものに関しては、パッと作れないと思う。
パッと頭に浮かんだものを、いろいろ想定されるケースに対応できるのか検討や検証する必要あるし。
勿論、検討や検証の結果最初に頭に浮かんだものが妥当ということもある。

最近はチャート書く人はいないと思う。

因みに>>401でパイパンが書いたコードは>>411で変換できないと指摘されてる。
これは検討漏れの設計ミス。
本人は認めてないようだけどね。
462デフォルトの名無しさん:2013/06/25(火) 01:18:29.13
VBA関係ないし
463デフォルトの名無しさん:2013/06/25(火) 01:35:05.45
>やはりチャート書いて、ゆっくり進めていくものなのでしょうか

こういうの書いてないでプログラム組んだほうがいいよ
とりあえずデータ処理プログラムを組め
自分の持ってる本とかを管理するソフトでいい
自分で題決めて1日8時間1ヶ月やればここらのレベルにはすぐ追いつく
464デフォルトの名無しさん:2013/06/25(火) 02:13:00.32
本当に綺麗なコードを書きたいと思ったら、まず最初に仕様はちゃんと決めておくべき
でないと、仕様に沿った最適なコードは書けるようにならない

個人で使うようなプログラムだと、仕様適当に決めて作り始めて
プログラムの都合のいいように仕様を変えることはよくあるからな

あとは良いソースをいっぱい見る事がセンス磨く一番の方法なんだが
なかなか良いソースってのは見ないし、そもそも初心者には良いか悪いかわからないからなぁ
465デフォルトの名無しさん:2013/06/25(火) 04:39:10.34
桃白白が書くような美しいソースみればおけ
466桃白白 ◆9Jro6YFwm650 :2013/06/25(火) 05:32:28.19
>>461
16進数を10進数に変換するときにhを検討するような人はムチでぶたれるべきだと思う。
467デフォルトの名無しさん:2013/06/25(火) 05:53:23.90
仕様はガッチリ固めないで大雑把のが良いプログラムを書ける
なぜなら仕様書にはコンパイルチェックも実行時テストも含まれないから
ひとつの歪みが全体の亀裂を生み無理に進めると簡単にクラッシュする
コーディングの前に作る詳細な仕様書は本来
一から十まで教えなきゃコードを書けない底辺土方のために作るものなんだ
468デフォルトの名無しさん:2013/06/25(火) 06:19:48.09
>>466
言い訳は見苦しい。
469デフォルトの名無しさん:2013/06/25(火) 06:32:42.50
>>464
いいソースコードは見ただけで「これだったら俺にも書けそう」と思わせるコードかな。
これってできそうでなかなかできるものじゃない。
470デフォルトの名無しさん:2013/06/25(火) 06:36:08.90
>初心者には良いか悪いかわからない

素人には判らないだろうけど
初心者くらいになれば判るだろ
471桃白白 ◆9Jro6YFwm650 :2013/06/25(火) 09:22:47.11
>>468
黙れ雑魚。
472桃白白 ◆9Jro6YFwm650 :2013/06/25(火) 09:24:50.97
461+1 :458 [↓] :2013/06/25(火) 00:45:05.65
因みに>>401でパイパンが書いたコードは>>411で変換できないと指摘されてる。
これは検討漏れの設計ミス。
本人は認めてないようだけどね。

桃白白、今日生理で機嫌悪いからこいつに粘着してやろうかな。
473桃白白 ◆9Jro6YFwm650 :2013/06/25(火) 10:28:52.91
461+1 :458 [↓] :2013/06/25(火) 00:45:05.65
因みに>>401でパイパンが書いたコードは>>411で変換できないと指摘されてる。
これは検討漏れの設計ミス。
本人は認めてないようだけどね。


16進数を10進数に変換するコードなんだから16進数じゃないものを変換できないのはあたりまえだろw
設計したことあんのかよ?あ?
474桃白白 ◆9Jro6YFwm650 :2013/06/25(火) 10:40:34.30
461+1 :458 [↓] :2013/06/25(火) 00:45:05.65
因みに>>401でパイパンが書いたコードは>>411で変換できないと指摘されてる。
これは検討漏れの設計ミス。
本人は認めてないようだけどね。


入力に不備があってそれを入力元に通知せずもみ消すのが妥当な設計ってどんな設計?
入力元に通知しても入力者はそれを理解できないだろうってとき?それがやさしさなの?
知らないふりをするのが処理を依頼された側の義務だと思量されるとき?それがオザワデザインだとでもいうわけ?
475桃白白 ◆9Jro6YFwm650 :2013/06/25(火) 10:45:20.93
      ,..--‐‐‐‐‐‐‐‐---..
     /::::ヽ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;)
    |::::::::::/        ヽヽ
    |::::::::::ヽ ........    ..... |:|
    |::::::::/     )  (.  .||
    i⌒ヽ;;|   -=・=‐  .‐=・-.|
    |.(.    'ー-‐'  ヽ. ー' |
    ヽ.      /(_,、_,)ヽ  |
     |.    / ___    .| < あどうも
    ∧ヽ    ノエェェエ>   |
  /\\ヽ    ー--‐   /
  /  \ \ヽ.  ─── /|\
  r―n|l \  ` ー‐ ' .// ,/ ヽ
476桃白白 ◆9Jro6YFwm650 :2013/06/25(火) 10:52:37.42
458+1 :デフォルトの名無しさん [↓] :2013/06/24(月) 23:51:17.92
>>448
パッとコードを設計できる人は殆どいないと思う。
パッと書いたコードは、まずきちんと設計されてないと思ったほうがいい。


16進数の変換でhを検討するようなバカがわかったようなことをいってんじゃねえよ
477桃白白 ◆9Jro6YFwm650 :2013/06/25(火) 10:54:41.82
と小沢さんがいってました
              ..--‐‐‐‐‐‐‐‐---..,
              (;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::\
   r‐-、   ,...,,      //        ヽ::::::::::|
   :i!  i!  |: : i!   // .....    ........ /::::::::::::|
    !  i!.  |  ;|   ||   、  ,    \::::::::|
     i! ヽ |  |   |.-=・‐.  ‐=・=-  |;;/⌒i
    ゝ  `-!  :|   |'ー .ノ  'ー-‐'    ,) |
   r'"~`ヾ、   i!  .|  ノ(、_,、_)\      ノ
  ,.ゝ、  r'""`ヽ、i!  .|.        \    |_
  !、  `ヽ、ー、   ヽ |  ー'ニニニ=‐ヽ    /|:\_
   | \ i:" )     | ヽ ( ,' /´    //:::::::::::::
   ヽ `'"     ノ   /\`ー´_  / /:::::::::::::::
478デフォルトの名無しさん:2013/06/25(火) 11:30:17.56
そんなに暴れなくても、末尾h、Hにちょこっと対応したコードにすればいいだけじゃん。
479桃白白 ◆9Jro6YFwm650 :2013/06/25(火) 11:49:25.88
461+1 :458 [↓] :2013/06/25(火) 00:45:05.65
因みに>>401でパイパンが書いたコードは>>411で変換できないと指摘されてる。
これは検討漏れの設計ミス。
本人は認めてないようだけどね。


              ノ´⌒`ヽ
           γ⌒´      \
          /""´ヽー⌒\  `ヽ
         / ノ    (◎ )ノ ̄ ̄`ヽ、―ニ
        / (。 ) __)⌒/ ´`ヽ _  三,:三ー三,:
        | ::⌒(__ノ/  ノヽ--/ ̄ ,    `   ` ̄ ̄ ̄
       。ヽ 。   )(  }.  ...|  /!           オザワパンチ
          ヽo (__ン  }、ー‐し'ゝL _
         人  ー   jr--‐‐'´}    ;ーー------
        /        ヾ---‐'ーr‐'"==
480桃白白 ◆9Jro6YFwm650 :2013/06/25(火) 11:52:26.87
>>478
それが理にかなってないから桃白白は腹の虫が収まらねんだよ。
入力側で対処するべき問題だろうが。そんなこともわからないようなバカが設計などと口にするなということだよわかったかバーカ。
481桃白白 ◆9Jro6YFwm650 :2013/06/25(火) 11:56:10.06
478+1 :デフォルトの名無しさん [↓] :2013/06/25(火) 11:30:17.56
そんなに暴れなくても、末尾h、Hにちょこっと対応したコードにすればいいだけじゃん。


バカすぎるwww 末尾のhはどっから来たんだよ。16進数の末尾にはhをつける必要があるとでも
思ってんのか?あ?ロバに噛まれて死ねよ。
482桃白白 ◆9Jro6YFwm650 :2013/06/25(火) 11:58:14.28
   ∧__∧ ウマー
  彡 ━ ━
 彡  ● ●
 彡 (   |
 彡 丶  |、
 /  ( o o) \
`/ __  ̄/ > )
(__L(  /<丶/
|    /  ̄
| /\ \
| /  ) )
`ヒ/  ( \
    \二)
483デフォルトの名無しさん:2013/06/25(火) 12:30:04.23
いい加減にしろよ
484デフォルトの名無しさん:2013/06/25(火) 12:45:14.48
こいつにちょっとでも触るとすぐこれだ。
これからは、完全スルー推奨だな。
485デフォルトの名無しさん:2013/06/25(火) 12:48:38.25
おっさんが生理とか本当に気持ち悪い
486桃白白 ◆9Jro6YFwm650 :2013/06/25(火) 16:11:47.56
>>484
桃白白相手だからといってこんなふざけた言動は許されないよな。

461+1 :458 [↓] :2013/06/25(火) 00:45:05.65
因みに>>401でパイパンが書いたコードは>>411で変換できないと指摘されてる。
これは検討漏れの設計ミス。
本人は認めてないようだけどね。
487桃白白 ◆9Jro6YFwm650 :2013/06/25(火) 16:13:57.90
あーひさびさに長い距離歩いたら股関節に来たわ。
旦那が帰って来たら揉んでもらおう股間を、あとおっぱい。
488桃白白 ◆9Jro6YFwm650 :2013/06/25(火) 16:15:09.46
461+1 :458 [↓] :2013/06/25(火) 00:45:05.65
因みに>>401でパイパンが書いたコードは>>411で変換できないと指摘されてる。
これは検討漏れの設計ミス。
本人は認めてないようだけどね。


16進数を10進数に変換するコードなんだから16進数じゃないものを変換できないのはあたりまえだろw
設計したことあんのかよ?あ?
489桃白白 ◆9Jro6YFwm650 :2013/06/25(火) 16:15:44.28
478+1 :デフォルトの名無しさん [↓] :2013/06/25(火) 11:30:17.56
そんなに暴れなくても、末尾h、Hにちょこっと対応したコードにすればいいだけじゃん。


バカすぎるwww 末尾のhはどっから来たんだよ。16進数の末尾にはhをつける必要があるとでも
思ってんのか?あ?ロバに噛まれて死ねよ。
490桃白白 ◆9Jro6YFwm650 :2013/06/25(火) 16:50:28.03
>>485
これ桃白白。手に持ってるのはおしっこ。検尿なの。
http://garakuta.chips.jp/blog/ga/yonekura.jpg
491デフォルトの名無しさん:2013/06/25(火) 16:59:08.60
NGname決定
492デフォルトの名無しさん:2013/06/25(火) 17:00:02.04
>>491
478+1 :デフォルトの名無しさん [↓] :2013/06/25(火) 11:30:17.56
そんなに暴れなくても、末尾h、Hにちょこっと対応したコードにすればいいだけじゃん。


バカすぎるwww 末尾のhはどっから来たんだよ。16進数の末尾にはhをつける必要があるとでも
思ってんのか?あ?ロバに噛まれて死ねよ。
493デフォルトの名無しさん:2013/06/25(火) 17:03:56.72
494デフォルトの名無しさん:2013/06/25(火) 17:07:29.74
なんだ、名無しでも暴れてたのか。
最低だな。
495デフォルトの名無しさん:2013/06/25(火) 17:07:47.74
461+1 :458 [↓] :2013/06/25(火) 00:45:05.65
因みに>>401でパイパンが書いたコードは>>411で変換できないと指摘されてる。
これは検討漏れの設計ミス。
本人は認めてないようだけどね。


              ノ´⌒`ヽ
           γ⌒´      \
          /""´ヽー⌒\  `ヽ
         / ノ    (◎ )ノ ̄ ̄`ヽ、―ニ
        / (。 ) __)⌒/ ´`ヽ _  三,:三ー三,:
        | ::⌒(__ノ/  ノヽ--/ ̄ ,    `   ` ̄ ̄ ̄
       。ヽ 。   )(  }.  ...|  /!           オザワパンチ
          ヽo (__ン  }、ー‐し'ゝL _
         人  ー   jr--‐‐'´}    ;ーー------
        /        ヾ---‐'ーr‐'"==
496デフォルトの名無しさん:2013/06/25(火) 17:11:36.38
0xDEADBEEF
497デフォルトの名無しさん:2013/06/25(火) 17:17:15.53
>>496
461+1 :458 [↓] :2013/06/25(火) 00:45:05.65
因みに>>401でパイパンが書いたコードは>>411で変換できないと指摘されてる。
これは検討漏れの設計ミス。
本人は認めてないようだけどね。

         ∧_∧
        _( ´_ゝ`)
      /      )           _  _
     / ,イ 、  ノ/    ∧ ∧―= ̄ `ヽ, _
    / / |   ( 〈 ∵. ・(   〈__ >  ゛ 、_―
   | !  ヽ  ー=- ̄ ̄=_、  (/ , ´ノ
   | |   `iー__=―_ ;, / / /
    !、リ  -=_二__ ̄_=;, / / ,'
        /  /       /  /|  |
       /  /       !、_/ /   〉
     / _/             |_/
     ヽ、_ヽ
498デフォルトの名無しさん:2013/06/25(火) 17:23:39.41
対応しているフォーマットは"^[0-9a-fA-F]+$"だけって言えば終了なのに、何を暴れているのやら。
499デフォルトの名無しさん:2013/06/25(火) 17:24:28.37
              ..--‐‐‐‐‐‐‐‐---..,
              (;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::\
   r‐-、   ,...,,      //        ヽ::::::::::|
   :i!  i!  |: : i!   // .....    ........ /::::::::::::|
    !  i!.  |  ;|   ||   、  ,    \::::::::|
     i! ヽ |  |   |.-=・‐.  ‐=・=-  |;;/⌒i
    ゝ  `-!  :|   |'ー .ノ  'ー-‐'    ,) |
   r'"~`ヾ、   i!  .|  ノ(、_,、_)\      ノ
  ,.ゝ、  r'""`ヽ、i!  .|.        \    |_
  !、  `ヽ、ー、   ヽ |  ー'ニニニ=‐ヽ    /|:\_
   | \ i:" )     | ヽ ( ,' /´    //:::::::::::::
   ヽ `'"     ノ   /\`ー´_  / /:::::::::::::::
500デフォルトの名無しさん:2013/06/25(火) 17:31:28.73
>>498
それで何が終了するんだ?
末尾のhに対応してないから設計ミスだっていってんだから
それで終了なら設計ミスで終了ということになるだろバーカ。
だから桃白白は堪忍袋の緒がぶちぎれてるわけ。
501デフォルトの名無しさん:2013/06/25(火) 17:36:10.40
「それは設計ミスではなく仕様」で終了。
502デフォルトの名無しさん:2013/06/25(火) 17:36:56.28
>>500
> だから桃白白は堪忍袋の緒がぶちぎれてるわけ。

だからといって、荒らして良い訳ではないことくらいわかろうな。
503デフォルトの名無しさん:2013/06/25(火) 17:37:40.11
>>501
461+1 :458 [↓] :2013/06/25(火) 00:45:05.65
因みに>>401でパイパンが書いたコードは>>411で変換できないと指摘されてる。
これは検討漏れの設計ミス。
本人は認めてないようだけどね。


そう思うんならこいつに言ってやれよ。
それで>>461が納得して桃白白にいいがかりをつけたことを謝罪するのなら
引き下がってやってもいい。
504デフォルトの名無しさん:2013/06/25(火) 17:40:33.83
>>502
荒らしてんのは>>461だろ。ふざけた言いがかりつけてきやがって、いい流れで来てたスレがこのバカのせいで台無しだ。
かわいそー。桃白白超かわいそー。
505デフォルトの名無しさん:2013/06/25(火) 17:42:44.94
>>503
> そう思うんならこいつに言ってやれよ。

いやいや、>>461が納得しようがしまいが、お前がそう宣言してこの話題を終了させればいいだけ。
つか、トリップ付けて発言しろ。
506デフォルトの名無しさん:2013/06/25(火) 17:45:03.97
>>505
は? 言いがかりつけて来た>>461が発言の撤回と謝罪を行わないかぎり
桃白白は引き下がらない。お前がトリップつけろや。誰だよお前。
507デフォルトの名無しさん:2013/06/25(火) 17:47:02.59
>>504
元をただせば、自分が書いたコードが発端になってるわけで、
自分が蒔いた種は自分で刈り取れってことだ。
508デフォルトの名無しさん:2013/06/25(火) 17:49:43.38
>>506
NGしてる人用に、トリップ付けろってことだ。
お前、暴れてるという自覚無いのか?
509デフォルトの名無しさん:2013/06/25(火) 17:52:13.17
荒れすぎだろw
タオパイまさか本当に生理か?w
おれも>>461はどうかと思う
こんな数十文字で仕様を詰めらんないからタオパイ仕様になっちまうのは仕方ない

だからこの辺で手打ちにしようぜ、な
510桃白白 ◆9Jro6YFwm650 :2013/06/25(火) 17:58:36.94
>>508
桃白白はお前を暴れていると認識しているが、お前はトリップを付けようとしないから、
お前は暴れているという自覚がないんだろう。さっさとトリップ付けろ。即刻NGにしてやる。
お前はそういうやりかたが正しいと思ってるんだろ。さっさとやれ。
511デフォルトの名無しさん:2013/06/25(火) 18:15:58.72
かまって欲しいだけでしょ。
ほっとこうぜ。
512デフォルトの名無しさん:2013/06/25(火) 18:20:18.64
一生トリップ付けとけ
あと、ageんな
513デフォルトの名無しさん:2013/06/25(火) 18:22:38.93
>>508
おいおい、他人に要求しといて自分はしらばっくれてダンマリか?
トリップ付けてくれてありがとうございます。寝たきりの母も
私の手を握り締めながら桃白白さんありがとうと私につぶやきました。
桃白白さんのおかげで母の笑顔を見ることができ、感謝の念にたえません。
私たち母子は桃白白さんにご努力いただいたことを決して忘れません。
本当にありがとうございます。これくらい言えないわけ?じゃあやめた。

>>507
桃白白がぶちぎれてんのは>>461の発言に対してだ。
そこを無視して桃白白が〜はただの責任転嫁。>>461の発言したやつ呼んでこい。
お前は>>461じゃないんだったら黙ってろや。
514デフォルトの名無しさん:2013/06/25(火) 18:27:49.88
一生ゴミコード書いてオナニーしてろ
515デフォルトの名無しさん:2013/06/25(火) 18:28:33.60
駄目だこりゃ
516デフォルトの名無しさん:2013/06/25(火) 18:29:51.02
>>509
16進数を変換するってときにhを入れるのはバカだろ。バカの行いだろ。
聖書に書かれていてもおかしくないほどの愚行だろ。仕方ないというレベルじゃないだろ。
前世どころか現世もアルマジロなんじゃないかと疑うレベルだろ。来世ではアリクイになれると
いいですねと励ましの言葉で送り出してあげたくなっちゃうレベルだろ。完全にアリクイびとだろ。
517デフォルトの名無しさん:2013/06/25(火) 18:34:32.17
>>516
> 16進数を変換するってときにhを入れるのはバカだろ。バカの行いだろ。

仕様による。
1000h
0x1000
&h1000
これらは全て普通に使われる16進数表現。
これらを受け入れるのか受け入れないのかは仕様次第。
お前のコードでは、全てはじく仕様だと言えばいいだけだ。
518デフォルトの名無しさん:2013/06/25(火) 18:38:43.93
>>517
それは何の仕様だ?VBAの仕様か?あ?違う言語の仕様持ち出してきてどうすんだバカが。
そういうのを詭弁というんだ。>>461がアルマジロの脳みそしかありませんでしたで説明付くだろうが。
言い訳ばかり考えやがって真摯に謝罪できないもんかね!!
519デフォルトの名無しさん:2013/06/25(火) 18:41:48.25
>>517
逆に聞きたいけど、なんで>>461は桃白白のコードを見て1000hを受け入れる仕様だと思ったんだ?あ?説明しろ。
520デフォルトの名無しさん:2013/06/25(火) 18:48:22.25
末尾hくんはどこの世界で生きてるんだろうなあ
521デフォルトの名無しさん:2013/06/25(火) 18:48:40.55
>>519
質問者のやりたいことが仕様。
522デフォルトの名無しさん:2013/06/25(火) 18:49:19.36
十六進法 - 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なんてありまへん。
523デフォルトの名無しさん:2013/06/25(火) 19:00:42.18
>>521
答えになってない。聞いてることとかみ合わない紋切り型のことしか言えない木偶の坊。ワニにでも噛まれてろ。
     /ニYニヽ
    /( ゚ )( ゚ )ヽ
   /::::⌒`´⌒::::\   かぷwwwwwwwwwwwwwww
  | ,-)___(-、|
  | l   |-┬-|  l |
   \   `ー'´   /
524PLC屋:2013/06/25(火) 19:04:22.13
普通に□hや□Hを使う。
経緯は知らんがメーカの取説などでもそう表記してある。

マ寄りの俺が0x□って仕様書くと「何これ?」って聞かれる。
525デフォルトの名無しさん:2013/06/25(火) 19:04:46.89
>>524
     /ニYニヽ
    /( ゚ )( ゚ )ヽ
   /::::⌒`´⌒::::\   でっていうwwwwwwwwwwwwwww
  | ,-)___(-、|
  | l   |-┬-|  l |
   \   `ー'´   /
526デフォルトの名無しさん:2013/06/25(火) 19:32:16.91
461+1 :458 [↓] :2013/06/25(火) 00:45:05.65
因みに>>401でパイパンが書いたコードは>>411で変換できないと指摘されてる。
これは検討漏れの設計ミス。
本人は認めてないようだけどね。


              ノ´⌒`ヽ
           γ⌒´      \
          /""´ヽー⌒\  `ヽ
         / ノ    (◎ )ノ ̄ ̄`ヽ、―ニ
        / (。 ) __)⌒/ ´`ヽ _  三,:三ー三,:
        | ::⌒(__ノ/  ノヽ--/ ̄ ,    `   ` ̄ ̄ ̄
       。ヽ 。   )(  }.  ...|  /!           オザワパンチ
          ヽo (__ン  }、ー‐し'ゝL _
         人  ー   jr--‐‐'´}    ;ーー------
        /        ヾ---‐'ーr‐'"==
527デフォルトの名無しさん:2013/06/25(火) 19:36:13.92
俺がお股揉んでやるからそろそろ落ち着け
528デフォルトの名無しさん:2013/06/25(火) 19:40:39.27
コテ・トリ付けたら外すなや。
自分の発言に責任持てないなら一生外しとけ。
529デフォルトの名無しさん:2013/06/25(火) 19:49:10.82
>522 :デフォルトの名無しさん:2013/06/25(火) 18:49:19.36
>十六進法 - 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 の文字参照における表記。例: &#x1000;)
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
530デフォルトの名無しさん:2013/06/25(火) 19:52:07.32
>>529
それは>>517, >>518でもうやった。頭の回転が鈍いウスノロの出番はない。
531デフォルトの名無しさん:2013/06/25(火) 19:54:34.76
>>530
>>529>>522へのレス
頭の回転が鈍いウスノロの出番はない。
532デフォルトの名無しさん:2013/06/25(火) 19:55:55.80
>>531
だから答えたんだろ。>>522を誰だと思ってるんだ?マジでウスノロだなお前。にぶちんと名づけてやろう。
こんどから名前欄ににぶちん#にぶちんと入力しろ。
533デフォルトの名無しさん:2013/06/25(火) 20:03:04.90
プログラム言語ではとくべつなリテラルで16進数を表すことが多いからといって
16進数の文字にそのリテラルが含まれることになるわけじゃない。
それらしいこと言った気になってるだけで中身はぐっだぐだ。ガチでガキなんじゃねえかと思うわ。ガチガキ。
最近、1、2匹バカな奴がいるとは思ってたんだよな。
>>326こいつとか、>>330こいつとか。
534デフォルトの名無しさん:2013/06/25(火) 20:30:54.32
461+1 :458 [↓] :2013/06/25(火) 00:45:05.65
因みに>>401でパイパンが書いたコードは>>411で変換できないと指摘されてる。
これは検討漏れの設計ミス。
本人は認めてないようだけどね。

         ∧_∧
        _( ´_ゝ`)
      /      )           _  _
     / ,イ 、  ノ/    ∧ ∧―= ̄ `ヽ, _
    / / |   ( 〈 ∵. ・(   〈__ >  ゛ 、_―
   | !  ヽ  ー=- ̄ ̄=_、  (/ , ´ノ
   | |   `iー__=―_ ;, / / /
    !、リ  -=_二__ ̄_=;, / / ,'
        /  /       /  /|  |
       /  /       !、_/ /   〉
     / _/             |_/
     ヽ、_ヽ
535デフォルトの名無しさん:2013/06/25(火) 20:32:45.10
478+1 :デフォルトの名無しさん [↓] :2013/06/25(火) 11:30:17.56
そんなに暴れなくても、末尾h、Hにちょこっと対応したコードにすればいいだけじゃん。


バカすぎるwww 末尾のhはどっから来たんだよ。16進数の末尾にはhをつける必要があるとでも
思ってんのか?あ?ロバに噛まれて死ねよ。
536デフォルトの名無しさん:2013/06/25(火) 20:41:56.61
ちょっともう異常だと感じるレベル
537桃白白 ◆9Jro6YFwm650 :2013/06/25(火) 20:51:53.18
>>536
年に一度、かぼちゃを頭にかぶる日があるでしょ。
桃白白はそっちの方が異常だと思う。でもパンプキンヘッドの日だからといえば
みんな納得しちゃう。だから今日はオザワさんの日だと言えばみんな納得すると
思うんだよね。
538デフォルトの名無しさん:2013/06/25(火) 21:03:13.41
>>537
いいな、あと3時間だからな
539桃白白 ◆9Jro6YFwm650 :2013/06/25(火) 21:09:15.10
>>538
だいじょぶ、わかってる。オザワさんの日で全部チャラだねおk。
540デフォルトの名無しさん:2013/06/25(火) 21:29:10.17
もうたおぱいをしんじない
541デフォルトの名無しさん:2013/06/25(火) 21:34:34.55
おれもたれぱいをしんじない
542デフォルトの名無しさん:2013/06/25(火) 21:37:26.55
ちょっと煽られただけで
こんな大暴れをする人だったのか…見損なった
スレの私物化も甚だしい
運営に相談して出入り禁止とかにできないの?
由緒あるVBA質問スレがこんなんじゃ利用者が可哀想だよ
543デフォルトの名無しさん:2013/06/25(火) 21:55:16.63
>運営に相談して出入り禁止とかにできないの?
これくらいじゃ無理。板全部で暴れまわるなら別だけどw
544デフォルトの名無しさん:2013/06/25(火) 21:55:36.67
質問者の為ではなく自分の為に糞コード書き続ける使えない人って印象だったし、こんなもんでしょ
545デフォルトの名無しさん:2013/06/25(火) 22:19:40.82
>>542
完全スルー、完全無視位しかないと思うけど、質問者がスルー、無視するとは思えないし・・・

ルール化も検討する段階に来てると思う。
個人を無視するとかNGワードにするというものじゃなくてどんなに短くてもコードでの回答は不可とかね。
546デフォルトの名無しさん:2013/06/25(火) 22:39:51.69
>>461をはじめ、今回ばかりはみんな桃白白に悪いことしたよね。
じゃあさ、みんなで桃白白にごめんなさいしようか。
547デフォルトの名無しさん:2013/06/25(火) 22:44:23.46
トリップはずすんじゃねぇ、馬鹿が
548デフォルトの名無しさん:2013/06/25(火) 22:47:55.37
>>545
名案があるんだけど、hは16進数じゃありませんってテンプレに入れたらいいと思うの。
そしたらみんなハッピーじゃない?
549デフォルトの名無しさん:2013/06/25(火) 22:54:28.33
>>545
コテハン禁止でおねがいします
550デフォルトの名無しさん:2013/06/25(火) 22:55:55.80
2ch的にいうと桃白白が正しい。残念ながら。
まずコード書いたのが桃白白だけ。その他大勢は桃白白叩きをやった。
次に1回コテハンが暴れたぐらいでスルーできない煽り耐性のないその他大勢も悪い。

要は桃白白を叩くだけ叩いて、暴れたらすぐ動揺して「どうしたらいいか」って蜂の巣叩いたように大騒ぎするってのは
2chむきじゃないんじゃないか
551545:2013/06/25(火) 23:04:29.15
>>549
コテハン禁止にしたところで、今でも名無しにして暴れてるから効果は無いと思う。
第2、第3のパイパンが湧いてこないような対応をしないと、イタチごっこになるかなぁと。
552デフォルトの名無しさん:2013/06/25(火) 23:05:44.55
>>550
またか、、、
どうしてそこまでコードにこだわるかなぁ
内容によるがコードを提示してしまったらその意図は伝わらないぞ?
それにここはクレクレスレじゃないしな

あとオレは家にExcel無いってのもある
553デフォルトの名無しさん:2013/06/25(火) 23:09:39.28
すべてMSのhex2decがへぼすぎるのが悪い
554デフォルトの名無しさん:2013/06/25(火) 23:10:41.50
>>552
2chには「スルーする」って技能も大事でしょ。

桃白白1人がコード表示したって、放置すればいいじゃない。
それをこのスレの住人は猛烈に叩いた。
その時点で、桃白白が完全に悪いっておかしくなるってことですよ。
555デフォルトの名無しさん:2013/06/25(火) 23:14:23.94
突っ込み待ちなのか本気で頭おかしいのかわかんねえなこれ
556デフォルトの名無しさん:2013/06/25(火) 23:16:11.13
16進の表記方法なんてメジャーなのはこれぐらいしかないだろ
&h1234
0x1234
1234h
&1234
全部対応しとけばいいじゃん
557デフォルトの名無しさん:2013/06/25(火) 23:16:53.70
パイパンを擁護するレスは完全無視、スルーでいいと思う。
558デフォルトの名無しさん:2013/06/25(火) 23:17:03.00
いいよ必死でググった結果発表しなくても
559デフォルトの名無しさん:2013/06/25(火) 23:18:36.52
まだ全然叩いたうちに入らないよ。
あのコードが糞なのは1000hでエラーになるからじゃないよ。
ただ、具体的に指摘するとまた前回みたいに荒れ狂うからやらないだけ。
560デフォルトの名無しさん:2013/06/25(火) 23:19:34.50
自分で暴れておいて、スルーしろと居直るような人と
わかり合うことなど不可能
桃白白抜きのスレを作ってみんなで移動しよう
スレタイおよびテンプレに桃白白出入り禁止って明記してさ
そのスレにも来て好き勝手やるなら、完璧に故意犯なので運営に相談
561デフォルトの名無しさん:2013/06/25(火) 23:19:54.60
>>559
具体的に指摘しなくても荒れ狂ったけどなw
562デフォルトの名無しさん:2013/06/25(火) 23:20:49.64
僕はわかってますアピールもいらないから。
重症だな。
563デフォルトの名無しさん:2013/06/25(火) 23:21:01.99
>>556
そうなんだけどさ、使えない奴ってのはそうは考えないんだよ
564デフォルトの名無しさん:2013/06/25(火) 23:30:30.36
>そのスレにも来て好き勝手やるなら、完璧に故意犯なので運営に相談
相談したって無理。
馬鹿じゃねぇかって放置されるよ。

桃白白を放置する耐性をあなたたちが身につけない限り無理だって。
565デフォルトの名無しさん:2013/06/25(火) 23:36:30.29
今回は前回より放置ぎみだぞ。
ただ奴が前回の何倍も発狂しただけ。
566デフォルトの名無しさん:2013/06/25(火) 23:58:15.47
おら、新しい日付だからこの話はやめろい
567デフォルトの名無しさん:2013/06/26(水) 02:58:58.47
最後に言っておくよ
この糞眠い中 100%表示でBK列まで見えるマルチディスプレイで本当によかった! 
睡魔と戦いながら広い範囲をスクロールさせてたら瞬時にセル番地を忘れてしまう。w
568デフォルトの名無しさん:2013/06/26(水) 03:41:10.93
Cells(r, "BK")
569デフォルトの名無しさん:2013/06/26(水) 05:41:23.37
BaKa
570デフォルトの名無しさん:2013/06/26(水) 09:02:59.53
>>557
そーやって差別するわけですか、サイテーですね。
571デフォルトの名無しさん:2013/06/26(水) 09:03:43.74
>>563
何がそうなんだ。使えないのはてめえだバーカ。
572デフォルトの名無しさん:2013/06/26(水) 09:04:23.91
>>556
どれも16進数じゃねえな。なんで言語表現を16進数に持ち込むんだ?バカじゃね?
573デフォルトの名無しさん:2013/06/26(水) 09:10:13.12
お前ら桃白白におんぶにだっこされてるぶんざいで生意気だよな。
574デフォルトの名無しさん:2013/06/26(水) 09:43:07.69
>>572
ん?16進数自体が言語表現だぞ?
16進数を求める関数に0xとか与えるなってことなら同意
それは質問者が対応すべきだね
575デフォルトの名無しさん:2013/06/26(水) 09:45:54.17
>>574
はああああ?????
16進数は16進数ですが?
0123456789ABCDEFで表される数ですが。
普段から詭弁ばかり使ってて正論がわからなくなったかぼちゃ頭なのかお前は?
お母さんに中身くりぬかれたのか?ご飯でも詰めてもらえよ。はい論破。
576デフォルトの名無しさん:2013/06/26(水) 09:48:17.86
>>574
かまっちゃダメ。完全無視。
577デフォルトの名無しさん:2013/06/26(水) 09:51:48.15
16進数
http://www.infonet.co.jp/ueyama/ip/glossary/hexadecimal.html

16進数は言語とは関係ありません。
578デフォルトの名無しさん:2013/06/26(水) 09:53:24.10
      /!/{  / ヾ--r
   _  /     ̄    <_
 _>`´    >>576___<_
  >    r‐'" ̄ ̄ ノ ̄ ̄`ヽ、―ニ 二
/ ,    |  `ヽ/ ´`ヽ _  三,:三ー二
 ̄/    |   ノヽ--/ ̄ ,    ` ̄ ̄ ̄
 / /⌒ヽ,|  ミ }  ...|  /!         差別する奴って最低だよな
 レ l d     _}`ー‐し'ゝL _
  | ヽ、_,   _,:ヘr--‐‐'´}    ;ー------
  |/|  \   ノ`ヾ:::-‐'ーr‐'"==-
    ヽ/l/|` ー------r‐'"    ̄ ̄
      |└-- 、__/`\-:、
     __,ゝ,,_____/ \_」 \
579デフォルトの名無しさん:2013/06/26(水) 09:55:13.64
461+1 :458 [↓] :2013/06/25(火) 00:45:05.65
因みに>>401でパイパンが書いたコードは>>411で変換できないと指摘されてる。
これは検討漏れの設計ミス。
本人は認めてないようだけどね。


              ノ´⌒`ヽ
           γ⌒´      \
          /""´ヽー⌒\  `ヽ
         / ノ    (◎ )ノ ̄ ̄`ヽ、―ニ
        / (。 ) __)⌒/ ´`ヽ _  三,:三ー三,:
        | ::⌒(__ノ/  ノヽ--/ ̄ ,    `   ` ̄ ̄ ̄
       。ヽ 。   )(  }.  ...|  /!           オザワパンチ
          ヽo (__ン  }、ー‐し'ゝL _
         人  ー   jr--‐‐'´}    ;ーー------
        /        ヾ---‐'ーr‐'"==
580デフォルトの名無しさん:2013/06/26(水) 10:02:05.61
461+1 :458 [↓] :2013/06/25(火) 00:45:05.65
因みに>>401でパイパンが書いたコードは>>411で変換できないと指摘されてる。
これは検討漏れの設計ミス。
本人は認めてないようだけどね。

         ∧_∧
        _( ´_ゝ`)
      /      )           _  _
     / ,イ 、  ノ/    ∧ ∧―= ̄ `ヽ, _
    / / |   ( 〈 ∵. ・(   〈__ >  ゛ 、_―
   | !  ヽ  ー=- ̄ ̄=_、  (/ , ´ノ
   | |   `iー__=―_ ;, / / /
    !、リ  -=_二__ ̄_=;, / / ,'
        /  /       /  /|  |
       /  /       !、_/ /   〉
     / _/             |_/
     ヽ、_ヽ
581デフォルトの名無しさん:2013/06/26(水) 11:12:31.45
質問失礼します。
環境:Windows XP, Excel 2007

A1にhogefugaとあり、B1にaiueoとあります。
C1にA1とB1の両方に含まれる文字列(oeua)を入れたいです。
10000行まで同じように処理したいです。どうすればいいですか?
582デフォルトの名無しさん:2013/06/26(水) 11:28:02.88
478+1 :デフォルトの名無しさん [↓] :2013/06/25(火) 11:30:17.56
そんなに暴れなくても、末尾h、Hにちょこっと対応したコードにすればいいだけじゃん。


バカすぎるwww 末尾のhはどっから来たんだよ。16進数の末尾にはhをつける必要があるとでも
思ってんのか?あ?ロバに噛まれて死ねよ。
583デフォルトの名無しさん:2013/06/26(水) 11:43:14.52
>>581
function CommonChars(r1 as range, r2 as range) as string
 ' r1.valueとr2.valueの共通部分を抜き出す
end function
という関数を作り、C1に「=CommonChars(A1,B1)」と入力し、それを10000行までコピーする。
584デフォルトの名無しさん:2013/06/26(水) 12:01:48.53
>>583
その関数の中身がわからないから質問しています。コピーするのではなくてVBAでやりたいです。
それも質問から読み取ってもらいたかったです。結局あなた何ら意味のあることをいってませんよね。
質問の主旨も理解せずにずれたことをドヤ顔で返信されても困ります。
あなたがこのスレを荒らしている桃白白という人ですか?もし違っていたら謝りますが、本人であれば
正直迷惑なので、もうしわけないですけど私の質問に答えないでください。
585デフォルトの名無しさん:2013/06/26(水) 12:10:38.52
Function 両含(s1 As String, s2 As String) As String
  Dim 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
586デフォルトの名無しさん:2013/06/26(水) 12:17:31.58
461+1 :458 [↓] :2013/06/25(火) 00:45:05.65
因みに>>401でパイパンが書いたコードは>>411で変換できないと指摘されてる。
これは検討漏れの設計ミス。
本人は認めてないようだけどね。


              ノ´⌒`ヽ
           γ⌒´      \
          /""´ヽー⌒\  `ヽ
         / ノ    (◎ )ノ ̄ ̄`ヽ、―ニ
        / (。 ) __)⌒/ ´`ヽ _  三,:三ー三,:
        | ::⌒(__ノ/  ノヽ--/ ̄ ,    `   ` ̄ ̄ ̄
       。ヽ 。   )(  }.  ...|  /!           オザワパンチ
          ヽo (__ン  }、ー‐し'ゝL _
         人  ー   jr--‐‐'´}    ;ーー------
        /        ヾ---‐'ーr‐'"==
587デフォルトの名無しさん:2013/06/26(水) 12:25:18.80
ぼくがんばったよ

Function 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
588デフォルトの名無しさん:2013/06/26(水) 12:42:15.07
>>577
周回遅れすぎ (w

16進数『表現』からの変換の話な。
589デフォルトの名無しさん:2013/06/26(水) 12:44:06.76
>>587
もうちょい頑張って、EBCDIK にも対応してくれ。
590583:2013/06/26(水) 12:53:01.47
>>584
この問題を解決するには、大きくいうと二通りのやり方がある。

一つは、二つのRangeから共通部分を抜き出すユーザ定義関数を作り、それをセルに設定するというやりかた。
この方法のメリットは、「二つのRange」はセルに関数を設定するときに選択できるのと、「対象範囲」を「セルに
関数を設定する範囲」に置き換えることができること。
また、計算元となったセルの内容を変更すれば、計算結果も再計算される。
デメリットは、シート全体が再計算されるときに、時間がかかる場合があること。

もう一つは、全てをVBAのマクロで行うこと。
この方法のメリットは、上記方法よりも高速であるかもしれないということ。
デメリットは、計算元セルの位置や対象範囲を自由に変更できないこと。また、再計算にも対応していない。

*

普通、こんな丁寧な説明しないんだけどね。サービス。
591デフォルトの名無しさん:2013/06/26(水) 12:55:22.93
もうどれがタオパイか分からなくなってきた┐(´〜`)┌ ヤレヤレ
592デフォルトの名無しさん:2013/06/26(水) 12:56:09.66
ぼくだよ
593デフォルトの名無しさん:2013/06/26(水) 13:00:31.82
>>591
それらしいと思われるレスは全て無視すればいい。
594デフォルトの名無しさん:2013/06/26(水) 13:01:55.40
例え質問者であろうとも無視。
595デフォルトの名無しさん:2013/06/26(水) 13:06:55.29
そこまでやるならエラー処理もしろよ

Function 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
596デフォルトの名無しさん:2013/06/26(水) 13:18:28.31
>>585,590
ここまで書かないとわからないかも。
結局、全コードを求める奴しか質問しないのかもね。

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

どちらも動かしてない。
597デフォルトの名無しさん:2013/06/26(水) 13:26:16.75
>>581,584ですら、パイパンの炎上狙いのやり取りと思ってしまう
598デフォルトの名無しさん:2013/06/26(水) 14:15:04.03
インターネットに顔を公開してる人って
自分のことカッコイイと思っている人が多いけど
このVBAの本書いてる人もそうなのか?
http://tatehide.com/profile.html
599デフォルトの名無しさん:2013/06/26(水) 14:37:05.15
>>598
スレ違い
600デフォルトの名無しさん:2013/06/26(水) 15:48:00.56
>>588
は?誰がその話してんだよ一人でやってろやバーカ。
601デフォルトの名無しさん:2013/06/26(水) 15:55:32.41
>>590
あなたには答えるなと申しあげたつもりでしたが、伝わりませんでしたか。
私はそんな説明も求めていません。自己満足のサービスご苦労様。もう黙っててね。
602デフォルトの名無しさん:2013/06/26(水) 16:03:50.42
なんだ、荒らしか。
603デフォルトの名無しさん:2013/06/26(水) 16:04:24.60
これがパイパンの自演じゃなかったとしたら、ゴミばっか寄ってくるな、このスレ。
604583:2013/06/26(水) 16:15:20.92
>>601
桃白白ならレスするなと取ったんだが、桃白白かどうかに関わらずもう俺にレスするなということだったのか。
それはすまなかった。

ただ、最近このスレでは「コピペして動かせば答えが手に入るコード」を出すと荒れるんだわ。
>>1の★5ね。それに桃白白の件もあるし。
だから、部分的なアドバイスにとどめとこうと思ったわけ。

次からもそういうコードが欲しい質問をしたいならなら、こっちで質問するといいよ。
VBAなんでも質問スレ
http://toro.2ch.net/test/read.cgi/tech/1342087380/
605デフォルトの名無しさん:2013/06/26(水) 16:19:23.89
いや、荒らしたいだけでしょ、彼。
>>596で完全回答が手に入ってるのに煽る必然性なんて皆無だし。
606デフォルトの名無しさん:2013/06/26(水) 16:24:35.20
そんなに教えたいならママに教えてやればいいじゃん
607デフォルトの名無しさん:2013/06/26(水) 16:24:49.18
>>604
何が部分的ですか?あなたは聞いてもいないことを書いて答えた気になってるだけです。
あなたのような人をトンチンカンといいます。テンプレを理由にあなたのくだらない答えが正当化されるわけがありません。
答えられないなら黙ってればいいじゃないですか。独り善がりのアドバイスがしたいのならそれこそTwitterででもつぶやいて
たらどうですか。技術的な回答をするのに向いていないと思いますよ。これは私からのアドバイスです。
普段はこんな丁寧なサービスはしません。私はあなたが桃白白ではないかとまだ疑っています。あなたもまだ否定されていませんよね。

>>603
バカな回答者が群れて増長してるからどうしようもないと思いますよ。
10000行だっていっているのに>>596のようなコード書く人もいます。
動かさなくてもわかるだろと。
608デフォルトの名無しさん:2013/06/26(水) 16:32:20.43
>>605
完全回答、必然性
すげえかっけえなお前。悪い意味で。
609デフォルトの名無しさん:2013/06/26(水) 16:33:58.24
>>607
お前もトリップ付けろ馬鹿
610デフォルトの名無しさん:2013/06/26(水) 16:35:21.56
これパイパンだろ
611デフォルトの名無しさん:2013/06/26(水) 16:42:34.42
>>607
> 10000行だっていっているのに>>596のようなコード書く人もいます。
> 動かさなくてもわかるだろと。

>>585>>596のhoge()の方をコピペしてhogeを実行してみろ、このど素人が。
612デフォルトの名無しさん:2013/06/26(水) 16:47:12.86
なんか、Yahoo知恵袋的な釣り師の匂いがするんだが。
613デフォルトの名無しさん:2013/06/26(水) 16:49:11.97
反パイパンのふりをして、動作するコードを書くパイパンこそが素晴らしい回答者なのだという
パイパン自身による印象操作だな。
614デフォルトの名無しさん:2013/06/26(水) 16:59:20.13
>>600
はいはい、じゅうろくしんすうがわかってるぼくちゃんえらいねぇ (w
615デフォルトの名無しさん:2013/06/26(水) 17:06:54.29
>>614
   ∧,_∧ ♪
  (( (    )
♪  /    ) )) ♪
 (( (  (  〈
   (_)^ヽ__)

>>587
両含で入力文字列をフィルタリングすればいいだろ。お前は応用力ゼロのナメクジか?あ?
砂糖かけてもちっちゃくなるんだぜ知ってたか?お?
616デフォルトの名無しさん:2013/06/26(水) 17:11:51.02
>>611
maxrowはcurrentregionに依存しますよね。そんなことコード実行しなくてもわかりますよね。
回答する側の自分は素人じゃないとでも思ってるんですか?質問者より頭が悪いくせに
偉そうにするのやめてもらえないですか?それってとっても痛いですよ。
617デフォルトの名無しさん:2013/06/26(水) 17:14:51.87
なら、for i = 1 to 10000にすればいいだけなのに、そんなこともわからないのか
618デフォルトの名無しさん:2013/06/26(水) 17:20:58.31
ほらよ、完全回答。

sub hoge()
 dim i as long
 for i = 1 to 10000
  cells(i, 3) = 両含(cells(i, 1).value, cells(i, 2).value)
 next
end sub

もう来るな。
619デフォルトの名無しさん:2013/06/26(水) 17:24:40.47
なんかスゲーな。
回答厨とか言ってた奴思い出した。
620デフォルトの名無しさん:2013/06/26(水) 17:27:43.18
何故このスレの住人は煽り耐性が低いの?
621デフォルトの名無しさん:2013/06/26(水) 18:09:05.57
だな。見え見えじゃん。
622デフォルトの名無しさん:2013/06/26(水) 18:39:41.65
荒らしなのかどうかわからんが、いずれにしても煽ればコードが出てくるという雰囲気になるのは良くないな。
623デフォルトの名無しさん:2013/06/26(水) 18:47:17.73
君が感じる雰囲気にかかわらずム板でコードが出ないという事はありえんのだよ
624デフォルトの名無しさん:2013/06/26(水) 19:15:22.19
>>622
パイパン臭が少しでもあれば荒らしとみなしていいと思う。
例えそれが本人じゃなかったとしてもね。
パイパンが名無しの成りすましになってるから、混乱してるようだけど。

俺も煽ればコードが出てくるっていうのはよくないと思う。
625デフォルトの名無しさん:2013/06/26(水) 19:31:53.62
>>538だけど
約束は守られたのか?
626デフォルトの名無しさん:2013/06/26(水) 20:12:06.05
何より俺はまず最初に関数名が「両含」でいいのかと突っ込みたい
なんて読むんだよ
627デフォルトの名無しさん:2013/06/26(水) 20:19:29.16
>>624
桃白白が荒らしたことなんてあったか?俺は記憶にねえけどな。
628デフォルトの名無しさん:2013/06/26(水) 20:24:09.07
アスキーアートの連貼りは荒らしに見えなくもない
まあ上には上がいるからかわいいもんだけど、VBAスレでは今までそういうのがなかったから、
数回の連投でもそう見えてしまう
629デフォルトの名無しさん:2013/06/26(水) 21:08:51.54
AKB
630デフォルトの名無しさん:2013/06/26(水) 22:00:38.92
まああれだ。sageを覚えたなら進歩したんじゃないか
長い目でみて、完全放置しようぜ
631デフォルトの名無しさん:2013/06/26(水) 22:08:01.81
      /!/{  / ヾ--r
   _  /     ̄    <_
 _>`´    >>630___<_
  >    r‐'" ̄ ̄ ノ ̄ ̄`ヽ、―ニ 二
/ ,    |  `ヽ/ ´`ヽ _  三,:三ー二
 ̄/    |   ノヽ--/ ̄ ,    ` ̄ ̄ ̄
 / /⌒ヽ,|  ミ }  ...|  /!         差別する奴って最低だよな
 レ l d     _}`ー‐し'ゝL _
  | ヽ、_,   _,:ヘr--‐‐'´}    ;ー------
  |/|  \   ノ`ヾ:::-‐'ーr‐'"==-
    ヽ/l/|` ー------r‐'"    ̄ ̄
      |└-- 、__/`\-:、
     __,ゝ,,_____/ \_」 \
632デフォルトの名無しさん:2013/06/26(水) 22:44:02.76
Excel2007 VBAで.NETのコントロールを利用する方法ありますか?
DataGridViewやTreeViewを使用したいです
633デフォルトの名無しさん:2013/06/26(水) 23:06:01.37
>>632
VB.NetのフォームにExcelのシートを貼り付けた方が早くね?
634デフォルトの名無しさん:2013/06/26(水) 23:07:49.89
それで良いなら話は簡単なんですが・・
635デフォルトの名無しさん:2013/06/26(水) 23:59:39.21
VBAで複数のシートを扱う場合快適に動くのは何シートぐらいまででしょうか?
今20シートぐらいに書き込むコードを作りましたがさらに複製して倍に倍にと増やす予定です、お勧めの最大シート数を教えて下さい。
636デフォルトの名無しさん:2013/06/27(木) 00:22:24.79
マシンスペックも書きこむ内容も解らんと答えられるわけないと思わんのか?
637デフォルトの名無しさん:2013/06/27(木) 00:34:59.51
マシンスペックと書きこむ内容が解ればお前に答えられるのか?
638デフォルトの名無しさん:2013/06/27(木) 01:19:17.83
だね
639デフォルトの名無しさん:2013/06/27(木) 01:43:36.49
「快適」の基準も曖昧だし
640デフォルトの名無しさん:2013/06/27(木) 04:21:54.45
では質問を変えて今まで書いたVBAで最大何シートを操作した事がありますか?

50シート  100シート 1000シート 10000シート 100000シート 1000000シート 10000000シート 100000000シート  1000000000シート 
641デフォルトの名無しさん:2013/06/27(木) 04:26:38.60
1000000000シート 10000000000シート 100000000000シート 1000000000000シート 10000000000000シート 100000000000000シート 1000000000000000シート 
10000000000000000シート 100000000000000000シート 1000000000000000000シート 1000000000000000000シート 10000000000000000000シート 100000000000000000000シート
1000000000000000000000シート  1000000000000000000000000シート  1000000000000000000000000000シート  それ以上。
642デフォルトの名無しさん:2013/06/27(木) 04:45:57.04
あーあ、スレが殺伐としちゃって機能していないね…
質問する方も答える方も、挑発的な態度は慎もうよ
バトルしに来てるわけじゃないだろ?
643デフォルトの名無しさん:2013/06/27(木) 07:01:07.54
エクセル・VBAユーザーなんてこんなもんでしょ
644デフォルトの名無しさん:2013/06/27(木) 07:40:20.11
>>640
アンケートはよそでやってください
645デフォルトの名無しさん:2013/06/27(木) 12:28:57.13
100シートのエクセルブックなんて用途が思いつかん
使うアプリ間違えてるとしか思えん
646デフォルトの名無しさん:2013/06/27(木) 17:13:53.92
>>635
そういうのって誰かに聞いても
結局は自分のところで検証しなきゃならんから意味ないよ?

しかしシートが20から倍々ってのは
何か根本的な所で間違ってるような気がする
データの量が指数関数で増えるって事だろ
647デフォルトの名無しさん:2013/06/28(金) 08:32:40.51
http://www.uproda.net/down/uproda559285.zip.html
★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
648デフォルトの名無しさん:2013/06/28(金) 08:43:05.24
>>647
何いってんの?
649デフォルトの名無しさん:2013/06/28(金) 22:30:03.67
>>647
どうしろと?
650デフォルトの名無しさん:2013/06/29(土) 01:02:00.17
ただの誤爆でしょ
651デフォルトの名無しさん:2013/06/29(土) 15:51:01.79
モモさん消えちゃったの?
652桃白白 ◆9Jro6YFwm650 :2013/06/29(土) 15:59:38.38
>>651

いるけど?
   ∧,_∧ ♪
  (( (    )
♪  /    ) )) ♪
 (( (  (  〈
   (_)^ヽ__)
653デフォルトの名無しさん:2013/06/29(土) 16:03:11.50
おまえじゃねぇよ
654デフォルトの名無しさん:2013/06/29(土) 16:15:54.32
>>652
お元気そうでよかったです!
655デフォルトの名無しさん:2013/06/30(日) 23:13:06.00
学校の授業でVBAやってるんだけど、マジでちんぷんかんぷん……助けて
656桃白白 ◆9Jro6YFwm650 :2013/06/30(日) 23:33:03.58
>>655
桃白白が助けてあげちゃう。どういうコードがわからんの?
657デフォルトの名無しさん:2013/07/01(月) 00:23:24.91
>>655
VBAは実務でExcelを
活用しつつ使う言語だから
今はわからなくて当然
就職してから覚えればいいよ
658デフォルトの名無しさん:2013/07/01(月) 00:48:48.27
>>655
おっと、覚え立てで教えたがりの俺もいるぜ
なんでも聞いてみな
659デフォルトの名無しさん:2013/07/01(月) 00:51:04.54
つかVBAってむずくね?
一度挫折したけど別の言語やりだしてから何となく分かるようになった
初心者が最初にやる言語じゃないと思う
660デフォルトの名無しさん:2013/07/01(月) 01:31:39.98
>>659
初心者は何からやり始めればいいの?
661デフォルトの名無しさん:2013/07/01(月) 01:45:29.09
なでしこ
662デフォルトの名無しさん:2013/07/01(月) 02:02:19.19
支店 部門 年度別 月別をシート増やしていくと
いくつあっても足りないから
複数のブックに分けてる
ブック操作はなでしこ使って
シートの中はVBAで操作
663デフォルトの名無しさん:2013/07/01(月) 03:53:20.69
>>662
そういうのは1枚のシートに全データをまとめて、必要に応じて条件を指定して抽出するんだよ
それでデータ数が10万とか行くんなら、それはExcelじゃなくてAccessを使うべき仕事
664デフォルトの名無しさん:2013/07/01(月) 04:04:50.88
Excelシート上にマクロを実行する為のボタンを用意しました。
そのボタンをクリックした時のひな形コードが自動で生成されたのですが
その時のボタンの名前が ボタン2 となっており名前が変なので直したいのですが
どうしたらよいでしょうか?


Sub ボタン2_Click
  '略
End Sub



Sub executing_Click
  '略
End Sub
665デフォルトの名無しさん:2013/07/01(月) 05:16:14.10
>>664
Excelのボタンには2種類あって、
自動的に付く名前が「ボタン1」になるのはフォームのボタンなので名前は変更できません
もう一種類の方、Active Xのボタンを貼り付けて下さい
同じメニューの中に並んでいますから、よく探してください

そして、貼り付けたボタンを右クリック→プロパティを開き、オブジェクト名をexeutingに変更してから
最後にボタンをダブルクリックすると、ご希望のひな形が作られます
666デフォルトの名無しさん:2013/07/01(月) 06:54:03.15
>>655
VBAはゴミだから他の言語から覚えた方がいい
VBAから入ったやつは必ず変なクセ持ってるから使い物にならない
667デフォルトの名無しさん:2013/07/01(月) 08:14:47.20
そういえばVBしか使えませんっての
ちらほら居るな
668デフォルトの名無しさん:2013/07/01(月) 08:48:34.38
しまったあああああああああああああああああああああああああああああああ
エクスポートしとくの忘れてたあああああああああああああああああああああああああ




あー、でもこれでなんかスッキリしたような気がしなくもない
669デフォルトの名無しさん:2013/07/01(月) 08:49:29.88
あっ、誤爆失礼
670デフォルトの名無しさん:2013/07/01(月) 08:56:05.41
ぜんぜんスッキリしない (´・ω・`)
671デフォルトの名無しさん:2013/07/01(月) 09:38:16.38
>>665
ありがとうございます。解決しました。
672デフォルトの名無しさん:2013/07/01(月) 14:31:44.61
シート2のデータの参照式をシート1に埋め込むようにして、1行終わったら次の行に移って繰り返すようにしたいんだが、どうやればいいですか?
673デフォルトの名無しさん:2013/07/01(月) 14:50:38.18
>>672
それVBAでやることなのか?
674デフォルトの名無しさん:2013/07/01(月) 15:07:23.93
>>673
先輩&社長から、量が膨大でミスが起きるから、VBA使って自動でやれるようにしろと言われたんで…
675デフォルトの名無しさん:2013/07/01(月) 15:19:18.72
じゃあ、
・シート2のデータの参照式をシート1に埋め込み、
・1行終わったら次の行に移って繰り返すよう
なマクロ書けばOK
676デフォルトの名無しさん:2013/07/01(月) 15:20:55.18
先輩に質問しろよ
677デフォルトの名無しさん:2013/07/01(月) 16:47:42.19
社長はオレだ
678桃白白 ◆9Jro6YFwm650 :2013/07/01(月) 17:44:16.81
>>677
桃白白、Excel 2013のPreview版を使ってたんだけど、期限切れで使えなくなったの。
社長助けて。
679デフォルトの名無しさん:2013/07/01(月) 18:31:01.53
一般的にVBAを記述する場所は

@ Sheet1
A Module1

とあると思いますが、Formアプリケーションではない場合@Aどちらに
書くのが普通なのでしょうか?
680デフォルトの名無しさん:2013/07/01(月) 18:52:18.89
主処理はA、主処理のトリガーとUI制御は@
681デフォルトの名無しさん:2013/07/01(月) 19:22:19.69
サンクス
682デフォルトの名無しさん:2013/07/01(月) 19:42:52.07
>>678
Windows再インスコで期限リセットできない?
683デフォルトの名無しさん:2013/07/01(月) 20:04:33.32
別シートの最終行と最終列の取得、それと書式を標準にする方法教えて下さい。
684デフォルトの名無しさん:2013/07/01(月) 20:13:51.16
>>679
普通はThisWorkbookに書くんじゃね?
必要なければモジュール使うことないだろ
Sheet1はイベントハンドラ周りとか必要な時に書くだけ

まあ、最終的には動けばいいんだけど
685デフォルトの名無しさん:2013/07/01(月) 20:21:16.56
>>664
ボタンの名前変更は、ボタンを選択した状態で名前ボックスの所で書き換えれる
名前ボックスは数式バーの左横にあるやつな。セルの名前とか出るとこ

>>665
フォームのボタンでも名前は変えられます
686デフォルトの名無しさん:2013/07/01(月) 21:05:27.39
>684

はぁ?
687デフォルトの名無しさん:2013/07/01(月) 21:27:39.65
うっかりシートを削除しちゃうとシートに書いてあるマクロも消えちゃうよね
畜生ォ・・・持っていかれたァ・・・ッッ!!って感じで
だからマクロはモジュールに書くようにしています
688デフォルトの名無しさん:2013/07/01(月) 21:57:55.13
>>684
ThisWorkbookって
Workbook_open()とかの
ワークブックイベントしか書けないはずだが…違ったかな
689デフォルトの名無しさん:2013/07/01(月) 23:08:22.68
VBAを1から勉強したいと思っています。
プログラミング言語が宇宙語に見えてしまう程全然やったことのない初心者です。
皆さんはどうやってVBAを勉強しましたか?
参考にさせてください。
690デフォルトの名無しさん:2013/07/01(月) 23:30:15.48
あなたが短気で怠惰で傲慢なら
すぐにマスターできるよ
691デフォルトの名無しさん:2013/07/01(月) 23:42:16.53
単純作業を機械任せにして自分は楽したい、その為の努力は惜しまない、という人ならなんとかなるさ
692デフォルトの名無しさん:2013/07/01(月) 23:45:04.23
私はC言語を勉強しました
すると不思議なことに
次の日にはVBAのコードを楽々書けるようになっていたのです
それだけではありません
身長も伸びスリムになりIQも増えました
上司からも認められ昇進が決まりました
あなたもVBAをやめてC言語を学び豊かな毎日を手に居れましょう
693デフォルトの名無しさん:2013/07/02(火) 00:18:59.78
面白いと思ったのかな?
694デフォルトの名無しさん:2013/07/02(火) 00:36:08.04
VBAのおかげで彼女が出来ました!!
ありがとうVBA







こんな感じで合ってる?
695デフォルトの名無しさん:2013/07/02(火) 10:34:29.17
>>688
> ThisWorkbookって
> Workbook_open()とかの
> ワークブックイベントしか書けないはずだが…違ったかな

そんなことない。普通に関数を書くことができる。
696デフォルトの名無しさん:2013/07/02(火) 12:07:41.67
彼女のできるVBAのコードplz
697デフォルトの名無しさん:2013/07/02(火) 15:02:57.55
Private Function GetKanojo(Man As Variant) As Boorean
  If Man.Face = vbIkemen Then GetKanojo = True
End Function

糞コード
698デフォルトの名無しさん:2013/07/02(火) 18:20:42.61
しかも判定しただけでゲットは自分でやれとか
699デフォルトの名無しさん:2013/07/03(水) 03:14:06.64
T6セルから右に10個おきに文字を入力する方法を教えてください。
700デフォルトの名無しさん:2013/07/03(水) 04:42:35.74
>>699
こんな感じ。

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
701デフォルトの名無しさん:2013/07/03(水) 08:54:44.04
offsetって結合セルでズレなかったっけ
702デフォルトの名無しさん:2013/07/03(水) 10:58:38.71
>>701
そんなこと言ったら、雨降ってるときに傘ささずに外歩いたらずぶ濡れになるわ。はい論破。
703デフォルトの名無しさん:2013/07/03(水) 13:52:54.12
>>699
セル範囲を指定する場合

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
704デフォルトの名無しさん:2013/07/04(木) 11:32:08.97
列名に特定の文字列を含む場合、その列のセル全てに任意の文字列を埋め込む方法を教えて下さい。

現在、R8に列名が書かれており、R9以降に文字列を埋め込みたいと考えています。
705デフォルトの名無しさん:2013/07/04(木) 12:39:19.99
列名に特定の文字列を含む場合、その列のセル全てに任意の文字列を埋め込めばいいよ
706デフォルトの名無しさん:2013/07/04(木) 13:29:26.32
コードをよこせってよ
白桃はやくしてやれよ
707デフォルトの名無しさん:2013/07/04(木) 13:56:27.00
>>704
「文字列を埋め込む」ってどういうこと?
708デフォルトの名無しさん:2013/07/04(木) 14:28:26.29
まず穴を掘って
709デフォルトの名無しさん:2013/07/04(木) 14:35:30.08
>>706
そんなにこのスレを荒らしたいのか?
710デフォルトの名無しさん:2013/07/04(木) 15:12:15.92
>>707
すみません、分かりづらいですよね…
入力したいと言うことです。
711デフォルトの名無しさん:2013/07/04(木) 15:16:26.63
>>704
文字列が含まれるかどうか
→InStr()

文字列"abc"の二文字目に"XYZ"を挿入する
→2文字目から0文字を"XYZ"に置換する
→Application.Replace("abc", 2, 0, "XYZ")
712711:2013/07/04(木) 15:18:38.09
入力したいってどういうことだよ…
R9「以降」ってどういうことだよ…

後はまかせた。
713デフォルトの名無しさん:2013/07/04(木) 15:42:14.06
714デフォルトの名無しさん:2013/07/04(木) 15:44:36.32
R8に列名が入っていて、それが特定の文字列の場合、R9に入力したい内容(今回は計算式)を入力したいんです。以降ってのは、R10、R11と同じことを繰り返したいという意味です。
715デフォルトの名無しさん:2013/07/04(木) 15:54:02.65
>>714
Forステートメントは書けるのかな?
716デフォルトの名無しさん:2013/07/04(木) 16:15:05.76
>>715
forは書けます。

多分、IF文で列中に該当する文字列があるか見て、該当していたら、入力したい内容を、該当していなければ、また別の処理をさせるという流れなんでしょうが、列名で条件分岐の方法が分からないんです。
717715:2013/07/04(木) 16:20:56.51
>>716
Forステートメントの前の段階が問題なのか。
>>711のレスを見ても分からなかったら致命的なんだけど。
718デフォルトの名無しさん:2013/07/04(木) 16:29:17.01
>>716
If InStr(1, Range("R8").Value, "特定の文字列", vbTextCompare) > 0 Then
  ……
End If
719デフォルトの名無しさん:2013/07/04(木) 16:55:20.07
>>714
計算式設定(C1:C3に「=A列*B列」をまとめて設定する場合)
→ Range("C1:C3").FormulaR1C1 = "=RC1*RC2"
720デフォルトの名無しさん:2013/07/04(木) 21:06:33.37
721デフォルトの名無しさん:2013/07/06(土) 22:50:25.03
722デフォルトの名無しさん:2013/07/08(月) 12:19:56.73
ウインドウズ7のエクセル2002なのですが、

例えば行A列の1行目から5000行目までに適当な数値が書かれてるんですが

そこに1行目から5000行目まで一気にそれぞれの数値を100プラスしたいというときに
do loop文を使わずに一括で足し算するみたいなことってできるんでしょうか?

loop使うと時間かかるので、この作業を出来ればloopよりもっと一瞬で行えるようにしたいです。
723デフォルトの名無しさん:2013/07/08(月) 12:57:58.02
エクセル 値 貼り付け 乗算
でググれ
724722:2013/07/08(月) 12:58:12.16
>>722なのですが

とりあえず考えてみてB列の1行から5000行まで100と入れておいて
C列の1から5000行に "=SUM(RC[-2]:RC[-1])" と文字で一括貼り付けする。というのが
一応早いみたいですが、これより良いのあるでしょうか?
725722:2013/07/08(月) 13:03:38.62
>>723
ありがとうございました。それが早そうですね。
726デフォルトの名無しさん:2013/07/08(月) 16:09:33.66
○ 加算
× 乗算
727デフォルトの名無しさん:2013/07/08(月) 17:56:18.01
遅いのはループのせいじゃないと思うが
728桃白白 ◆9Jro6YFwm650 :2013/07/08(月) 18:05:14.80
>>727
じゃあ何のせいだと思うが?
729デフォルトの名無しさん:2013/07/08(月) 18:09:15.90
ループで毎回RangeやCellsを参照すると遅い
配列に一括代入して、配列操作して一括で戻すと早い、EXCELVBAでの基本テク
Sub test1()
&nbsp; &nbsp; Dim i As Long
&nbsp; &nbsp; For i = 1 To 50000
&nbsp; &nbsp; &nbsp; &nbsp; Cells(i, 1).Value = Cells(i, 1).Value + 100
&nbsp; &nbsp; Next
End Sub
Sub test2()
&nbsp; &nbsp; Dim i As Long
&nbsp; &nbsp; Dim r
&nbsp; &nbsp; r = Range("A1:A50000")
&nbsp; &nbsp; For i = 1 To 50000
&nbsp; &nbsp; &nbsp; &nbsp; r(i, 1) = r(i, 1) + 100
&nbsp; &nbsp; Next
&nbsp; &nbsp; Range("A1:A50000") = r
End Sub
比べて見れ。50000なのは5000じゃ体感できる差が無かったからな
730729:2013/07/08(月) 18:11:03.05
ぐは、空白が...
これどうやったら空白のまま書き込みできるんだ?
731桃白白 ◆9Jro6YFwm650 :2013/07/08(月) 18:12:32.81
>>730
ねー。この間まで&nbsp;でいけてたと思うんだけど、昨今は全角半角ばかりだよ。
732デフォルトの名無しさん:2013/07/08(月) 18:22:12.86
>>730
&nbsp;で駄目なら、全角スペースで&nbsp;インデント&nbsp;すればいいよ。
733デフォルトの名無しさん:2013/07/08(月) 18:22:28.78
あ、やっぱ駄目ねw
734722:2013/07/08(月) 18:51:55.48
>>729
ありがとうございます。それも一瞬でできるみたいですね。
ちなみに Dim r  のあとは、as 何とかって形で形式は
指定しないんですね?
 
735722:2013/07/08(月) 19:03:16.34
ああ、バリアント型での変数でしか無理なので、省略したんですね。
解決しました。

たしかにこちらのやりかたは、加算、などする数値にまた変数を組み込めたりして
便利そうですね。ありがとうございました。
736722:2013/07/08(月) 19:59:02.02
っていうか、同型の変数を配列という形で一括で取り込めるというのを初めて知りました。
VBAを適当なマニュアルサイトで勉強してたときには無かったんですよね。

これは色々便利ですね。ありがとうございました。
737デフォルトの名無しさん:2013/07/08(月) 21:37:31.60
>>722
セルの読み書きに時間がかかるから、配列に一気に読み込んで、演算処理して、一気に書き戻す。

一瞬で終わるかどうかは環境次第だけど、かなり速くなるはず。
738デフォルトの名無しさん:2013/07/08(月) 22:29:12.99
Win7が入るようなマシンなら5000件ぐらい一瞬で終わる
5万件でも1秒
739デフォルトの名無しさん:2013/07/08(月) 22:32:51.84
あんまり早く処理が終わると味気ないので、わざとCellsで回してます
人に使ってもらうマクロの場合も、一瞬で終わり過ぎると逆に不安になるらしく
頑張ってる感を演出する為にもCellsで回して、Application.StatusBarとかに進捗表示させてます
740デフォルトの名無しさん:2013/07/08(月) 22:38:59.52
手作業で一週間かかってた作業がVBAだと一瞬で終わって事務員がリストラとかよくある話
741デフォルトの名無しさん:2013/07/08(月) 23:28:26.55
そして3年後にバグの素通しによる会計ミスが発覚して会社ごとリストラとかよくあ(ry
742デフォルトの名無しさん:2013/07/08(月) 23:44:07.89
エクセル2002が遅いじゃね
743デフォルトの名無しさん:2013/07/08(月) 23:44:56.76
足し算のスピードなんかバージョン関係ないし
744デフォルトの名無しさん:2013/07/08(月) 23:47:15.41
最近のは前のに比べて早くなったという噂が
745722:2013/07/09(火) 00:35:51.97
>>738
いやぁ、実際には5万件でも明らかにコンマ数秒ぐらいの1瞬でした。配列で飲み込まずに一個ずつやると
17秒かかったんですけどね。
746722:2013/07/09(火) 00:40:32.53
いや17秒はもりすぎでした。4秒ぐらいでした。まぁ、どうでもいいアレですがw
747デフォルトの名無しさん:2013/07/09(火) 06:46:03.18
>>744
全体で見たら早くなってるけど、単純な演算は遅くなってる
早くなってるのはセルの値や情報の取得設定などの、所謂オブジェクト操作
748デフォルトの名無しさん:2013/07/09(火) 08:16:37.76
>>747
ソースある?

単純な演算を遅くする or 遅くなる理由が思い付かないんだが
749デフォルトの名無しさん:2013/07/09(火) 08:38:24.80
俺はアジフライにはソースではなく醤油派だ
750デフォルトの名無しさん:2013/07/09(火) 08:50:12.64
そもそも最近のって具体的にどのバージョンだよ
751デフォルトの名無しさん:2013/07/10(水) 07:03:38.30
僅かな差なんだから機にすること無い
752デフォルトの名無しさん:2013/07/10(水) 07:28:46.16
c#でいうところのWebBrowserクラスはvbaには無いのですか?
753デフォルトの名無しさん:2013/07/10(水) 08:21:58.43
ieをcreateobjectする
754デフォルトの名無しさん:2013/07/10(水) 20:52:14.34
>>666
ダミアンさんの言うクセってどんなん?
755デフォルトの名無しさん:2013/07/11(木) 07:25:25.86
他の言語は素直だけどVBA回りくどいよね
756デフォルトの名無しさん:2013/07/12(金) 07:17:58.25
vbに切り替えればいいのにね
757デフォルトの名無しさん:2013/07/12(金) 07:35:19.36
Excelのマクロ言語に、使用言語切り替え機能なんてないぞ
まぁ、そのうち任意切り替え(選択)ではなく、
強制切り替え(マクロ言語をVB6系からVB.NET系に変更)はされるかもだけどな

まあ、今は他のオフィスソフトもマクロを強化されてるので
マクロ言語をVB.NETに変えると一気にユーザー離れする恐れがあるから
その辺はMSも慎重になるだろうけど
758デフォルトの名無しさん:2013/07/12(金) 07:49:40.35
困るよー
使っているのはプロの開発者ばかりじゃないんだからさ
エンドユーザーが忙しい業務の合間に苦心して開発して
自動化に役立てていたりするのが大半でしょ
そういう人は他の言語を覚える余裕がないから
VBAを切り捨てられたらたぶん世界中から非難の嵐
759デフォルトの名無しさん:2013/07/12(金) 08:11:41.44
MSにとってもメリットないだろうしな
760デフォルトの名無しさん:2013/07/12(金) 08:30:19.19
別に両方のせればいいだけ。
Excel4 マクロと VBA の両方が動作していた時もあるんだから (そう言えば Excel4 マクロってどうなったんだっけ?)
761デフォルトの名無しさん:2013/07/12(金) 08:38:57.20
つExcel DNA
762デフォルトの名無しさん:2013/07/12(金) 10:47:34.53
>>761
そういう欠点だらけで糞なものを紹介するな
763デフォルトの名無しさん:2013/07/12(金) 17:17:40.30
DateAdd関数で質問です。
23: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
764デフォルトの名無しさん:2013/07/12(金) 17:20:58.01
試しに、23:00:01でやってみたらOKでした。

? DateAdd("h", 1, "2013/07/01 23:00:01")
2013/07/02 00:00:01
765デフォルトの名無しさん:2013/07/12(金) 17:32:37.80
>>764
表示だけの問題かと。

?Format(DateAdd("h", 1, "2013/07/01 23:00:00"), "YYYY/MM/DD hh:mm:ss")
2013/07/02 00:00:00
766デフォルトの名無しさん:2013/07/12(金) 17:39:03.49
即レスありがとうございます。
途方に暮れていました。
結果を変数に入れててもエラーが出てたので気づきませんでした。
本当に感謝です。m(_ _)m


結果が00:00:00だとこの現象になる見たいです。
?dateadd("n",10,"2013/07/01 23:50:00")
2013/07/02
767デフォルトの名無しさん:2013/07/12(金) 19:54:13.40
VBAには日付だけとか時刻だけの型はないからなぁ
日付時刻の型で、時刻部分が00:00:00なら日付として使ってるだろっていう勝手なおせっかいだな
逆に日付が部分がデフォルト日付なら時刻として使ってるだろっていう勝手なおせっかいもあるのか
しかしなぜそれが1899/12/30なんだろ
768デフォルトの名無しさん:2013/07/12(金) 22:43:14.19
1900でいっか。ちょっとだけ余裕持たせね?んー、せやな。1日?うん、あ、いや、2日にしとこ。せやな。
769デフォルトの名無しさん:2013/07/13(土) 00:51:16.16
>767
その理由を説明するにはlotus 1-2-3の話に遡る必要がある。
770デフォルトの名無しさん:2013/07/13(土) 01:14:54.05
>>769
ロータス?是非お聞かせ願いたい
771デフォルトの名無しさん:2013/07/13(土) 01:17:15.42
日付形なんて迷惑なものを使うな
整数で十分だろ
772デフォルトの名無しさん:2013/07/13(土) 01:22:42.84
>>769
スレ違いなので、やりたければBソフ板の
Excel雑談スレでやってね
773デフォルトの名無しさん:2013/07/13(土) 01:25:51.65
>>770
だそうだ
また別の機会に
774デフォルトの名無しさん:2013/07/13(土) 01:36:32.62
>>773
Bソフ板で。では。
775デフォルトの名無しさん:2013/07/13(土) 11:03:53.60
他のスクリプト言語で初心者に毛の生えた程度には仕事アプリ作ったことがありますが質問です。
エクセルのマクロでは自分が作ったコード郡をどのように保管運用するのが普通なんでしょう。
エクセルのデータに埋め込むマクロはそれでいいんでしょうが、そうでない汎用的なサブルーチンや
エクセルの個別の書類にあまり依存しないマクロを書いている場合、今現在はエクセルが勝手に作る
personal.xlsとかいう書類に埋め込まれて保存されている状態で、そこからインポート・エクスポート
して使っている状態ですが、みなさんはどのような環境で自分のコード郡を作成・保存し、他人に
あげたりしてるんですか? なんか気持ち悪いけどこれが普通なんでしょうか。
776デフォルトの名無しさん:2013/07/13(土) 11:07:09.64
コード郡ってどこにあるんだよ、、、、、。仕事ばれるorz
777デフォルトの名無しさん:2013/07/13(土) 11:47:31.63
VBAソースってフォルダに保存
業務だとバージョン管理システムとかあるけどVBAに適用している例は知らない
778デフォルトの名無しさん:2013/07/13(土) 14:24:25.44
>>775
アドインとして保存
779デフォルトの名無しさん:2013/07/13(土) 16:03:04.18
>>777
エクスポートして subversion に突っ込んでる。
780デフォルトの名無しさん:2013/07/13(土) 16:14:05.03
>>779
それはDB操作やロガー等、再利用性が高く再利用前提のクラス?
781デフォルトの名無しさん:2013/07/13(土) 16:29:17.31
>>780
クラス、フォーム、モジュール 全部 + Excel ブック
782デフォルトの名無しさん:2013/07/13(土) 16:44:39.75
きっちりやってるねぇ
差分取るには良いかもだけど面倒そう
783デフォルトの名無しさん:2013/07/13(土) 18:08:46.04
ロードモジュールに変換して渡す
784デフォルトの名無しさん:2013/07/13(土) 18:19:20.05
VBAでキーロガー的なアプリを作れる?
アクティブじゃない時のキーボードイベントってどうすれば捕捉できるんだろう
785デフォルトの名無しさん:2013/07/13(土) 18:51:54.42
無限ループでキーボード監視
アクティブかどうかは関係無いっしょ
786デフォルトの名無しさん:2013/07/13(土) 19:02:50.61
>>782
全部のモジュール等をエクスポートするためのマクロボタン作ってあるから、エクスポートしてコミットするだけ。
変更の有無は subversion が判断するから、慣れればさほど面倒じゃないよ。
ただ、フォーム (*.frx) の差分がとれないのが残念。
787デフォルトの名無しさん:2013/07/13(土) 19:20:55.09
>>785
それは流石に非効率かな
イベントで処理したい
788デフォルトの名無しさん:2013/07/13(土) 20:17:05.28
非効率でも仕方ないでしょ
効率的にやりたいなら、組み込みマクロ言語ではなく
アプリ開発言語使えば良いだけだし
789デフォルトの名無しさん:2013/07/13(土) 20:41:37.71
VBAでもAPIが使えればなんでも出来るでしょ?
そう思ってた時(ry
790デフォルトの名無しさん:2013/07/13(土) 21:48:09.53
VBAって確かサブクラス化が出来ないんだよね
791デフォルトの名無しさん:2013/07/13(土) 22:42:07.53
サブクラス化w
792デフォルトの名無しさん:2013/07/13(土) 22:45:14.75
サブクラス化w
793デフォルトの名無しさん:2013/07/14(日) 03:15:57.31
>>790
VBAではAddressOfが無いからなぁ、と思ってたが
有るじゃないか、AddressOf演算子
いつのバージョンからあるんだろ?頑張ればできるんじゃね、今のバージョンなら
794デフォルトの名無しさん:2013/07/14(日) 06:02:42.41
非力だなあ
795デフォルトの名無しさん:2013/07/14(日) 11:18:16.67
関数を入力するテキストボックスあるじゃないですか
あれを今アクティブなセルを書き換えないで関数を呼びたいのですができませんか?
あとサブルーチンも呼びたいです
796デフォルトの名無しさん:2013/07/14(日) 13:28:20.19
Excel初心者ですが
sellに001 002 と0が頭についた数値を表記したい場合はどうすれば良いのでしょうか?
797デフォルトの名無しさん:2013/07/14(日) 13:29:51.88
文字列の最初に'をつけて
798796:2013/07/14(日) 13:34:57.03
>>797
できました! 
ここはVBAスレだったのですね・・板違いな質問にも関わらずありがとうございました。
799デフォルトの名無しさん:2013/07/14(日) 14:37:22.83
つでにセルはSellではなくCellな
800デフォルトの名無しさん:2013/07/14(日) 16:40:28.01
って誤字指摘してる俺も誤字ってるじゃんw
×つでに
○ついでに
801デフォルトの名無しさん:2013/07/14(日) 19:07:18.44
ひゅう〜www
802デフォルトの名無しさん:2013/07/14(日) 21:40:03.07
excel 2007です

Option Explicit

Public Sub Hoge()
Debug.Print "Hello"
End Sub

Public Sub Fuga()
Debug.Print "*****"
Application.Evaluate ("Hoge()")
Debug.Print "*****"
End Sub

*****
Hello
Hello
*****

なんで2回よばれてしまうんですか?
803デフォルトの名無しさん:2013/07/14(日) 23:14:20.44
一度評価し正しければ実行
かなあ
804デフォルトの名無しさん:2013/07/15(月) 01:04:22.50
OnActionなんかでも、2回呼ばれてしまうケースと、それを回避する方法があったな
同じ方法で対応できるかは解らないが、ググってみれば?

あとは対処療法で1回しか実行されないようにする方法はいくらでもあるので、それで間に合わせるとかね
805796:2013/07/15(月) 18:31:17.35
VBAに生命をやどす事はできるのでしょうか?
806デフォルトの名無しさん:2013/07/15(月) 18:41:05.19
VBAを使うメリットを教えてください
会社の先輩が言うには持ち込み禁止の現場でもエクセルならまず入ってるからと苦しい理由を述べていたのですが…
いくらなんでも開発用の環境はあるはずなのでそれを使うべきではないでしょうか?
807デフォルトの名無しさん:2013/07/15(月) 19:28:56.10
808デフォルトの名無しさん:2013/07/15(月) 20:40:49.88
初歩的な質問ですが
オートフィルタの抽出結果の中にある空白セルをカウントするには
どうしたらいいでしょうか?
空白セルの有無で処理を分岐させたいのです。
809デフォルトの名無しさん:2013/07/15(月) 21:56:52.22
>>806
甘いな
開発環境がExcelしかない現場など星の数ほどある
810デフォルトの名無しさん:2013/07/15(月) 22:02:31.68
その現場ではエクセルマクロを納品するのですか?
811デフォルトの名無しさん:2013/07/15(月) 22:15:01.71
>>809
ホントか?
Excel 入ってて Word 入ってない PC なんて見たことないし、メモ帳あれば vbs とかでも開発できるんだよ。
812デフォルトの名無しさん:2013/07/15(月) 22:23:33.51
>>810
そうだよ
というか、現場で既存のExcelブックにVBAを打ち込んで
そのまま使ってもらうだけ。
納品も実に簡単だ。
813デフォルトの名無しさん:2013/07/15(月) 22:34:05.02
それはかわいそうな現場ですね
それ以外の現場であえてエクセルを使う理由はありますか?
814デフォルトの名無しさん:2013/07/15(月) 22:44:46.26
>>813
うざいわ
815デフォルトの名無しさん:2013/07/15(月) 23:56:04.94
世間知らずのニートは黙ってろ
理想と現実は385度ぐらい違うし民衆の約122%はバカで豚なんだよ
816デフォルトの名無しさん:2013/07/16(火) 08:36:28.82
うわっ
817デフォルトの名無しさん:2013/07/17(水) 02:10:45.41
起点セルから10個おきに計算式を埋め込み、それをデータが記入されているセルまで続けたら、
2行目へ移動して同じ事を繰り返す方法を教えてください。
818デフォルトの名無しさん:2013/07/17(水) 02:32:53.96
>>817
それをそのままコードにすれば良いだけじゃん
819デフォルトの名無しさん:2013/07/17(水) 02:45:35.83
>>817
forかwhile内でif置くだけの簡単な処理です
要件の規模によっては手でやれよってなる
820デフォルトの名無しさん:2013/07/17(水) 04:31:34.83
>>817
どこまでコードができてるの?
コードができていないというのは論外だけど。
821ピラフ:2013/07/17(水) 10:31:43.54
>>817
ピラフが教えてあげちゃう。
こんな感じ。

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
822デフォルトの名無しさん:2013/07/17(水) 10:40:23.89
>>821
ネスト深過ぎw
823ピラフ:2013/07/17(水) 10:51:02.72
>>822
For文やIf文でネストするなとでもいうつもりでしょうか?
可読性下がって保守しづらくなるばかりだと思いますが?ピラフ的にはそう思いますが!!
824デフォルトの名無しさん:2013/07/17(水) 11:33:17.42
256とかどっから出てきた数字なんだ
つか相手にしちゃいけない奴のにおいがするな
825ピラフ:2013/07/17(水) 11:52:52.97
>>824
256というのはピラフの頭脳から出てきた数字。
別になんでも良かったんだが、きりのいいところで適当に選んだ。
ピラフはそういう決断力を持ってる。256で足りなければ65536でもいいし、
Rows.Countでもいい。その辺は質問者の環境に合わせて適当に書きかえればいい。
テンプレにも書いてあるとおり質問者はプログラマーであることが前提となってるわけだから、
その辺は適当に対処できる能力を有するものと考えて差し支えないものと思われる。
ピラフは256という数字でいいがかりをつけたお前を心底頭の悪いやつだと思ってる。
826デフォルトの名無しさん:2013/07/17(水) 12:23:46.78
マジックナンバー使うなっていうプログラミングの基礎事項があるわけなんだが
まあ、やっぱり相手にしちゃいけない奴だったようだから以後無視することにするわ
827デフォルトの名無しさん:2013/07/17(水) 12:26:06.92
ピラフちゃん好きだよ
828ピラフ:2013/07/17(水) 12:30:17.58
>>826
書き逃げw ダッセwww
書き換えればいいじゃねえか。マジックナンバが嫌なら。
質問とは関係ないがな。お前どうせ回答できねえだろ。
無視するとかカッコつけてるが、答えられないだけだろ。みんな気付いてるよ。
829デフォルトの名無しさん:2013/07/17(水) 12:49:44.53
書き換えが必要なものなど埋め込むな、って趣旨の話であることを理解できない奴w
830デフォルトの名無しさん:2013/07/17(水) 13:11:23.10
>>821
範囲がわからないときは、とりあえずcurrentregion使っとけ
831ピラフ:2013/07/17(水) 13:12:18.37
>>829
それが嫌なら嫌だと思った奴がやらなきゃいい。
それくらい自分で判断してできるだろ。お前はピラフからいちいち指示されなきゃ
できない3歳児なのか?テンプレに書いてあるプログラマは他人から質問と関係ないような
細かいことまでピラフから指図されなければできない奴のことを言ってるんじゃないんだよ。
質問に回答してないやつがくだらない揚げ足取りしてんじゃねえよ。ピラフぶち切れんぞ。お前もピラフぶち切れさせたくないだろ?
ピラフが世界最強の殺し屋だったらピラフはお前を一撃で殺害してやってるところだわ。
832デフォルトの名無しさん:2013/07/17(水) 13:14:31.52
暴れるな
833デフォルトの名無しさん:2013/07/17(水) 13:15:03.20
またパイパンか。
834ピラフ:2013/07/17(水) 13:15:32.71
>>830
それはピラフに言うことじゃない。質問者に言うことだ。こっちの方がいいよと
お前が質問者に全力で示せばいい。ピラフは関係ない。
835デフォルトの名無しさん:2013/07/17(水) 13:16:15.67
白白と二大巨頭になりそうな余寒
836デフォルトの名無しさん:2013/07/17(水) 13:19:10.71
>>829
正論だけど的外れな指摘
837デフォルトの名無しさん:2013/07/17(水) 13:19:17.28
どうみても同一じんぶt
838デフォルトの名無しさん:2013/07/17(水) 13:36:11.58
なんでコイツときどき発狂するんだろう?
839ピラフ:2013/07/17(水) 13:40:59.55
>>838
ピラフ今日初めてここに書き込んだからときどきというのは
間違ってると思うけど、ピラフは嘆かわしいよ。こんな書き込みしかなかったんだよ。。。
1年前は2〜3人技術力のあるすてきな人がいたと思うんだけど。

818 :デフォルトの名無しさん [↓] :2013/07/17(水) 02:32:53.96
>>817
それをそのままコードにすれば良いだけじゃん


819 :デフォルトの名無しさん [↓] :2013/07/17(水) 02:45:35.83
>>817
forかwhile内でif置くだけの簡単な処理です
要件の規模によっては手でやれよってなる


820 :デフォルトの名無しさん [↓] :2013/07/17(水) 04:31:34.83
>>817
どこまでコードができてるの?
コードができていないというのは論外だけど。
840デフォルトの名無しさん:2013/07/17(水) 14:32:52.21
>>839
818 819 820  >>817の論点の絞れない質問に対しては皆まともな回答じゃん。
中でも>>820    どこまでコードができてるの?
が一番適切だろう。これに質問者が答えてようやく回答の方向が見つかるレベル。

現状でコードを書くならピラちゃんの>>821 こんな感じ が限度じゃない。
「こんな感じ」のヒントコードに文句をつけている人は単なるクレーマにしか見えない。
クレーマより白白みたいに質問者の意図を考慮しない自己満足コードを張り付けて「どうだ」
と開きなおっているほうがまだましな。
841ピラフ:2013/07/17(水) 14:44:47.98
>>840
Aする方法を知りたい。

817
Aすればいい。

819
Aしなくていい。

820
俺は論外。

ピラフ
こうすればいいよ。

正常なのはピラフだけ。
842ピラフ:2013/07/17(水) 14:51:13.86
結局お前ら情報を小出しにして質問者に偉そうな態度とって
優越感に浸りたいだけなんだよな。だからピラフがふつうの良識ある回答する
とがたがた難癖つけて怒る。かわいそう!ピラフかわいそう!!
843ピラフ:2013/07/17(水) 14:59:27.18
マルチポストすんなとか後出しすんなとか質問者には偉そうに言うくせに
回答者はあっちこっちで同じような回答したり、情報を後出ししたり平気でやる。
回答者のモラルが崩壊している。ピラフはこのスレで回答者のモラルを
取り戻すために頑張りたい。それがこの落ちぶれたスレのためになると思う。
応援よろしくお願いします。
844デフォルトの名無しさん:2013/07/17(水) 15:07:47.80
糞コード貼り付けて
「これを使いたまえ」
全然正常じゃない。
845デフォルトの名無しさん:2013/07/17(水) 15:08:30.17
突っ込まれて自分で書き換えろとかいうコード書いてるレベルで何を言ってんだか
846デフォルトの名無しさん:2013/07/17(水) 15:14:31.27
>>841-843
いい加減にしろよ
847ピラフ:2013/07/17(水) 15:18:49.73
>>844
ちがうよ!ぜんぜんちがうよ!!
ピラフという名前が高貴さを感じさせるからピラフを貴族だと
思ったのかもしれないけれども、ピラフは使いたまえなんて言えるほど貴族じゃないよ。
ピラフという名前はピラフがまだお母さんのお腹の中にいるときに
おばあちゃんが食べ物のピラフのように熱いハートを持ってピラフの味のように
人々をほっこりさせるような人になってほしいというそういう優しいおばあちゃんの
思いが込められたものなんだよ。ピラフは大好きなおばあちゃんに誓っていうけど、ぜんぜん違うよ。
848ピラフ:2013/07/17(水) 15:27:37.99
>>845
マジックナンバは突っ込みどころ間違ってると思うんだー。
だからマジックナンバ嫌な人はマジックナンバを自分で書き換えたまえ。
849デフォルトの名無しさん:2013/07/17(水) 15:38:22.42
大丈夫。ピラフちゃんは正しい。
850デフォルトの名無しさん:2013/07/17(水) 15:46:27.36
おいパイパン、マジでいい加減にしろ
851デフォルトの名無しさん:2013/07/17(水) 15:48:23.78
■ 的確で親切な説明 → 桃白白 ・ ピラフ
852デフォルトの名無しさん:2013/07/17(水) 15:56:11.11
これだけ突っ込まれて的確で親切だって言い張れる心臓には感服するわ
853デフォルトの名無しさん:2013/07/17(水) 16:37:47.31
だからといって、模範解答を出すわけでもない
854デフォルトの名無しさん:2013/07/17(水) 16:39:55.02
>>821から30レスほど、全くのゴミ
855ピラフ:2013/07/17(水) 16:42:53.44
>>854
ほとんどピラフじゃん。なにそれ意味わかんない。ピラフゴミじゃないし!!
856デフォルトの名無しさん:2013/07/17(水) 16:46:52.61
>>853
そもそも「10行おき」ってstep 10なのか?みたいな曖昧な質問だから、模範解答も糞も無い。
step 11なんじゃないかとも思ったりするが、答えるつもりも無いんでどうでもいい。
857デフォルトの名無しさん:2013/07/17(水) 19:09:37.27
10行おきじゃなくて、10個おきだからなぁ
A1からA10までの計算式セットをA11からA20まで、A21からA30まで
ってやりたいんじゃないかと思ったり
858デフォルトの名無しさん:2013/07/17(水) 19:18:00.93
もう質問内容について質問者不在であーだこーだ言うのやめね?
859ピラフ:2013/07/17(水) 19:23:27.40
>>858
回答者が議論することで読解力を身につけるいい機会だと思うよ。ピラフ的には問題ないと思うよ。
860デフォルトの名無しさん:2013/07/17(水) 19:42:12.18
ポジティブだねぇ
861デフォルトの名無しさん:2013/07/17(水) 19:56:09.87
>>821>>817の要件に合いそうな箇所が
Cells(row, column).Formula = "hoge"
しかなくておじさん辛い。
862デフォルトの名無しさん:2013/07/17(水) 19:58:41.21
質問者「>>821さんので試したところ、なにも起きませんwwwww」

>>821「読み解いて適宜修正しろや!シネカス!」

他「プークスクス」
863デフォルトの名無しさん:2013/07/18(木) 00:31:04.57
ファクトリパターンと言うのがどういうのかわかりません。
誰かVBAでちょろっと説明して下さい。
864デフォルトの名無しさん:2013/07/18(木) 00:39:38.91
ものすごく説明が下手くそなんで、意味が解らなかったらごめんなさい。

sumifsとか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秒近く画面が固まったままになります。
やっぱりこの配列が原因なんでしょうか? また、より高速に処理する方法はないでしょうか?
865デフォルトの名無しさん:2013/07/18(木) 00:53:53.48
セルに関数を設定しなけりゃいいんじゃないの
866デフォルトの名無しさん:2013/07/18(木) 03:11:12.73
>>863
○○とはでググれば一番最初に丁寧な概念解説がでてくるじゃん。
Excel実装例でいったら、OSやMSの版によってオブジェクトの有無や違いがある場合に、版を取得・判断し、必要とするオブジェクトを返す。とか。
HTTP通信関係のオブジェクトの、MSXMLだかなんとかSERVERなんかで、OBJECTの版数(x.x)が端末によって違いがあって、create→onerrorで探す・・・あ、これはエラー回避処理か。

>>864
ソースはよ
1,000まで>>864のブラッシュアップで遊ぼうぜ
867デフォルトの名無しさん:2013/07/18(木) 06:00:37.85
ユーザー定義関数をいっぱい貼ると重くなるのは仕様なんじゃないの?
868デフォルトの名無しさん:2013/07/18(木) 09:32:42.06
検証してみたいけど、自分で一から書くのは面倒だもんなあ
人の書いたソースをいじった方が楽だし
869デフォルトの名無しさん:2013/07/18(木) 09:43:29.38
クソ重くなるよ(実体験)
870デフォルトの名無しさん:2013/07/18(木) 11:57:16.09
単にオプションの計算方法を手動に設定すれば早くなったりして。
871デフォルトの名無しさん:2013/07/18(木) 14:19:12.29
計算中は再計算を無効化するとか
872デフォルトの名無しさん:2013/07/18(木) 17:48:37.99
>>864
セルへのアクセスは遅いってのは定説
セル範囲で受け取ったら、セル範囲の値を配列に入れてから使えよ

これ以上はソースさらせ
873デフォルトの名無しさん:2013/07/19(金) 01:14:38.31
質問です。
セル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"
と表示されます。

下手な説明で申し訳ありませんが、このような場合どうしたら検出来るようになりますか?
874デフォルトの名無しさん:2013/07/19(金) 02:31:44.78
>>873
とりあえずそのヒットしないって言うFindのとこさらせ
あとオートフィルした所は結局どんな値か式が入ってるんだ?
どうせ検索元と検索対象で型が違うだけだろ。日付を文字で検索してるかその逆か
875デフォルトの名無しさん:2013/07/19(金) 02:45:09.41
>>873
GとQをtypenameで確認
Gが数値でQが日付なんだろう

それにしても読みにくいな
説明が云々を免罪符にせず
100回読み直して添削してよ
876デフォルトの名無しさん:2013/07/19(金) 07:24:05.65
>>874
Dim 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でした。

おっしゃる通りで申し訳ない。
877デフォルトの名無しさん:2013/07/19(金) 09:11:00.56
>>876
みんなが指摘しているように検索キーと対象の型があっていないだけでしょう
特に日付型の場合はFormatを完全に合わせないと検索できないよ
s = Mid(s, 5, 2) & "/" & Right(s, 2) '見かけ上の日付型を
s = Format(s, .Range("P2").NumberFormat) 'Range("P2")の型に合わせる
で試してみて
878デフォルトの名無しさん:2013/07/19(金) 17:12:21.94
>>876
張るならちゃんとしたコード張れよ
NextもEnd Withも無いじゃないか

検索の初期値は数式で検索だから、値で検索しろよ
Findの引数にLookIn:=xlValues追加するだけだ
879デフォルトの名無しさん:2013/07/19(金) 19:20:45.18
>>877
アドバイス通り試しましたが、"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)
としたりしてみたのですがどうも思うような結果になりません。

どうしたらいいでしょうか?
880デフォルトの名無しさん:2013/07/19(金) 20:29:17.59
>>879
s = Cells(r, 7).value
s = Right(s, 2)
検索してるのは日付だけなんだから、違う付きの日付が検索されるのは正常だろうが

何がやりたいんだよお前
881デフォルトの名無しさん:2013/07/19(金) 21:03:28.60
>>880
それに気づき、879にも書いたように
s = Left(s, 4) & "/" & Mid(s, 5, 2) & "/" & Right(s, 2)
でもためしましたが、だめでした。
882デフォルトの名無しさん:2013/07/19(金) 21:14:52.56
Dim I As Variant
I = .Range("Q2").value
とし、せるQ2を確認するとDate型で#2013/05/22#
となっていました。
これに検索キーワードの型を合わせたいのですが、
Dim s1 As Date
s = Cells(r, 7).value
s1 = Format(s, Date)
としても型が合わないと実行時エラーが出ます。
どう修正したらいいでしょうか?
883デフォルトの名無しさん:2013/07/19(金) 21:37:45.93
>>881
>セルの書式設定で"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
884デフォルトの名無しさん:2013/07/19(金) 22:13:04.20
>>882
当然でしょう
Date はFormat関数に使用する表示書式指定文字ではありません。

日付型にを変換したいのなら yyyy/mm/dd の文字列にしてから CDate
但し、検索に使うならあまり意味はないよ。合わせるのは Format ね。
885デフォルトの名無しさん:2013/07/19(金) 22:13:35.19
>>882
だから何がしたいんだ?
計算式で日付計算して日しか表示してないのに、年月日で検索したいのか?

.Findでやりたいなら
計算式やめるか、日しか表示してないのを年月日まで表示する

.Findでなくてもいいなら
自分でループしてチェックする

どっちかでやれ
886882:2013/07/19(金) 23:50:12.28
皆さんのアドバイスを参考に試行錯誤しましたが
なかなか思うようになりません。
やりたいことはガントチャートを作ろうとしていて
出来るだけページの横幅を抑えたいので
日付は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になりました。

書きかけのコードで見にくいと思いますが、お力をお貸しいただけると助かります。
887ピラフ:2013/07/20(土) 00:00:28.60
>>886
ナイスアップロード!ピラフも見ちゃう。
888デフォルトの名無しさん:2013/07/20(土) 00:41:07.79
あとはピラフに任せようず
889デフォルトの名無しさん:2013/07/20(土) 00:42:48.26
>>864
ソースはよ
890ピラフ:2013/07/20(土) 00:44:41.68
>>888
ぇ・・・。
日付の検索は厄介だって田中さんも言ってた。
891ピラフ:2013/07/20(土) 01:13:48.47
>>886
じつはピラフ、エクセル持ってなくてLibreOfficeで確認してるんだけど。
SearchOrderをxlByColumnsにしたら検索できた。
892デフォルトの名無しさん:2013/07/20(土) 01:21:38.69
いいキャラだねぇ
893ピラフ:2013/07/20(土) 01:23:17.89
>>886
SYORI2は
If .Cells(r, 7).value = .Cells(2, a).value Then
これを
If s1 = .Cells(2, a).Value Then
にしたら検索できた。
894デフォルトの名無しさん:2013/07/20(土) 02:19:30.17
>>886
いやガントチャートとか材料入り日とかそんなのどうでもいいから
エクセルブックとか怖くてダウンロードとか出来ねえわ

.Findでやりたいなら
計算式やめるか、日しか表示してないのを年月日まで表示する
.Findでなくてもいいなら
自分でループしてチェックする

どっちか選べよ
895デフォルトの名無しさん:2013/07/20(土) 08:42:08.67
>>886
>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行目を参照。
これならセルの表示形式に惑わされることもない。
896デフォルトの名無しさん:2013/07/20(土) 08:52:47.52
>>886
>>894は滅茶苦茶斜め上から目線で気に食わないけど言ってる事は正しいな。
対処方法としてはぱっと見て3つ位思い付くけど、
一つ目は>>893が言ってる様に、G列のセルから取得した値をDate型に変換して
シリアル値として比較する方法。
二つ目は逆に2行目の日付セルから取得した値を文字列型に変換して
文字列として比較する方法。
三つ目は隠し行を仕込んでおいて、そこに2列目に相対する年月日を書いておいて
それと比較する方法。

まぁこんなところか。
897デフォルトの名無しさん:2013/07/20(土) 08:57:32.64
なんだ被ったな。実際には>>893の方法が一番今のコードから直すのに楽だし
変なものシートに仕込まなくていいから現実的かな。
898デフォルトの名無しさん:2013/07/20(土) 15:11:23.41
横方向に日付が+1されていくだけなら、検索したい日付と基準日の差をとれば
いちいちセルの値チェックしなくても横位置は解る
まあ俺なら多分そうする。要件次第だけど
899デフォルトの名無しさん:2013/07/20(土) 17:29:04.36
ExcelにactiveXコントロールのコマンドボタン作って、それをクリックしたら起こるイベント
CommandButton1_Click()を作りました
次にフォームを作り、そのフォーム上にactiveXコントロールのコマンドボタン作って、それをクリックしたら起こるイベント
CommandButtonForm_Click()を作りました
そのCommandButtonForm_Click()イベント時にCommandButton1_Click()の動作を行いたいのですが、どうすればいいのでしょう
フォームのコードのsub CommandButtonForm_Click()に
CommandButton1_Click
Call CommandButton1_Click
Sheet1.CommandButton1_Click
Call CommandButton1_Click
を入れてもエラーが起きてしまいます。
900デフォルトの名無しさん:2013/07/20(土) 18:18:40.24
>>899
多分、Sheet1.CommandButton1_ClickがPrivateになってる
Publicにすれば呼び出せるけど、つくりとしてはお勧めじゃない
CommandButton1_Clickで処理する内容をPublicな別プロシジャーに書きだして
それを両方から呼ぶのが正当派なつくり
901882:2013/07/20(土) 19:00:23.42
893さんの方法で上手くいったので

For 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

で行こうと思います。
皆さんありがとうございました。
902デフォルトの名無しさん:2013/07/20(土) 19:23:57.67
>>900
ありがとう
見落としてました
903864:2013/07/20(土) 19:38:54.00
返事が遅くなってすみません。
皆様アドバイスありがとうございました。
いただいたアドバイスを元にあれこれ検証したところ、
30秒かかったものが10秒程度まで縮めることができました。
このまま自力での解決を試みてみます。

ソース公開の声もあるようですが、
例外処理も何もなっていない糞コードですのでご勘弁下さい。
904デフォルトの名無しさん:2013/07/21(日) 13:12:11.39
可視セルのみ5セル色を変えたくてこの様なコードを組んだのですが、
Range(Cells(5, 3), Cells(5, 3).Offset(0, 5)).SpecialCells(xlCellTypeVisible).Select
Selection.Interior.ColorIndex = 5
これを仮に3列列非表示にしてためすと、非表示セルは塗りつぶしされませんが、
可視セルも3個しか塗りつぶしされません。
非表示セルに関係なく可視セルのみ6セル分塗りつぶしたい場合は
どのようにしたらいいでしょうか?
905デフォルトの名無しさん:2013/07/21(日) 14:56:38.23
>>904
Loopして可視セルだけ塗る
案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
906デフォルトの名無しさん:2013/07/21(日) 16:58:38.16
>>905
ありがとうございます。
コードもスッキリしました。
907デフォルトの名無しさん:2013/07/22(月) 20:45:05.50
2008/07/18 こちらのサイトで、有償でのVBAを相談しましたところ
親切な方に組んで頂きました。
(あの時は感動しました。ありがとうございました!)
実はまた、ちょっと検証したいことがあり
VBA(有償)をお願いしたかったのですが
その後、お約束通り、やり取りしたメールや振込先銀行口座等
一切の記録を破棄してしまい連絡の取りようがありません。
もしよかったらまたお願いしたかったのですが・・。
メールお待ちしております。どうぞ宜しくお願い致します。
908デフォルトの名無しさん:2013/07/22(月) 20:48:20.99
当時、こんな感じでお願いしました・・。

458 : デフォルトの名無しさん[[email protected]] 投稿日:2008/07/18(金) 00:30:09
かなりなスレ違いお許し下さい
過去の株価をVBAで検証したいのですがスキル不足です。
検証の内容は、ごく単純なもので恐らく数十分ほどで組めるのではないかと思われます。
(検証条件=システムは、恥ずかしい位、幼稚なものです。期待なさらないで下さい。
特別な秘密など有したものではありません・・)
どなたか有償でVBAを組んで頂けませんでしょうか。
909ピラフ:2013/07/22(月) 20:50:54.12
>>908
質問書いちゃったら?
ただでやる人がいるかもよ?
910908:2013/07/22(月) 21:00:26.32
説明書いたらたぶんすごく長くなるかと・・
単純な検証だとはおもうんですけど・・
トレードに関わっている人なら簡単な説明でわかるかなぁ
911ピラフ:2013/07/22(月) 21:01:36.39
>>910
じゃあいいです。
912デフォルトの名無しさん:2013/07/22(月) 21:11:11.80
>>910
http://crowdworks.jp/public/job_categories/13
http://www.lancers.jp/work/search/programing/vba
クラウドソーシングで発注すればいんじゃね
他にも仲介するサイトはあるし、英語出来るなら海外の類似サービスもある
913デフォルトの名無しさん:2013/07/22(月) 21:31:29.94
>>912さん
ありがと!
ある程度待ってみてコンタクト取れなかったらクラウドソーシング考えてみます。
914デフォルトの名無しさん:2013/07/22(月) 22:44:49.28
>>912
どんなものかと覗いてみたけど、時給1500〜のプロジェクトに複数応募があったりして
暗い気持ちになった。
需要と供給が合致してるんだから、第三者がとやかく言うなと言われれば、何も言えないんだけどさ・・・
915908:2013/07/24(水) 23:09:20.29
たびたびすみません
コンタクト無理そうなので
クラウドソーシングに頼もうと思って今みてみましたが
登録その他諸々メンドそう・・

どなたかやって頂ける方いらっしゃいませんでしょうか
たぶんそれほど難しいものではないかと(たぶんですけど)
金額は、8000円位で考えております。
小額のお金で恨みを買ったりして
後々まで気分悪く過ごすの絶対イヤなので
お約束の金額は必ず(即日で)お支払致します。
メールお待ちしてます!(スレチごめんなさい・・
916デフォルトの名無しさん:2013/07/25(木) 00:18:28.86
>>915
メール送ってみました
917908:2013/07/25(木) 01:03:51.50
>>916
ありがとうございます!
本メールから送信致しました。
ご検討どうぞ宜しくお願い致します。
918デフォルトの名無しさん:2013/07/28(日) 08:42:19.04
誰も何も言わないけど、
これってモロに>>1★5なんじゃないのか。
それ以前に2ちゃんでこう言うやり取りが許されるのか知らんけど。
919デフォルトの名無しさん:2013/07/28(日) 09:28:18.30
>>918
削除依頼すれば?
920デフォルトの名無しさん:2013/07/28(日) 15:57:15.92
だからメールでやってるんじゃないの?
921デフォルトの名無しさん:2013/07/29(月) 06:24:40.05
1つのBookに30〜60くらいのシートがある
シートには中身の概要として2文字〜6文字くらいで名前を併記している
例えば、「富士山・葡萄・山梨・メロン・リンゴジュース・・・・」(名前は「・」で区分し、全文字数はMAX15文字)

ただしシートは期毎に追加しているため、複数のシートに同名、例えば「富士山」を記入している
シート中身を見れば作成年月が解るので同じ「富士山」を含むシートを見ても違いは判別できる

やりたいこと
シート数が多すぎるため見たいシートを見つけるのに手間が掛かりすぎる
入力ダイアグラムを表示させ、例えば「富士山」と入力し「OK」すると、富士山を含むシートがアクティブになる
内容を確認して、時期が違う、つまり別のシートを検索したいときは「NEXT]ボタンをクリックすると
次のシートを検索しアクティブになる、を繰り返す
ということをExcel VBAマクロで組みたいのですがどうやればいいのでしょうか?
922デフォルトの名無しさん:2013/07/29(月) 06:58:56.56
>>921
まずはどこまでできたのかコード教えて。
コード作成依頼はここじゃできないよ。>>1★5
923デフォルトの名無しさん:2013/07/29(月) 07:05:24.90
VBAわからないの?わからないなら目次用シートを作ってbook内にハイパーリンクすればいいよ。

シートの追加・更新・対象年月日とかを併記すれば一発だよ。
全部のシートに目次用シートへのハイパーリンクを置けばよりいいでしょう。

もっと言うとシート名を年月日とかにして概要はシートのどこかに書けばいいよ。
エクセルの検索機能を使えば当初の目的も果たせるようになるだろうし。

とりあえずそのbookを作った人にきれいに構造化しろよバーカって言っていいよ。
924デフォルトの名無しさん:2013/07/29(月) 22:14:28.70
一応出来たので

入力ダイアグラムで検索文字列を入力

ブック内のシート名を順に抽出

シート名から文字列検索

該当があったらMSGボックス表示とシートのアクチベート

MSGボックスのOKボタンで次を検索

ここまで出来たんだけど該当シートをアクチベートしたところで一旦停止して
つまりMSGボックスではなく、シートが操作できる状態にする
その後、シート内を確認して
検索再開して次のーシートを検索

この部分はどうやったらいいのかな?
925デフォルトの名無しさん:2013/07/29(月) 22:19:26.00
エクセルを捨てよ
さすれば道は開かれん
926デフォルトの名無しさん:2013/07/29(月) 23:24:25.93
>>924
入力ダイアグラムってなんのことだ? InputBox? まあ、それは置いといて
一旦停止して「シートが操作できる状態」を実現したいのならユーザーフォームをモードレスで
使うことを検討してみたらどうかな
またはSheets(1)をコントロールを張り付けた操作専用シートにして常に表示しておくとか
927デフォルトの名無しさん:2013/07/30(火) 00:21:11.78
ダイアログのことだと思う
928デフォルトの名無しさん:2013/07/30(火) 01:25:06.12
バイアグラのことだと思う
929デフォルトの名無しさん:2013/07/30(火) 01:59:51.86
>>924
検索ワードをスタティックで保持しといて
msgboxはOK、キャンセルで分ければ

マクロのショートカットキー登録か
専用のボタンをシートに作るかツールバーに作るか
930デフォルトの名無しさん:2013/07/30(火) 12:38:49.90
>>921
・検索用シートを別に作って、検索用ワードを入れるセルとマクロのボタンを用意
・他の全シートに、検索用シートへのリンクを用意 (セル・ボタンなど)
・ボタンを押すと、全シート名を検索して、該当するシート名をリンク付きで表示 <- マクロ作るのここだけ
・該当シートに行って内容を確認 〜 違ってたら検索用シートに戻る、を繰り返す

でどう?
931デフォルトの名無しさん:2013/07/30(火) 12:41:38.19
>>924
ActiveSheet.Index + 1から検索すればいい
932デフォルトの名無しさん:2013/07/31(水) 15:01:09.99
Public Type complex
x 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です。
933デフォルトの名無しさん:2013/07/31(水) 16:06:41.47
>>932
excel2002では普通に動くけど。
Cmulをコールしているコードはなんて書いてあるのかな?
934デフォルトの名無しさん:2013/07/31(水) 16:55:00.13
>>932
Cmul()に渡す方の引数を定義するときに型を明示する。
Dim c1 as complex
Dim c2 as complex
935932:2013/07/31(水) 16:59:59.16
>>933-934
レスありがとうございます。
動かなかった原因はそこじゃなくて
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
みたいな感じで宣言すれば大丈夫でした。
変数の宣言ってまとめるとダメなんですね。
936デフォルトの名無しさん:2013/07/31(水) 17:59:53.40
>>935
型は変数1個ごとに書く
Public a As Complex, b As Complex, c As Complex
なら大丈夫
937932:2013/08/01(木) 00:15:41.32
>>936
ありがとうございます。
そうやって書くんですね。
938デフォルトの名無しさん:2013/08/01(木) 19:31:48.28
age
939デフォルトの名無しさん:2013/08/05(月) 22:31:38.59
WINXPsp3 エクセル2007です
エクセルVBAでOSの操作って出来ますか?
やりたいのは

「タスクバーを固定する」を解除
タスクバーの高さが1倍の時は2倍に、2倍の時は1倍にする
タスクバーを固定する

です
検索してもエクセル自身の設定を変更するマクロしか出てこないんです
940デフォルトの名無しさん:2013/08/05(月) 23:18:27.65
VBAでもWin32API呼び出せるみたいだから
できるんじゃないかな
941デフォルトの名無しさん:2013/08/05(月) 23:26:07.13
>>939
VBA:Visual Basic for Applications   Excel VBA : Excel用のVisual Basic(VB6)
よってVB6でできることはほとんどできる(そのままコピペではだめな部分も多いがたいてい抜け道はある)
タスクバー・・・Win32 API を駆使することになると思うので限りなくスレチに近い。
「VB6 タスクバー 高さ 取得」あたりでググれ。
942939:2013/08/05(月) 23:27:33.31
>>940>>941
こら、そこまで教えてくれるなら最後まで教えれ。
943デフォルトの名無しさん:2013/08/05(月) 23:34:27.72
>>942
VBAからWin32APIを呼ぶ方法はググればすぐ見つかるだろう

そのうえでWin32APIに関する質問はこっちのスレだな
http://toro.2ch.net/test/read.cgi/tech/1373671389/
944デフォルトの名無しさん:2013/08/05(月) 23:34:56.12
>>940>>941
教えてもらった言葉で検索してみます
942は自分じゃ無いです
945デフォルトの名無しさん:2013/08/06(火) 10:28:06.59
安達祐実がヌードになりましたが中途半端。
あそこまでやるならマンコやケツの穴まで見せるべきでは?
VBAでなんとかなりませんか?
946デフォルトの名無しさん:2013/08/08(木) 03:44:19.08
スクロールバーを操作するとリンクセルの数値が変化しますが
操作と同時にその数値を使ってマクロで計算をさせたいのですが

スクロールバー操作→連動してマクロ実行
ってどうやればいいですか?
947デフォルトの名無しさん:2013/08/08(木) 03:49:26.26
自己解決しました、すんまそん
948デフォルトの名無しさん:2013/08/09(金) 00:00:27.26
stconv関数で、数列を標準→数値にする方法はありますか?
949デフォルトの名無しさん:2013/08/09(金) 00:23:57.82
OSはWindowsXP、Excel2003です。

セルの文頭に「'」(シングルクォーテーション)がある場合、
データとしては「'」が見えるのに、
表示自体はされないってことがあるかと思います。
例)
データ:'○○○〜
表示:○○○〜

VBAでこの「'」があるかどうかを判断したいのですが、
表示されたデータを取得する方法しかわからず困っています。

文頭に「'」がついているかどうか判断する方法はありますでしょうか?
950デフォルトの名無しさん:2013/08/09(金) 00:45:59.33
VBAを使ってモザイク図を作れるようになりたいのですが、
何からはじめればよいでしょうか?
ソースから勉強した方が早いでしょうか?
951デフォルトの名無しさん:2013/08/09(金) 01:10:19.85
>>949
Range.PrefixCharacter
952デフォルトの名無しさん:2013/08/09(金) 01:16:57.81
>>951
ありがとうございます!
おー、なんてこった!
数日悩んでいたのにあっさり解決するとは!

シングルクォーテーションではなく、接頭辞で検索すればすぐ出てきたみたいですね。
検索の仕方が悪かったみたいです。

ともかくありがとうございます。
953デフォルトの名無しさん:2013/08/10(土) 22:24:42.36
IE10へのupdateに伴ってIEがきちんとしたタイミングでBusyを返さなくなった(と思う)。
突然全てのプログラムでエラーが出現。

vbaでIE呼出

ページ読み込み(URLへ飛ばし)

vbaでフォーム入力(ラジオボタンクリックでも)の箇所でエラー

ページ読み込みの後ウェイトをかけると解決するという特徴から
恐らくIEがページを読み込みきれていない


自動update辛い …
954片山博文MZパンク ◆0lBZNi.Q7evd :2013/08/11(日) 02:06:31.77
>>950
画像処理。各区間の画素を平均化して塗りつぶす
955デフォルトの名無しさん:2013/08/11(日) 09:17:48.72
>>953
なんでそれをここのスレに書こうと思ったんだろ
956デフォルトの名無しさん:2013/08/11(日) 12:50:19.27
>>953

Dim 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


これでも、アカンか?
957デフォルトの名無しさん:2013/08/11(日) 13:51:47.84
>>953
そうなるだろうからIEとか全力拒否&責任が及ばないように予防線張るでしょ
普通の人なら
958デフォルトの名無しさん:2013/08/11(日) 14:05:49.97
>>956
>>953はチラ裏だろ。これをどう見たら質問になるんだ?
959デフォルトの名無しさん:2013/08/11(日) 14:20:17.72
M$を少しでも信頼したら負け
960デフォルトの名無しさん:2013/08/12(月) 06:32:30.47
それでもAppleとかgoogleよりは信用できるけどな
叩かれて育っただけあって
961デフォルトの名無しさん:2013/08/12(月) 10:27:58.36
IE10は裏でキャッシュの整理をするようになった
タスマネ見てると窓を閉じたあとでも5秒から10秒ぐらいプロセスが動き続けてる
おかげでIEオブジェクトの生成のところで失敗する
962デフォルトの名無しさん:2013/08/12(月) 13:53:27.75
それは設定次第
IE5とか、たぶんもっと前のでもその機能あるよ
963デフォルトの名無しさん:2013/08/12(月) 22:17:06.38
画像のようなリストを、優先度順に並び替え、かつチェックが付いたものは一番下になるようなVBAを組める方はいますか。
新しいタスクを下に追加してもマクロを実行すればしっかり並び替えされるようにしたいのですがよろしくお願いします。

http://uproda.2ch-library.com/692439D0T/lib692439.png

OS:win7 64bit
Excel2010
964デフォルトの名無しさん:2013/08/12(月) 22:30:03.99
>>963
1500円でやってもいいよ
965デフォルトの名無しさん:2013/08/12(月) 22:31:58.54
テンプレ読め

優先度でソートをマクロ記録すればできるだろ
966デフォルトの名無しさん:2013/08/12(月) 22:49:46.95
「考え中」にクスっとした
967デフォルトの名無しさん:2013/08/13(火) 01:34:56.18
IE6とか使ってる情弱まだいるのか
968デフォルトの名無しさん:2013/08/13(火) 01:40:49.47
「情弱」「誰得」「ステマ」みたいなキモい言葉を使うな。
969デフォルトの名無しさん:2013/08/13(火) 02:29:36.91
IE6じゃないと動かないシステムがまだ多いから仕方ない
大きな企業ならなおさらその傾向にあるから
>>967はニートか学生か底辺サラリーマンなんだろうと思うよ
970デフォルトの名無しさん:2013/08/13(火) 02:43:28.16
>>963
VBAを組むってレベルじゃないだろ
表の下限を調べて範囲指定してソートで終わり
971デフォルトの名無しさん:2013/08/13(火) 02:43:59.77
972デフォルトの名無しさん:2013/08/13(火) 02:46:10.01
>>967
情弱死ね!!
973デフォルトの名無しさん:2013/08/13(火) 04:55:09.66
>>967
使ってるというか、環境としては用意してあるよ
Win98やExcel95もね
作った物を売る前には、相手先と同じバージョンでの動作確認は必須だから
974デフォルトの名無しさん:2013/08/13(火) 06:01:42.62
過去の資産にしがみつくと結局高くつくんだよな
なぜ連中はわからないのか
975デフォルトの名無しさん:2013/08/13(火) 06:03:47.35
> 過去の資産にしがみつくと結局高くつく
が間違いだと知っているからだよ

個人と企業では違うからな
まあ限度はあるけどね
976デフォルトの名無しさん:2013/08/13(火) 06:16:20.39
企業レベルの話じゃなくて国レベルの話ね
お偉いさんがケチケチしてエンジニアに古いシステムの保守ばかりさせるから新人が育たない
977デフォルトの名無しさん:2013/08/13(火) 06:18:34.70
それも勘違いだけどね
978デフォルトの名無しさん:2013/08/13(火) 09:42:22.71
・IE10で所定のwebページを開く
・所定のダウンロード用ボタンをクリックする ←ここまではExcelVBAでわりと簡単にできる

・画面の下の方に 「ファイルを開く」「保存▼」「キャンセル」 の選択が出る
・「保存▼」の▼を押して「名前を付けて保存」をクリックする ←ここをExcelVBAでやる方法がわからない

IE6だったらsendkeyとかでサクッとできてしまうんだろうけど
IE10だとググっても「無理」とか「面倒」とか「VBAを使うな」とか出てきて有効な方法がよくわかりません。
どうやったらよいとか、何を調べたらよいとか、なにかアドバイスはありますでしょうか?
979デフォルトの名無しさん:2013/08/13(火) 10:43:51.87
直接HTTPでgetしろよ
980デフォルトの名無しさん:2013/08/13(火) 10:59:36.28
直接HTTPではgetできないファイルなんです
981デフォルトの名無しさん:2013/08/13(火) 11:01:03.33
フィルターがかかったり非表示のため、見えないセルがある領域から
同じくフィルターがかかったり非表示のため、見えないセルがある領域へ
値をコピーするためのコードを教えてケロ。
982981:2013/08/13(火) 11:01:41.85
当然、見えないセルの値はそのまま変更しちゃダメ。
983デフォルトの名無しさん:2013/08/13(火) 11:54:12.52
>>980
ftpか?なら、直接ftpでダウンロードしろよ
984デフォルトの名無しさん:2013/08/13(火) 11:56:41.41
>>981
ググレカス
985981:2013/08/13(火) 12:06:05.74
>>984
こら、ちゃんと答えろ
986978:2013/08/13(火) 12:10:44.98
>>983
直接ダウンロードも試みましたが、以下のいずれかのパターンで今のところ出来ていません。
何かやりようがあるのかも知れませんが。

・ログイン認証が必要なサイトなので、直接ダウンロードしようとしても
なんらかのガードがかかっているようで、ダウンロードされないパターン。
(ログイン認証が不要なサイトでは、同様のコードで直接ダウンロードに
成功してるので、サイト側のガードの問題かと)

・そもそも直接ダウンロードするためのURLが不明で、ソースにもなく、
探れないパターン。
987デフォルトの名無しさん:2013/08/13(火) 12:46:21.31
>>986
やりようがなきゃブラウザでダウンロードできるわけ無いだろ
ちょっとは頭使えよ
988978:2013/08/13(火) 12:55:56.75
>>978に書いた手順で、ブラウザ上で手動ではダウンロード出来ますよね。
それをどうやってVBAで行えばいいのか・・・

具体的に、どのように頭を使えばいいんでしょうか?
989デフォルトの名無しさん:2013/08/13(火) 13:16:12.00
>>988
まず、ブラウザがどうやってダウンロードしてるか調べろよ
990978:2013/08/13(火) 13:18:31.39
ごめんなさい、どうやって調べればいいですか?
ググるヒントとかもらえますか?
991デフォルトの名無しさん:2013/08/13(火) 13:21:13.67
Firefox -> Firebug
Chrome -> デベロッパーツール
992デフォルトの名無しさん:2013/08/13(火) 13:22:33.73
Firefoxは素の開発ツールでもいけるか
993978:2013/08/13(火) 13:27:35.03
ありがとうございます。ちょっとあれこれ読んでみます。

ちなみに、ブラウザ上で普通にダウンロードボタンを見ても、そのボタン画像のURLぐらいしか分からないですよね?
>>989の書き方だと、公開されている普通のwebページからftpサーバ名なりを探るノウハウがありそうに読めたのですが、
この理解は見当違いですか? 見当違いだったらすみません。
994デフォルトの名無しさん:2013/08/13(火) 13:48:55.03
>>993
WebProg板で具体的なURLを示して、コードでダウンロードを実行できるか聞いてこい。
既にスレ違いだ。
995978:2013/08/13(火) 13:51:04.10
いろいろありがとうございます。

そもそも発端はVBAに関する質問だったので、引き続き>>978についてもお願いします。
996デフォルトの名無しさん:2013/08/13(火) 14:00:46.60
>>995
>>1
> ★4 とりあえず、Excelのインスタンスを作らずにVB6で出来ることは全てスレ違いだと思ってください。
997978:2013/08/13(火) 14:02:56.55
了解です。
つい、スレの流れにつられて書き込んじゃってました。完全スレ違いでごめんなさい。
スレ違いにも関わらず相手して頂いてありがとうございました。
998デフォルトの名無しさん:2013/08/13(火) 14:23:32.96
999デフォルトの名無しさん:2013/08/13(火) 15:05:48.43
ume
1000デフォルトの名無しさん:2013/08/13(火) 15:06:20.03
1000
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。