Excel VBA 質問スレ Part32

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

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

前スレ
Excel VBA 質問スレ Part31
http://toro.2ch.net/test/read.cgi/tech/1376371376/
2デフォルトの名無しさん:2013/10/07(月) 22:26:29.84
コード作成依頼スレです。
3デフォルトの名無しさん:2013/10/07(月) 23:08:13.60
似たようなスレ立てんなや
4デフォルトの名無しさん:2013/10/08(火) 06:01:04.93
このスレッドは天才チンパンジー「アイちゃん」が
言語訓練のために立てたものです。

アイと研究員とのやり取りに利用するスレッドなので、
関係者以外は書きこまないで下さい。

                  京都大学霊長類研究所
5デフォルトの名無しさん:2013/10/08(火) 06:04:33.40
>>2
ちがいます。ここは質問スレです。
依頼だなんだというくだらない論争をやめましょうよ。
6デフォルトの名無しさん:2013/10/08(火) 06:34:13.56
>>5
ここはコード作成依頼スレです。
>>1の「俺たちに任せろ」はこのスレのルールです。
回答者はコード作成にきちんとケツを持ちます。

本スレ
http://toro.2ch.net/test/read.cgi/tech/1381151995/
7デフォルトの名無しさん:2013/10/08(火) 06:53:07.94
>>6
そんなこと言ってません。
勝手なこといわないでください。あなたはご自分のスレからでてこないでくださいよ。
8デフォルトの名無しさん:2013/10/08(火) 07:13:03.28
>>7
>>1の「俺たちに任せろ」は嘘ってことか?
俺たちに任せろと言っておきながら、コード作成にケツ持ちませんなんて無責任なことを言おうとしてるのかな?
9デフォルトの名無しさん:2013/10/08(火) 07:17:15.12
>>8
なんでよそのスレに口出すのですか。スレちがうんだから干渉しないでくれませんか。
書いてあることそれいじょうでもいかでもありませんよ。
10デフォルトの名無しさん:2013/10/08(火) 07:18:05.47
新しくスレ立てて勝手にやれみたいなことを言っといて
その新しいスレを荒らしに来るんだから立派だよね
11デフォルトの名無しさん:2013/10/08(火) 07:20:42.01
>>9-10
そういうことを言うからには本スレには来ないっていう宣言でいいのかな?
12デフォルトの名無しさん:2013/10/08(火) 17:41:52.61
>>9
http://toro.2ch.net/test/read.cgi/tech/1381151995/5,7

7のような奴がいる限り、俺じゃなくても誰かがこのスレに書き込むと思うよ。
13デフォルトの名無しさん:2013/10/14(月) 13:33:21.41
★★★★★★★★
★ 俺たちの掟 ★
★★★★★★★★
1.ループカウンタ含め一文字変数は絶対使いません。
2.変数名、プロシージャ名等の名称は適切な名前を付けます。
3.ByRef、ByValは省略しません。
4.最低限のコメントは必ず入れます。
5.エスパーコードは書きません。
6.書いたコードは最後までケツを持ちます。
7.掟に背いたら二度とコードで回答しません。
14デフォルトの名無しさん:2013/10/14(月) 17:29:16.12
>>13
ケツを持ちますという言い回しから察するにもうひとつのスレを建てたひとですよね。
再三いいますがスレが違うんだから干渉しないでくださいよ。勝手なルールを持ち込まないでください。
あなたの身勝手なルールとあなたとのくだらない論争がいやだからこのスレを建てたんです。出てってください。
15デフォルトの名無しさん:2013/10/14(月) 18:09:42.69
じゃ★5のこともあるし、次スレに>>964を誘導しておくか

次スレ
Excel VBA 質問スレ Part32
http://toro.2ch.net/test/read.cgi/tech/1381151717/
16デフォルトの名無しさん:2013/10/14(月) 18:11:26.69
すまん誤爆
17デフォルトの名無しさん:2013/10/14(月) 18:33:17.64
結局ここに落ち着いたのか
18デフォルトの名無しさん:2013/10/15(火) 06:29:16.54
ここが次スレか。
グダグダなテンプレが全て取っ払われてすっきりしたな。
19デフォルトの名無しさん:2013/10/15(火) 07:18:50.28
質問です。
VB.Netで使おうと思っているのですが、
一々セルに値を設定するコードを書かなくても、アクティブレポートやクリスタルレポートの様に
一度テンプレートを作ってしまえばデータから一覧をEXCELで作ってくれる
ツール?DLLファイル?があったと思うんですけど名前を忘れてしまいました。
誰かご存知の方はいらっしゃいませんか?
20デフォルトの名無しさん:2013/10/15(火) 07:27:36.48
前スレ
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/
29 http://toro.2ch.net/test/read.cgi/tech/1364689772/
30 http://toro.2ch.net/test/read.cgi/tech/1370088822/
21デフォルトの名無しさん:2013/10/15(火) 07:27:49.65
ここはコード作成依頼スレです。

本スレ
http://toro.2ch.net/test/read.cgi/tech/1381151995/
22デフォルトの名無しさん:2013/10/15(火) 07:33:21.33
>>21
テンプレのどこにも作成依頼スレとは書かれていないしここではテンプレが全て。
むこうは★5や、VB6で使えるオブジェクトのことは書いてはいけないことで
がんじがらめになったのが好きなドMな人用。
使い分けだよね。
23デフォルトの名無しさん:2013/10/15(火) 07:46:12.30
24デフォルトの名無しさん:2013/10/15(火) 08:04:15.55
>>23
それはテンプレじゃなくてただのレスだよね
25デフォルトの名無しさん:2013/10/15(火) 08:58:13.94
同じタイトルで分かり難い
分けるんだったらタイトル考えるべき
26デフォルトの名無しさん:2013/10/15(火) 09:02:15.90
うん、次スレ立てるときに考えよう
27デフォルトの名無しさん:2013/10/15(火) 09:50:25.65
という訳で、ここはコード許容スレ、
あっちはコード拒否スレと言う住み分けか。
スレタイにも作成依頼なんて一言も書いて無いし、
立てるならちゃんと別スレとしてスレタイにも書いて立てるべきだったな。
ここをコード作成依頼スレとするのはこのスレタイで立った時点でもう手遅れだ。
28デフォルトの名無しさん:2013/10/15(火) 16:13:00.41
http://toro.2ch.net/test/read.cgi/tech/1376371376/

↑から誘導されてきました964です

テーブルに小計を挿入しようと色々調べてみたんですがどうもテーブル状態だと
小計が挿入できないみたいなんで
上のURLを参考に
「"シート2"を開いたときに"シート1"にある"テーブル1"を"シート2"に
 テーブルじゃない状態で貼付け
 貼り付けた表を項目1項目2の優先順位でソートし項目3の小計を入れる」
っていうのをマクロでやりたいんですが
Private Sub Worksheet_Activate()

  Dim rngDat As Range
  Dim pvtTbl As PivotTable

  'データ範囲※
  Set rngDat = ThisWorkbook.Sheets("シート1") _
    .Range("テーブル1").CurrentRegion

このあと貼付けのとこからほとんどわからないんですがどう書いたらいいか誰かお願いします
ほとんど丸投げ状態の質問ですいません
29デフォルトの名無しさん:2013/10/15(火) 18:39:37.09
>>28
本当にソートされた小計を持つ一覧作成のトリガーはシート2を開いた時でいいの?
そうするとそのままだとシート2を開く度に一覧を作ろうとするけど。
30デフォルトの名無しさん:2013/10/15(火) 18:49:10.24
>>28
ちょっと待て。
なんか変数にPivotTable切ってあるけど、これは何に使うつもりだったんだ?
31デフォルトの名無しさん:2013/10/15(火) 18:57:53.89
コードで議論するんじゃなかったっけ?
32デフォルトの名無しさん:2013/10/15(火) 19:02:09.18
なに言ってんだこいつ
33デフォルトの名無しさん:2013/10/15(火) 19:21:16.41
>>31
荒らし専用オナニースレに帰れや

荒らし専用オナニースレ
http://toro.2ch.net/test/read.cgi/tech/1381151995/
3428:2013/10/15(火) 20:00:41.64
>>29
OKです
>>30
URLのマクロそのまま最初コピペしたようなもんなんでよけいなのはいってるかもです…
35デフォルトの名無しさん:2013/10/15(火) 23:35:37.21
>>34
あー、長ったらしくなるのと、シート側にも少し手を入れたんで
実際に作ったものをUPしたよ。

ここのアップローダーに置いといたんで
信用するなら自己責任でダウンロードしてくれ。
http://uproda.2ch-library.com/
ファイル:lib717689.xls
DLキー:1
36デフォルトの名無しさん:2013/10/16(水) 08:35:51.48
複数ある特定の文字を含まないシート名から、a1 ,b1,c1,b1…をSheet1に貼り付けする方法はありませんか?
 シート名取得はできたのですが不要なシートも取得してしまいます。 よろしくお願いします。
37デフォルトの名無しさん:2013/10/16(水) 09:36:19.92
dim targetworksheets as new collection
dim r
set r = CreateObject("VBScript.RegExp")
r.pattern = "[abc]" ' "[複数ある特定の文字]"
dim ws as worksheet
for each ws in worksheets
if not r.test(ws.name) then
targetworksheets.add ws
end if
next
38デフォルトの名無しさん:2013/10/16(水) 10:56:54.06
テキスト文から数字のみ取り出すマクロってありますか。例えば、以下のような文がある時、数字をセルに落としたいです。


高さ30mの位置から質量1.0kgの球を鉛直下向きに4.9m/sで投げ下ろした。

高さ=30
質量=1
初速度=4.9

のようにしたいのですが。
39デフォルトの名無しさん:2013/10/16(水) 11:36:35.08
>>38
1文字ずつ数字かどうか調べて欲しい部分だけ連結していくしかないです

For 〜 文章の文字数
If 〜 Mid 〜 数字、符号、小数点かどうか
Val 文字列を数値に変換
40720:2013/10/16(水) 11:40:30.58
前スレの720です。
報告が遅くなりすみません。
教えて頂いた方法を試してみましたが出来ませんでした。

>>722さんのですが、
対象となるチェックボックスがユーザーフォーム上では無く、
シート上にあります。
(チェックボックスはActiveXのものです)

for eachのところでシート上のチェックボックスを見るようにすれば出来そう、と思い
下記コードを作成してみました。

Dim c As Object

For Each c In Worksheets("Sheet1").OL EObjects

If c.Object.GroupName = "Group1" Then c.Value = False End If Next

しかし、「このプロパティまたはメソッドをサポートしていません」とエラーがでます。

どなたかどこがおかしいか教えて頂いけないでしょうか?

あと>>721さんの方法ですが、
上記のようにActiveXのコントロールを使用しているので
グループボックスがありませんでした…。
フォームコントロールを使用する機会があれば試してみます!

長文になってしまいすみません。
よろしくお願いします。
4136:2013/10/16(水) 11:42:27.02
>>37
ありがとうございます。
For Each ws in worksheetsで
実行時エラー 13
型が一致しません。
と帰って来ます。
42デフォルトの名無しさん:2013/10/16(水) 13:10:14.67
>>38
それ、仮に数字が取り出せたとして、それぞれの数字が何の数字なのかはどうやって判断するの?
43デフォルトの名無しさん:2013/10/16(水) 16:09:41.23
>>40
TypeName判断してるとこはどこにいったんだよ
あれが何をやってるか理解してないのか
44デフォルトの名無しさん:2013/10/16(水) 16:14:00.71
>>43
ぶつぶつ言ってないでさっさと作れってことだろ。
45デフォルトの名無しさん:2013/10/16(水) 18:23:41.06
>>44
いいからお前は向こうのスレから出てくんな
46デフォルトの名無しさん:2013/10/16(水) 19:14:19.07
>>41
For Each ws in ThisWorkbook.worksheets
47デフォルトの名無しさん:2013/10/16(水) 19:18:25.55
>>46
いいなぁ。正規表現って苦手なんだよなぁ。
48デフォルトの名無しさん:2013/10/16(水) 19:32:09.70
質問です。
上、下、左、右のキーでオートシェイプを移動させる処理を作っています。
ループを組んで移動させる様にしているのですが、
移動する度に画面更新の為、Do Eventsを呼んでいます。
そうすると、本来のEXCELの挙動であるカーソルの移動も行われてしまいます。
各キーが押された時、EXCEL本来の挙動はして欲しくありません。
バージョンは2010だとDo Eventsを呼ばなくてもうまく画面更新がされる様なのですが、
2003ではそうも行かないので、誰かご教示して頂ければありがたいです。
49デフォルトの名無しさん:2013/10/16(水) 19:43:22.60
>>42

指定したセルに落とせれば良いです
50デフォルトの名無しさん:2013/10/16(水) 19:51:43.82
>>49
いや、俺は>>42じゃないけど、多分言いたかった事は
文章から取り出した数字がいつも決まった順序やフォーマットなのか、
要するに規則性がなければ取り出した数字がどの項目に当てはまるのかを、
どうやって判断を付けるのかということなんじゃないかと思うよ。
51デフォルトの名無しさん:2013/10/16(水) 21:22:40.82
>>42 >>49

ある文字列を長い文の中から検索し、
その直後にある数字を拾いたいのです。


身長は高く、185cm、体重はその割に軽く70.5kg,年齢は30です。

この例ですと、体重という文字を入力すると70.1が帰ってくるようなマクロが欲しいのです。
52デフォルトの名無しさん:2013/10/16(水) 21:35:43.63
>>51
最初からそう書いて欲しかった…
それだと全然違うプログラムになるよ

あと70.1なんかどっから出てきた
53デフォルトの名無しさん:2013/10/16(水) 23:20:59.97
身長180cmで体重78Kg体脂肪19%ダイエット中のオレはどうすればいいんだ?
54デフォルトの名無しさん:2013/10/16(水) 23:36:05.56
70.1ってのは70.5のタイプミスだろうなぁ(しょーもない間違いが多いタイプ?
55デフォルトの名無しさん:2013/10/16(水) 23:48:38.11
>>51
これはねぇ・・・
もう少し細部に渡って要件をつめないと作るの難しいと思うよ。
例えば文章内に同じキーワードが2回出てきたらどうするのか、とか、
文字列の被るキーワード(例えば「体重」と「体重計」)みたいのは有るのか 、とか、
数字と見なすものの扱いで、カンマは数字の桁区切りとみなすか数字以外とみなすか、とか、
符合も例えばキーワードを「値段」とした時、もしこんな文章だったらどう扱うのか
「値段は個数×金額なので、10×50で500となる」とか、他にももろもろ。
56デフォルトの名無しさん:2013/10/17(木) 00:20:09.82
コンマの処理をどうするかも難題だな

「X,Yはそれぞれ100,200です」
「値段は1,200円です」

日本語の文法解析でもしないと区切りか位取りか区別できないべ
VBAでは不可能に近い
プロでも逃げ出すレベルの難問になる
57デフォルトの名無しさん:2013/10/17(木) 07:49:46.63
51です。ありがとうございます
万能なものがあれば有難いのですが
いま自分が求めるものはもっと簡単です。
検索文字は身長、体重、年齢のように違う文字です。文字重複はありません。
数字にカンマはありません。小数はあります。桁数は決まっていません。
検索文字と知りたい数字の間には、数字、ドットはありません。

A1に検索文字を入力 B1に出力
文はA10からA20に貼り付けます。
これでお願いします
58デフォルトの名無しさん:2013/10/17(木) 07:54:20.01
>検索文字と知りたい数字の間には、数字、ドットはありません。

間違ました。数字、ドットはありませんではなく、
ドットが単独で存在することはありません。
です。
59デフォルトの名無しさん:2013/10/17(木) 08:46:09.17
Vbaでstring文字列の圧縮ってできますか?
rest で文字列をpost するのに
圧縮してからpostしたいのですが
DeflateStream, GZip が使えないっぽいので
60デフォルトの名無しさん:2013/10/17(木) 09:05:58.77
できますよ
61デフォルトの名無しさん:2013/10/17(木) 09:09:46.83
62デフォルトの名無しさん:2013/10/17(木) 09:12:48.38
>>57
いや、まだ聞きたいことはある。
キーワードに対して必ず数字は存在するの?
後、符合は?特にマイナス。
6328:2013/10/17(木) 09:48:52.51
>>35
お礼が遅くなりました
ありがとうございます
まだ使ってみてなんですが明日使ってみます
64720:2013/10/17(木) 10:37:25.39
>>43
typenameの所ですが、すみません。
理解していませんでした。
調べて入れてみましたが、動きませんでした。。

私が書いたものを少し変えて、

Dim c As Object

For Each c In Worksheets("Sheet1").OL EObjects

If c.Name = "aaa" Then
c.object.Value = False
End If
Next

としたところ動作はしたのですが、これでは名前を取得しているので本来の目的のグループネーム毎に切替えるができません。

nameのところをgroup nameにするとまた「このプロパティまたはメソッドをサポートしていません」とエラーがでます。

チェックボックスではグループネームを取得出来ないのでしょうか?

何回もすみませんがどなたか分かる方よろしくお願いします。
65デフォルトの名無しさん:2013/10/17(木) 11:21:19.38
>>57
(1) 文字列をInstrで検索、それが判定のスタート位置になる
(2) Midで1文字ずつ判定して、数字が出てくるまで探す
(3) 数字、小数点以外が出てきたら終了

これだけ
66デフォルトの名無しさん:2013/10/17(木) 11:31:44.67
>>65
コード作成依頼スレなんだから作ってやればいいじゃん。
文章での回答を嫌ってる回答者が立てたスレなんだから。
67デフォルトの名無しさん:2013/10/17(木) 11:50:19.02
こんなんでいいか?

' 文字列sから単語wを探して、その直後の数値を返す
Function SearchNum(s, w)
  p = InStr(s, w)
  Do
    p = p + 1
  Loop Until Val(Mid(s, p)) Or p > Len(s)
  SearchNum = Val(Mid(s, p))
End Function
68デフォルトの名無しさん:2013/10/17(木) 13:21:57.54
>>61
どう使うんですか?
69デフォルトの名無しさん:2013/10/17(木) 15:11:33.35
回答している人はどこでどうやってEXCELやMacroを勉強したのでしょうか?
上司には「いずれ結果は出るだろうけど、歩みが遅すぎる。私のマクロを見て勉強しなさい。」
と言われました。
そんな上司のマクロはぐうの音も出ないものですが、Dimがないのとifが多くてさっぱりわかりませんでした。
70デフォルトの名無しさん:2013/10/17(木) 15:30:00.72
Option Explicitもないようなソースを作っておいて自分のマクロを見て勉強せよとは片腹痛い
71デフォルトの名無しさん:2013/10/17(木) 15:45:26.46
>>69
そういうコード作成依頼ではない質問は本スレへ。

Excel VBA 質問スレ Part32
http://toro.2ch.net/test/read.cgi/tech/1381151995/
72デフォルトの名無しさん:2013/10/17(木) 15:52:09.31
>>69
Dimが無い人の言うことは聞き流せばOKです。
73デフォルトの名無しさん:2013/10/17(木) 16:15:47.56
Dimがないとか欠点を指摘できてる時点でわからないふりしてるだけにしか見えない
性格悪い
74デフォルトの名無しさん:2013/10/17(木) 17:15:44.43
>>71
このスレはコード以外も許容している。
何度も言うが、お前はそのスレからこっち来るな。
75デフォルトの名無しさん:2013/10/17(木) 17:28:19.50
>>73
わたし処女なの
とか言いながら
玉なめしてくるような違和感ですね
わかります
76デフォルトの名無しさん:2013/10/17(木) 18:01:38.28
>>71がこのスレとあのスレを建てた確率99%
77デフォルトの名無しさん:2013/10/17(木) 18:17:59.59
ワークシート上で使いたいのですが、
条件を満たす文字列と一致する文字列を含む他のブック上のセルの位置を返す関数
を教えてください。
78デフォルトの名無しさん:2013/10/17(木) 18:18:30.48
>>76
いや、俺も最初そう思ってたけど、
このスレを立てたのは別人だろう。
最初の方のレスを見ると合点がいくはずだ。
しかも向こうは本スレと言い張っているが、
タイムスタンプを見てもこちらの方が立ったのが早い。
向こうのスレは削除依頼を出せば重複スレとして
さっくり削除されるレベルって事だ。
79デフォルトの名無しさん:2013/10/17(木) 18:30:47.58
>>78
本当にそうなら素直に感心する
80デフォルトの名無しさん:2013/10/17(木) 18:31:59.96
>>74
それはない。
勝手にスレタイを付けて、>>1に前スレとしてExcel VBA 質問スレ Part31を
記載してるだけのコード作成依頼スレでしょ。
もっと言えばこのスレに前スレなんてない。

このスレは今までのExcel VBA 質問スレの過去スレの趣旨と反している訳で本スレとは言えない。
本スレはこっち
Excel VBA 質問スレ Part32
http://toro.2ch.net/test/read.cgi/tech/1381151995/

今まできちんとしたテンプレがあったスレが、いきなりまともなテンプレもないスレになるなんてありえない。
しかもこのスレのこれまでの内容のほとんどは質問じゃなくてコード作成依頼だし。
コード作成依頼であれば何も言わないけど、>>69のような内容はこのスレの趣旨とは違う。
81デフォルトの名無しさん:2013/10/17(木) 18:41:48.88
>>80
消えろ
82デフォルトの名無しさん:2013/10/17(木) 19:13:34.47
推奨NGワード 「コード作成依頼」
83デフォルトの名無しさん:2013/10/17(木) 19:35:48.75
>>77
Find
84ピラフ:2013/10/17(木) 20:10:06.32
>>75
  /\___/\
/ ⌒   ⌒ ::: \
| (●), 、(●)、 |    / ̄ ̄ ̄ ̄ ̄
|  ,,ノ(、_, )ヽ、,,   |  < やるじゃん
|   ト‐=‐ァ'   .::::|    \_____
\  `ニニ´  .:::/
/`ー‐--‐‐―´´\
85デフォルトの名無しさん:2013/10/17(木) 20:17:10.66
>>64
Dim c As Object
For Each c In Worksheets("Sheet1").OLEObjects
If TypeName(c.Object) = "CheckBox" Then
If c.Object.GroupName = "Group1" Then
c.Object.Value = False
End If
End If
Next

>チェックボックスではグループネームを取得出来ないのでしょうか?
チェックボックスでは取得できるが、それ以外では取得できない(出来るやつもあるけど)
OLEObjectsにはチェックボックス以外も含まれてるから、それがチェックボックスかどうか判断してるのがIf TypeName の所
86デフォルトの名無しさん:2013/10/17(木) 20:25:52.60
>>80
お前の思い込みなんてどうでもいい。
こっちのスレとあっちのスレ、どっちを今後本スレとして使うのかはスレの住人が決めることだ。
87デフォルトの名無しさん:2013/10/17(木) 20:44:19.15
>>69
本読んだり仕事仲間に教わったりしてかな。
最初にいい仲間に恵まれると、こう組むといいよって色んな意見が聞けるから、成長も早いと思うよ。
いい仲間に恵まれないと、平気でOptionExplicit付けなかったり、本来クラス化したり関数化しなければ
いけない所を一直線にズラーっと書いていい感じにスパゲッティソースにしたり
それで威張って部下から煙たがられたりするよ。
88デフォルトの名無しさん:2013/10/17(木) 20:59:27.95
>>86
質問する場所はスレの住人じゃなくて質問者が決めること。
スレの住人なんておかしなことをいう奴だな。
89デフォルトの名無しさん:2013/10/17(木) 21:06:04.10
>>88
いい加減向こうの糞スレに帰れよ。
こっちはみんないい感じでやってるんだ。
自分の立てた糞スレで人に意見押し付けて好きなだけ暴れ回ってろ。
90デフォルトの名無しさん:2013/10/17(木) 21:08:46.74
いいんじゃない?
質問者はみんなこっち選んでるみたいだし
91デフォルトの名無しさん:2013/10/17(木) 21:12:45.42
自演臭いけどなw
92デフォルトの名無しさん:2013/10/17(木) 21:17:20.32
>>91
ここまで全部俺の自演でもいいから
とっとと自分の立てた糞スレに帰りなさい。
羨ましそうに荒らしに来ない様に。
93デフォルトの名無しさん:2013/10/17(木) 21:30:34.42
>>92
ということは、自演することで本スレかのように見せてるのか。
コード作成依頼の内容なら何も言わないけど、それ以外の質問なら本スレに誘導させてもらうよ。
94デフォルトの名無しさん:2013/10/17(木) 21:35:27.45
>>93
誘導する前に何か書き込まないとDat落ちするぞーw
95デフォルトの名無しさん:2013/10/17(木) 21:36:23.98
>>93
スレタイは「Excel VBA 質問スレ」だけど
質問者がこっちのスレがいいと判断して質問してる。
96デフォルトの名無しさん:2013/10/17(木) 21:43:54.06
>>95
>>92が自演してるって言ってるんだから自演でいいんじゃね?
97デフォルトの名無しさん:2013/10/17(木) 21:49:16.90
まー、いざとなったら削除依頼だせばいいんじゃない?
試しにこっちのスレの削除依頼出してみてこっちのスレとあっちのスレ
どっちが削除されるか少し興味ある。
98デフォルトの名無しさん:2013/10/17(木) 22:08:54.23
>>93
これ以上ウダウダ言うならむこうの糞スレ、削除依頼出させてもらうよ。

>>97
つガイドライン
99デフォルトの名無しさん:2013/10/17(木) 22:50:11.91
質問させて下さい。
複数のオートシェイプにマクロ登録をしているのですが、
結構数があるので別呼び先にすると〜_Clickの様なイベントだらけになってしまいます。
似た様な処理なので呼び先を一つに纏めたのですが、
その後どのボタンが押されたのかを判断したいです。
出来れば内部であまり分岐を増やしたくないので、
Senderのオブジェクトで判断するのではなく、オートシェイプに引数を持たせることは可能ですか?
100デフォルトの名無しさん:2013/10/17(木) 22:52:14.35
>>60,61
59です ありがとう
101デフォルトの名無しさん:2013/10/17(木) 23:00:43.76
>>98
削除されたらさっさとこのスレ埋め立てて、元の本スレを立てればいいだけの話。
102デフォルトの名無しさん:2013/10/17(木) 23:03:19.79
プッ
103デフォルトの名無しさん:2013/10/17(木) 23:10:17.27
>>99
そのためのSenderなのにどうして使おうとしない?
どうしてもシェイプごと固有のパラメータを渡したいならオブジェクト名を引数の代わりに使えばいい
104デフォルトの名無しさん:2013/10/17(木) 23:12:18.93
だぁれだよw次スレ立てちゃった奴w
まぁったくしょうがないなぁw

Excel VBA 質問スレ Part33
http://toro.2ch.net/test/read.cgi/tech/1382015080/
105デフォルトの名無しさん:2013/10/17(木) 23:17:13.66
>>103
引き渡したいパラメータがそこそこあるのと、ボタン数も結構あるので、
内部で分岐させるよりは直接内部の関数の引数として渡してやれればいいかなって思いました。
方法が無いのであれば、Senderを使うしか無いのですが・・・
106デフォルトの名無しさん:2013/10/17(木) 23:24:08.76
>>101
よし分かった。では次何かあったら容赦なく削除依頼出させて貰うことにする。
107デフォルトの名無しさん:2013/10/17(木) 23:35:45.34
>>106
ん?33立てたやつなのか既に削除依頼が出てるようだけど?

tech:プログラム技術[スレッド削除]
http://qb5.2ch.net/test/read.cgi/saku/1361686534/76

76 名前:必殺名無しさん[] 投稿日:2013/10/07(月) 23:50:52.73 HOST:adsl-2-4023.adsl.nsk.ne.jp
削除対象アドレス:
http://toro.2ch.net/test/read.cgi/tech/1380717627/
削除理由・詳細・その他:
5. 掲示板・スレッドの趣旨とは違う投稿
スレッド
その掲示板の趣旨に無関係なもの、多少関係があっても他にふさわしい掲示板があるもの(プログラマー板向け)

http://toro.2ch.net/test/read.cgi/tech/1379659616/
削除理由・詳細・その他:
4.投稿目的による削除対象
スレッド
全く情報価値の無いもの・真面目な議論や話し合いを目的としないもの・板の趣旨よりネタを優先するもの・客観的な意見を求めないもの

http://toro.2ch.net/test/read.cgi/tech/1381151995/
http://toro.2ch.net/test/read.cgi/tech/1381151717/
削除理由・詳細・その他
6. 連続投稿・重複
重複スレッド
108デフォルトの名無しさん:2013/10/17(木) 23:48:16.49
>>107
なんだ。俺が何もしなくても面白く思わなかった奴はいたみたいだな。
もっとも、あっちのスレはDat落ちを待つばかりで
このスレとは既に100レス差がついて、次スレにまで抜かれる始末だったしな。
結局、たった一人のワガママに誰も賛同しなかったのが顕著に出る結果になったな。
惨めでお粗末な最期だったな。
109デフォルトの名無しさん:2013/10/17(木) 23:48:53.89
>>105
意味が良くわからんな
ボタンを押すタイミングによってパラメータを変えたいってこと?

ボタンごとに固有の値を持たせたいだけならテーブル化しても手間はほとんど変わらんと思うが
110デフォルトの名無しさん:2013/10/17(木) 23:56:05.22
>>105
やり方は忘れたけど以前やったことがあるから出来るのは間違いないよ。
やり方思い出したらまた書くよ。
111デフォルトの名無しさん:2013/10/18(金) 00:04:26.06
>>67
ありがとうございました。
112デフォルトの名無しさん:2013/10/18(金) 00:32:23.02
>>105
http://peiyorin.cocolog-nifty.com/blog/2007/09/excel_vba_02bb.html

これはカスタムツールバーのボタンからだけど全く同じ方法で出来る。
ただし、数値でしか渡せない。
それと誰も言わないけど、そもそもオートシェープからマクロを
紐付ける際にSenderなんかないよ。

呼んだシェイプの名前を取得したければ
Dim hoge As String
hoge = Application.Caller
で取得できる。
113デフォルトの名無しさん:2013/10/18(金) 00:43:56.15
>>109
>>110
>>112
すみません。
VBのも組んでたんで混同してしまいました。
でもおかげで思うようなものがこれで作れます。ありがとうございました。
114デフォルトの名無しさん:2013/10/18(金) 02:21:09.57
>>67には致命的なバグがある
11528:2013/10/18(金) 15:51:43.07
>>35
コメント入りで丁寧なコードありがとうございます
このやりかたとは別に

シート1のテーブル1を元に
テーブル1をシート2にコピー → そのまま貼り付けたものを右クリックでテーブルを範囲に変換
並べ替えを押して項目1、項目2でソート
小計ボタンを押して グループ基準を項目2 集計の方法を合計 集計するフィールドを項目3
というのを今まで手動でやってました
この手動でやっていた作業そのままをマクロで出来ないものでしょうか?

また
テーブル1をシート3にコピー → そのまま貼り付けたものを右クリックでテーブルを範囲に変換
並べ替えを押して項目4、項目1でソート
小計ボタンを押して グループ基準を項目4 集計の方法を合計 集計するフィールドを項目3
という作業も追加できればありがたいです。

参考のファイルをアップします。
要は参考のファイルのシート1のテーブル1からマクロでシート2とシート3の様な結果ができればいいなと
わがままですいませんが何卒よろしくおねがいします

http://uproda.2ch-library.com/lib718468.xlsx.shtml
DLキー:1
116デフォルトの名無しさん:2013/10/18(金) 16:21:56.58
>>115
1万円でやってやるよ
117デフォルトの名無しさん:2013/10/18(金) 17:30:08.10
>>115
俺なら2万円でやる
ただし納期が>>116より短い
118デフォルトの名無しさん:2013/10/19(土) 03:18:23.98
>>115
えー、今ポケモン中なのに・・・
ま、いいや。でも気分で作ったり作らなかったりなんで
あまり宛てにはしないでね。

http://uproda.2ch-library.com/lib718673.xlsm.shtml
DLキー:1

前回はテキトーに作ったからコメント結構いれたけど、
今回はコメントは殆どなし。どの関数が何をやってるか位しか書いてない。
でもそれで解らなくなる様な長さの関数はホントは書いちゃいけないんだよね。
そのまま使うなり解析するなり好きなようにして下さい。

本当は>>69が言ってた上司に見てもらって、だいたい関数ひとつを何行くらいで
書くものなのか、分岐はどの位の比率で入るものなのかを見て欲しいなぁ。
119デフォルトの名無しさん:2013/10/20(日) 15:18:25.18
....................................................................................................
....................................................................................................
....................................................................................................
....................................................................................................
....................................................................................................
....................................................................................................
....................................................................................................
....................................................................................................
....................................................................................................
....................................................................................................
....................................................................................................
....................................................................................................
....................................................................................................
....................................................................................................
....................................................................................................
....................................................................................................
....................................................................................................
....................................................................................................
....................................................................................................
..................................
120デフォルトの名無しさん:2013/10/20(日) 15:20:46.73
..........................................................
..........................................................
..........................................................
..........................................................
..........................................................
..........................................................
..........................................................
..........................................................
..........................................................
..........................................................
..........................................................
..........................................................
..........................................................
..........................................................
..........................................................
..........................................................
..........................................................
..........................................................
..........................................................
..........................................................
..........................................................
..........................................................
..........................................................
..........................................................
..........................................................
..........................................................
..........................................................
..........................................................
..........................................................
..........................................................
..........................................................
..........................................................
121デフォルトの名無しさん:2013/10/20(日) 23:58:08.70
..........................................................
..........................................................
..........................................................
..........................................................
..........................................................
..........................................................
..........................................................
..........................................................
..........................................................
..........................................................
..........................................................
..........................................................
..........................................................
..........................................................
..........................................................
..........................................................
..........................................................
..........................................................
..........................................................
..........................................................
..........................................................
..........................................................
..........................................................
..........................................................
..........................................................
..........................................................
..........................................................
..........................................................
..........................................................
..........................................................
..........................................................
..........................................................
122デフォルトの名無しさん:2013/10/21(月) 16:57:48.28
Excel2010

シートに貼り付けたボタンについてですが、セルの幅を広げた時に一緒に伸びて
しまうのですけど、これって固定にすることは出来ませんか?
123デフォルトの名無しさん:2013/10/21(月) 17:37:08.83
>>122
さすがにそれはVBA関係ない。
124デフォルトの名無しさん:2013/10/21(月) 18:46:09.68
>>122
右クリック
コントロールの書式設定
プロパティ
125デフォルトの名無しさん:2013/10/21(月) 19:03:21.03
>>124
ありがとです
>>123
これってVBAに関係ないんですか?
126デフォルトの名無しさん:2013/10/22(火) 10:39:55.52
>>125
> これってVBAに関係ないんですか?

ないですね。
そして、お願いだから見当違いな反論して暴れないでね。
127デフォルトの名無しさん:2013/10/22(火) 20:30:25.05
会社の社内システムでデータベースを使っているのですが(まあ普通の会社なら同然なんらかのデータベースはあると思いますが)
Webベースで、なにか検索するにはHTMLのFORMを使ってアクセスしなければならず、不便でしかたがありません。

ExcelのVBAの力で、そのデータベースの全体のテーブルをExcelにインポートしたいのですが、どうやりますか?
128デフォルトの名無しさん:2013/10/22(火) 20:44:06.17
ADOとSQLを勉強すればよろしい
若しくは MSQueryあたりか
129127:2013/10/22(火) 20:47:29.34
>>128
ということはできるんですね!
すごい!

教えていただけませんか?
130デフォルトの名無しさん:2013/10/22(火) 21:00:42.59
>>127
その前にデータベースは何?
Oracle?
SqlServer?
いくら2007からシートの扱える行数が増えたからとはいえ
EXCELには行数制限があるし、重くなるからある程度以上の規模がある場合は余りお勧めしない。
ある程度以上の大きさがある場合はDBに接続して必要な分だけ絞り込みを掛けて表示したり、登録したり、更新したり
する様にした方がいいと思うよ。
131128:2013/10/22(火) 21:40:10.41
>>129
これを読んだだけでは絶対に使えるようにはならんけど、

Excelと外部データベースとを連携させる
http://www.atmarkit.co.jp/fwin2k/win2ktips/296exceldb/exceldb.html

辺りを見てそれから、"Excel データベース" でぐぐってどんなもんか見てみれ

俺は家でExcel+MySQL(というフリーのRDB)を使ってるけど。
132デフォルトの名無しさん:2013/10/22(火) 21:49:46.72
ぽすぐれもフリーだお
133デフォルトの名無しさん:2013/10/22(火) 21:51:12.87
会社のDBでエクスポートして
エクセルでインポする手もあるけど
これはVBAぢゃないね
134デフォルトの名無しさん:2013/10/22(火) 21:57:20.90
データベースプログラミング全般スレ
http://toro.2ch.net/test/read.cgi/tech/1097295557/

ついでにこれらを>>1テンプレに入れようぜ

スレ立てるまでもない質問はここで 129匹目
http://toro.2ch.net/test/read.cgi/tech/1380105820/

★初心者以前の質問に雪崩のように答えるスレ 2★
http://toro.2ch.net/test/read.cgi/tech/1381499572/

エスパーが質問に答えるスレ
http://toro.2ch.net/test/read.cgi/tech/1187922645/
135デフォルトの名無しさん:2013/10/22(火) 22:06:37.26
こんなやつにDBユーザ与えるとかどんな会社だよ…
136デフォルトの名無しさん:2013/10/22(火) 22:17:38.54
>>135
個人情報や社外秘情報の持ち出しを企でている音がしますね。
137デフォルトの名無しさん:2013/10/22(火) 22:19:48.31
>>127
>不便でしかたがありません。
なんか、ゴメン
138デフォルトの名無しさん:2013/10/22(火) 22:50:45.06
>>127
>Webベースで、なにか検索するにはHTMLのFORMを使ってアクセス…
ブラウザをVBAで操作したらどうかな、IEならば可能だけど。
現状のWEB操作を、VBAで自動化する方が効率良いのでは。
「VBA IE操作」等で検索すると、
「フォームへの入力」や「ボタンを押す」等沢山例題が有る。
139デフォルトの名無しさん:2013/10/22(火) 23:06:18.22
>>138
そうしますとUxxCの方が優秀ですし
140デフォルトの名無しさん:2013/10/22(火) 23:52:49.12
>>139
使いやすいのを使えばいいと思うよ
UccXで出来るなら、それでもいいと思う
VBAを使わずに、多言語でエクセルを操作している人もいるくらいだから
141デフォルトの名無しさん:2013/10/23(水) 04:52:50.49
最近のエクセルには、外部データの取り込みって機能があって、そこにWebクエリってのもあるんだぜ

まあ、VBAでどうやるかって言われれば、普通にそのDBに接続してデータ引っこ抜くだけだが
そのDBのクライアントがVBAで動くかどうかはしらんが
142デフォルトの名無しさん:2013/10/23(水) 14:39:09.55
質問させて頂きます。2003です。

コントロールツールボックスでオプションボタンを並べて配置し、
どのオプションボタンのValueがTrueになっているかブックを開いた時に取得したいのですが、
「オブジェクトが必要です(実行時エラー424)」とエラーが出て取得できません。

ThisWorkbookのOpen関数で、

Private Sub Workbook_Open()
’オプションボタン値取得関数呼び出し
OptBtn_Init
End Sub

標準モジュールで、

Sub OptBtn_Init()
どのオプションボタンがTrueになっているか判定
If OptBtn1.Value = True Then ← ここで「オブジェクトが必要です」エラー
SelFlg = 1
ElseIf OptBtn2.Value = True Then
SelFlg = 2
ElseIf OptBtn3.Value = True Then
SelFlg = 3
End If
End Sub

と言った具合です。オプションボタンのオブジェクト名をOptBtn1〜3としています。
何が悪いかご指摘頂ければ幸いです。
143デフォルトの名無しさん:2013/10/23(水) 15:08:52.67
>>142
If Sheets("Sheet1").OptBtn1.Value = True Then
どのシートに有るのかを入れましょう
144デフォルトの名無しさん:2013/10/23(水) 15:19:26.37
>>142
こっちが本スレ

Excel VBA 質問スレ Part32
http://toro.2ch.net/test/read.cgi/tech/1381151995/
145デフォルトの名無しさん:2013/10/23(水) 15:36:51.02
>>143
できました!ありがとうございます!何でこんな原始的な事ができないの??
とあまりにも初歩的過ぎるのかググっても判らず・・・本当に助かりましたm(__)m

>>144
こちらの板に初めて書き込みましたがスレが複数立っている様子で
その経緯も良く分からず・・・本スレ了解です。
146デフォルトの名無しさん:2013/10/23(水) 16:54:50.92
>>145
騙されないように、
>27 が良い表現をしている。
あっちはコード拒否スレ
147デフォルトの名無しさん:2013/10/23(水) 17:30:00.36
>>144
バカじゃねーの?w
148デフォルトの名無しさん:2013/10/23(水) 17:59:06.35
>>145
このスレはクレクレ君の為のコード作成依頼スレ。

>>146
そういう書き方をすると質問者がコードを書いちゃいけないような印象を受けるからやめてほしい。
質問者がコード書いて質問する分にはクレクレ君というわけではないから問題ない。
149デフォルトの名無しさん:2013/10/23(水) 18:06:40.86
>>148
ハウス!
150デフォルトの名無しさん:2013/10/23(水) 18:24:38.13
>>148
勝手に決めんな
151デフォルトの名無しさん:2013/10/23(水) 20:48:38.28
>>148
惨めだなぁおいw
誰か何か書き込んでやれよw
152デフォルトの名無しさん:2013/10/23(水) 21:06:36.51
>>151
書き込んだら延命させるからヤダ
153デフォルトの名無しさん:2013/10/24(木) 17:31:57.09
そっちの自称「本スレ」の人が来る前に今一度確認しておきたいんだけど、
このスレは向こうにあった有害なテンプレを排除しただけであって、
コードを書くことを強制されてるわけじゃないから
ケツを持つだの責任取るだのって話にはならないよね。

質問者がきちんとした自助努力を怠らない人だろうが
単なるクレクレだろうがそこは関係なく、
回答者が書きたいと思ったらコードを書く。
(向こうのテンプレはこれを禁止、もしくは制限している)

そういうスレ住人各自の自由裁量に基づいて
VBAにまつわる話題をあれやこれやするスレッドだよね?

クレクレがひどけりゃスルーすれば良いんだし、
質問者がクレクレでも
その回答のコードが見るべき価値のあるものなら
結果的に傍観者の益にもなるし、
どう考えてもこっちのが居心地いいじゃん。
154デフォルトの名無しさん:2013/10/24(木) 18:11:04.91
★5ガーとかクレクレ君ガーとかうるさかったしな。
155デフォルトの名無しさん:2013/10/24(木) 18:22:05.96
ああいうの一々騒がないでスルーしてれば
こんな風にならなかったのに馬鹿だよね
156デフォルトの名無しさん:2013/10/24(木) 18:23:33.79
>>153
スルーしないバカがいるから問題になるっていい加減何度言ったらわかるんだ?
コードで回答をする人間は今まで見ればわかるように見るべき価値なんてない。

お前の言っているようにできれば居心地いいと思うけど
餌を与えるバカがいる限り居心地は悪くなると思うよ。
157デフォルトの名無しさん:2013/10/24(木) 18:28:10.25
バカ見参
158デフォルトの名無しさん:2013/10/24(木) 18:29:45.46
最初はルール無くて途中からルールが出てきたんだろうから
ルール無くしても荒れるときは結局荒れると思う。
ルール無いんだったらやりたい放題なんだしw
159デフォルトの名無しさん:2013/10/24(木) 18:34:47.12
>>153
「本スレ」の人ご苦労様ですw
スルーしない人がコード書いても別に良いじゃん。
見るべき価値が有るか無いかも、
その評価は人それぞれでアンタ一人が決め付けるもんでもない。
第一、クレクレが居ても良いって人達がこのスレにいて、
スレは上手く回ってるしあんたの本スレには誰も来ない。
これが現実。
160159:2013/10/24(木) 18:35:55.93
アンカ間違えた
>>156だった
161デフォルトの名無しさん:2013/10/24(木) 18:55:12.51
>>159
まぁそう言うことだよね。
多分この人が新しいスレをまた立てたとしても、
また同じ結果になると思うよ。
162デフォルトの名無しさん:2013/10/24(木) 19:01:44.48
そろそろ荒らしに餌やるのやめない?
163デフォルトの名無しさん:2013/10/24(木) 19:10:38.33
>>159
> スルーしない人がコード書いても別に良いじゃん。

質問スレじゃなくなるから。
実質このスレの内容は殆どクレクレ君だし。

> その評価は人それぞれでアンタ一人が決め付けるもんでもない。

過去スレ見てないのかな。
かなりボロクソ叩かれてるんだけど。
それも偏見じゃなくて一般的に指摘されている内容で。

> スレは上手く回ってるしあんたの本スレには誰も来ない。

ほとんど自演&クレクレ君なのに上手くまわっているとはよく言うよ。
164159:2013/10/24(木) 19:14:40.48
>>162
ごめん、もう餌やらない
165デフォルトの名無しさん:2013/10/24(木) 19:41:24.21
もっと僕にかまってよ!!
166デフォルトの名無しさん:2013/10/24(木) 20:42:10.66
かまってよぼくのために
http://www.youtube.com/watch?v=cl6NXV73jSE
167デフォルトの名無しさん:2013/10/24(木) 20:48:44.43
>>166
お前いくつだ
168デフォルトの名無しさん:2013/10/24(木) 21:20:35.98
かまってよ、君のために〜
169デフォルトの名無しさん:2013/10/24(木) 23:59:30.00
さだまさしは、年齢に関係なくハマるよね
トークも面白い
170デフォルトの名無しさん:2013/10/25(金) 00:52:45.56
本当にまじめな質問ですよろしくお願いします

2003から2010に移行後、オートシェイプに登録していたマクロで、
散布図グラフの選択有無判定"If ActiveChart Is Nothing Then"が、常に"Nothing"と判定されるようになってしまいました
コードウィンドウから実行したり、コマンドボタンに割り当てると正常に判定できます
なんとかビューティフルなボタンに割り当てる方法は無いでしょうか?

※期限:明日の夕方頃まで
171デフォルトの名無しさん:2013/10/25(金) 01:05:22.43
おまえの態度が
172デフォルトの名無しさん:2013/10/25(金) 01:08:19.29
サーセン
「仕様です」で乗り切るコツでも良いですのでお願いします
173デフォルトの名無しさん:2013/10/25(金) 01:49:56.27
「はぁー仕様?仕様ってんならなんか目的があるんだろ?それを説明してくれよ!でなきゃ俺も上に説明なんてできねーよ!」
174デフォルトの名無しさん:2013/10/25(金) 02:12:10.35
>>170
へぇ、変な事象だね。
シートモジュール側にOnActionで設定してやっても駄目?
175デフォルトの名無しさん:2013/10/25(金) 04:16:36.92
>>174
ありがとうございます
明日試してみます
176デフォルトの名無しさん:2013/10/25(金) 04:20:21.08
>>170
コードで語り合うスレです。
お引き取りください。
177デフォルトの名無しさん:2013/10/25(金) 04:23:41.93
>>170
2007でもうまいことActiveChart捕まえられないっぽいな
つかシェイプをクリックした段階でグラフのアクティブ外れるのがホントじゃないのかとも思うが

とりあえずグラフをクリック(選択)したときに変数にでも放り込んでおけば?
選択解除どうするかって問題はあるが
グラフのActivate/Deactivateイベント使う手もあるだろうけど、埋め込みグラフだとちょっとめんどくさげ
まあ、どうやってグラフ書いてるかにもよるだろうけど
178デフォルトの名無しさん:2013/10/25(金) 04:43:50.94
>>172
サーセンとは?
サービスセンター?
179170:2013/10/25(金) 04:54:47.45
OnActionは使ったことが無かったのですが、こんな感じでいいのでしょうか?
自宅には2003しかないので、明日2010で試してみます

例:選択したグラフのプロットエリア幅増減
Const MyWidth = 5
Sub Auto_Open()
Worksheets(1).Shapes(1).OnAction = "PlotWidthMinus"
Worksheets(1).Shapes(2).OnAction = "PlotWidthPlus"
End Sub
Sub PlotWidthPlus() '右向き△
'Dim MyWidth As Single
'MyWidth = Worksheets(1).Range("L3").Value
If ActiveChart Is Nothing Then
MsgBox "グラフを選択してください"
Exit Sub
Else
ActiveChart.PlotArea.Width = ActiveChart.PlotArea.Width + MyWidth
End If
End Sub

つづく
180170:2013/10/25(金) 04:55:46.05
つづき

Sub PlotWidthMinus() '左向き△
'Dim MyWidth As Single
'MyWidth = Worksheets(1).Range("L3").Value
If ActiveChart Is Nothing Then
MsgBox "グラフを選択してください"
Exit Sub
Else
ActiveChart.PlotArea.Width = ActiveChart.PlotArea.Width - MyWidth
End If
End Sub

>177
やはりそうですか、情報ありがとうございます
昨日はSelectionをObjectにしてタイプ判定でつかめそうな感じはしたのですが、なにぶん手間がw

機能的にはコマンドボタンで何の問題も無いのですが、空しいです

>178
ごめんなさい
181nanashi:2013/10/25(金) 17:34:34.02
ExcelVBAの初心者なのでお願いします
シート1にはユーザーフォームを表示するボタン
ユーザーフォームの内容を表示させる
CSV形式で別シートにシート内容を表示させるボタンがあります
シート2には2行目からA〜Iまでにそれぞれ
月・日・時・分・かな・会社名・氏名・面会者・人数が記載されています

つづく
182nanashi:2013/10/25(金) 17:38:07.98
現在ユーザーフォームには テキスト1=年
コンボ1=月 コンボ2=日 コンボ3=時 コンボ4=分(15分毎)
コンボ5社名 コンボ6=氏名 コンボ7=人数 コンボ8=面会者が
入るように設定したいと考えています
一応時間までは正常に機能するのですが、社名、氏名、人数、面会者がコンボボックス
に表示されなくて困っていますのでどうか力を貸していただけませんか?

つづく
183nanashi:2013/10/25(金) 17:45:22.77
つづき

条件としてリストの時間と前後1時間のものを対象とし、かつひらがな1文字を
コンボボックスに入力してもらい、それと一致するものをそれぞれの指定のコンボ
ボックスにセットするようにし、氏名と、人数は表示されてから修正できる仕様に
したいと考えています
どうにかなりませんか?
184デフォルトの名無しさん:2013/10/25(金) 18:28:41.54
もうちょっと論点と仕様を整理したほうが良いですよ
たとえば、183で出てくる「リスト」って
どこにあるものなのか一切説明がないんですが。
185nanashi:2013/10/25(金) 19:10:21.55
論点から言うとソースを教えていただきたいと考えています
仕様はシート1にユーザーフォームを表示させるボタン
ユーザーフォームの内容を表示
シート1の内容をCSV形式で別シートに出力させるボタン
シート2には2行目からA〜Iまでにそれぞれ
月・日・時・分・かな・会社名・氏名・面会者・人数が記載されています
ユーザーフォームには テキスト1=年
コンボ1=月 コンボ2=日 コンボ3=時 コンボ4=分(15分毎)
コンボ5社名 コンボ6=氏名 コンボ7=人数 コンボ8=面会者が入る

つづく
186デフォルトの名無しさん:2013/10/25(金) 19:19:24.18
つづけ
187nanashi:2013/10/25(金) 19:21:32.71
表示条件なですがユーザーフォームの月・日・時(前後1時間を含む)
をシート2と比較し一致する、かつコンボ5に入力したひらがな1字が
シート2のかなと一致したら、コンボ5、6、7、8にシート2の一致した
社名、氏名、人数、面会者を表示させる
また、氏名と人数は修正ができるようにするです
188デフォルトの名無しさん:2013/10/25(金) 19:25:19.59
>>187
落ち着け
189デフォルトの名無しさん:2013/10/25(金) 19:32:46.44
>>187
どこまで出来てて、何が分からないんだ?
丸投げする気なら俺は知らんが、そうでないならこれ見て考えれ
Private Sub ComboBox5_Change()
Dim r As Long
Dim c As Range
If Len(ComboBox5.Text) <> 1 Then Exit Sub
ComboBox5.Clear
For r = 2 To Sheet2.Range("E2").End(xlDown).Row
Set c = Sheet2.Cells(r, "E")
If Left(c.Value, 1) = ComboBox5.Text Then
ComboBox5.AddItem c.Value
End If
Next
End Sub
190デフォルトの名無しさん:2013/10/25(金) 19:54:49.51
>>189
桃白?
191デフォルトの名無しさん:2013/10/25(金) 21:35:27.54
>>185
>シート1の内容をCSV形式で別シートに出力させるボタン

シート1の構成が全く分からん。
別シートにCSV形式で出力ってのも分からん。
CSVファイルとして別ファイルに出力するって訳でもなさそうだし
CSVの出力対象シートにボタンがくっ付いているとか本当に訳が分からんな。
192デフォルトの名無しさん:2013/10/25(金) 22:09:59.47
>>190
>丸投げする気なら俺は知らんが
どうみても別人だろ
193デフォルトの名無しさん:2013/10/25(金) 22:37:53.03
>>192
そうか。今時変数に1文字の名前付けるなんて桃白くらいかと思ってたんだが。
194定期統計資料:2013/10/25(金) 23:45:27.07
http://20m.ziploader.net/dl.phpx?id=ziploader1814
★zipファイルの「阪神無」フォルダー以下
「平成25年8月」の数値未発表で一部合計値比較不可能の為
 平成25年7月〜平成13年4月は以下の各駅を合計・増減から除外して再計算。
 「阪神」─「本線」─「阪神梅田」〜「千船」
 「阪神」─「なんば線」─「大阪難波」〜「出来島」
★zipファイルの「阪神有」フォルダー以下
 除外せず、「平成25年8月」の未発表数値を前年同月(平成24年8月)と同一と仮定

※「Hnn(年度)」…平成(nn-1)年4月〜平成nn年3月
※「中之島」「渡辺橋」「大江橋」「なにわ橋」…「H21」10月の[総数]は日割り(13/31日) 。
※「大阪難波」「桜川」「ドーム前」「九条」…「H21」3月の[総数]は日割り(12/31日) 。
※「総数」…「H18」の7月以降及び年度平均はOTS線を除いた数値となっている。

平成24年4月〜平成25年8月
http://www.city.osaka.lg.jp/toshikeikaku/page/0000020916.html
[2013年10月23日]
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
195デフォルトの名無しさん:2013/10/26(土) 02:34:22.14
>>193
今時変数が1文字で有る事だけを問題にする奴がいるとは思わんかったが

さて、ここから1文字変数は有りかなしかのループを再開するかね
196デフォルトの名無しさん:2013/10/26(土) 03:59:07.74
そういや前なんかそんなことで荒れてたね。
何かこんなの見っけたよ。

http://msdn.microsoft.com/ja-jp/library/aa291593.aspx#vxconcodingtechniquesanchor3

これはVisualStudio.Netのものだけど
VB.Netの元になっているVB6も、VB6と同じ文法のVBAも
当てはまりそうなんで載せとくよ。
197デフォルトの名無しさん:2013/10/26(土) 07:49:06.76
VBAスレで荒れるネタ
set オブジェクト = nothing
一文字変数
ソースクレクレ

他にどんなもんがあったっけ
198デフォルトの名無しさん:2013/10/26(土) 07:57:12.00
2Byte文字で変数定義
同じくメソッド名定義
199デフォルトの名無しさん:2013/10/26(土) 08:00:11.54
なっすぃんぐによるオブジエクト解放はなんで荒れるん
関数の終わりでの記述の必要性?不要ってことで決着ついたでしょ?
ループ処理内やグローバル変数などにおいて必要がある場合にのみ記述するって。
200デフォルトの名無しさん:2013/10/26(土) 08:06:26.62
ExcelVBAの次に
JavaやCやC++を経験しようと思うけど
これらのプログラミングにEditerってそれぞれそ何を使うの?

もちろんExcelVBAみたいに入力候補や、間違った命令を入力したときエラーとして教えてくれる機能は必須です。
201デフォルトの名無しさん:2013/10/26(土) 08:18:01.16
VisualStudio
202デフォルトの名無しさん:2013/10/26(土) 08:36:25.52
>>189
1文字変数だけだと思ってるようなら本当にダメだな。
変数名もまともに付けられない、マジックナンバーあり、インデントなしの糞コード乙。

>>187
>>189のコードは動くかもしれないけど参考にしちゃいけない糞コードw
203200:2013/10/26(土) 08:36:45.49
>>201それは他言語でしょう。
JavaやCやC++のEditerは何がいいですか?
204デフォルトの名無しさん:2013/10/26(土) 08:37:01.10
こんな短いコードなのに糞満載w
205デフォルトの名無しさん:2013/10/26(土) 08:38:52.39
>>193
インデント付けられないアホもいる見たい。
206デフォルトの名無しさん:2013/10/26(土) 08:40:34.93
2chブラウザだとインデントを付けていても投稿時に自動解除される
そんなことも知らない>>202はコード提供の経験もなさそうな口だけ野郎w
207デフォルトの名無しさん:2013/10/26(土) 08:40:42.81
>>189
ComboBox5ってなんだよw
質問者をバカにしてるとしか思えないコードだな。
208デフォルトの名無しさん:2013/10/26(土) 08:41:58.26
>>206
言い訳なんてどうでもいいからインデント付けろアホ。
インデントの付け方も分からないのにコード書くなよw
209デフォルトの名無しさん:2013/10/26(土) 08:45:13.51
自動解除の意味も理解できない叩き専門野郎が連投中につき注意
210デフォルトの名無しさん:2013/10/26(土) 08:49:37.08
>>197
荒らしてる人は一人なんだろうけどねw

>>202
>>204
>>205
>>208
これっていつものテンプレ厨?
211デフォルトの名無しさん:2013/10/26(土) 08:54:02.98
>>206
Sub Test()
 Dim Foo As Integer
End Sub
212デフォルトの名無しさん:2013/10/26(土) 09:01:08.98
JavaやCやC++のEditerは何がいいですか?
213デフォルトの名無しさん:2013/10/26(土) 09:04:26.62
>>206
>>211はインデントついているけど何か?
214デフォルトの名無しさん:2013/10/26(土) 09:07:28.41
>>211
Tabキーの代わりにスペースキーで頑張ったの?えらいねぇボク
ついでに>>189もぜんぶスペースキーでちまちまインデントして直しといてくれないかな
215デフォルトの名無しさん:2013/10/26(土) 09:14:51.23
>>200
VB.NetやC# はVBAとたいして変わらないからそんなに心配することはないよ。
プロパティウィンドウがデフォルトで左右逆になっているくらい。
インテリセンスについてはVBAより遥かに高機能だからこれも心配ない。
Javaは遠い昔Ecripseでちょっとだけ組んだことがあるけど、あれも大差なかった様な。よく覚えてないけどね。
216デフォルトの名無しさん:2013/10/26(土) 09:26:38.28
>>212
ああ、ゴメン、何のエデイタを使えばいいかって話ね。
やっぱりVisualStudioに用意されてるのが一番いいと思うよ。
とは言っても他は秀丸やサクラくらいしか知らないけどね。
JavaはEclipsしか知らないから分からないので他の人に聞いてください。
217デフォルトの名無しさん:2013/10/26(土) 09:28:34.16
>>216
C、C++でもEclipseは使える。
Java、C、C++を全部使うのならEclipsでいいと思うけど。
218デフォルトの名無しさん:2013/10/26(土) 09:39:35.22
おいいいいwww

プログラミング雑談スレ
http://toro.2ch.net/test/read.cgi/tech/1363792124/

いくりぷすとか仮想サーバー動かせるやつの方が後々ええんちゃうか
219デフォルトの名無しさん:2013/10/26(土) 09:45:39.89
>>214
糞コードに手を加えても糞コードにしかならないし止めておくよ。
目的を達成するのに構造やアルゴリズムとか考えるのに頑張るっていうのは分かるけど
コードを書くのに頑張るって力入れるとこ間違ってるなw
220デフォルトの名無しさん:2013/10/26(土) 09:52:50.25
桃白白 VS テンプレ厨

続きはこちらのスレでどうぞ
Excel VBA 質問スレ Part32
http://toro.2ch.net/test/read.cgi/tech/1381151995/
221デフォルトの名無しさん:2013/10/26(土) 09:54:50.27
ルールが無くても荒れてるね。
222デフォルトの名無しさん:2013/10/26(土) 10:01:06.05
>>221
基本ふっかけて荒らすのはテンプレ厨なので、
お前があの糞スレに引きこもってれば最初からなにも起きない。
223デフォルトの名無しさん:2013/10/26(土) 10:30:23.12
別にがんばらなくてもインデントぐらい付けられるんだが
コードは勝手に流用させてもらった

Private Sub ComboBox5_Change()
  Dim r As Long
  Dim c As Range
  If Len(ComboBox5.Text) <> 1 Then Exit Sub
  ComboBox5.Clear
  For r = 2 To Sheet2.Range("E2").End(xlDown).Row
    Set c = Sheet2.Cells(r, "E")
    If Left(c.Value, 1) = ComboBox5.Text Then
      ComboBox5.AddItem c.Value
    End If
  Next
End Sub
224デフォルトの名無しさん:2013/10/26(土) 10:37:30.64
>>223
インデント付けるなら直してやれよw
225デフォルトの名無しさん:2013/10/26(土) 12:00:50.83
コードに全角スペースw
226デフォルトの名無しさん:2013/10/26(土) 12:10:54.80
>>189
何故一文字変数にしたのか理由をききたい。
227デフォルトの名無しさん:2013/10/26(土) 12:29:13.07
半角連続スペースは消えるってそんな基本的なことまで理解できんのか釣りなのか
228デフォルトの名無しさん:2013/10/26(土) 12:48:26.96
>>227
インデントの付け方今日知ったみたいだからマジだと思う。
229デフォルトの名無しさん:2013/10/26(土) 12:50:53.50
全角スペースインデントwww
230デフォルトの名無しさん:2013/10/26(土) 13:46:49.31
>>229
ようやくわかったのか (w
231デフォルトの名無しさん:2013/10/26(土) 14:56:03.15
VAL("1個")は1が返ってきますが、VAL("第1")は0がかえってきます。
何故ですか?
232デフォルトの名無しさん:2013/10/26(土) 15:00:52.57
>>231
string VAL(const string& arg)
{
double d = 0;
sscanf(arg.c_str(), "%lf", &d);
char s[256];
sprintf(s, "%f", d);
return s;
}
233デフォルトの名無しさん:2013/10/26(土) 15:14:31.60
>>231
VAL関数は文字列の中に数字以外の文字が見つかれば文字の読み取りを中止する。
VAL関数は読み取った数字の数が0であれば0を返す。
文字列"第1"の最初の文字は数字以外の文字。
ゆえにVAL関数が読み取る数字の数は0。
ゆえにVAL関数は0を返す。
全部想像だがそんなには違ってないはず。
234デフォルトの名無しさん:2013/10/26(土) 15:19:09.34
>>232
また一文字変数か
235デフォルトの名無しさん:2013/10/26(土) 15:23:36.24
>>234
本スレでやろうか。

Excel VBA 質問スレ Part32
http://toro.2ch.net/test/read.cgi/tech/1381151995/
236デフォルトの名無しさん:2013/10/26(土) 15:31:45.81
>>232
そんなに一文字変数を使いたいのなら仮引数も一文字に統一しろよw
統一感全くなしw
書いてて恥ずかしくないのかな。
237デフォルトの名無しさん:2013/10/26(土) 15:36:59.17
以下、「一文字変数」をNGワード登録してあぼんすればよろし
238デフォルトの名無しさん:2013/10/26(土) 16:05:29.34
VBA初心者ですが
なにが追加されるかわからない段階の表を組むとき表の項目が沢山増えても困らないようにするために
表のわくの外に何セルぐら間を空けておくと良いのでしょうか?
とりあえず5セルで困った事があるので今回は10セルマージンを空けてみようかと思いますが。。
239デフォルトの名無しさん:2013/10/26(土) 16:42:35.91
んなもん、VBAに全っっっっっっっ然かんけーねー話
240デフォルトの名無しさん:2013/10/26(土) 17:29:44.57
>>233

>VAL関数は文字列の中に数字以外の文字が見つかれば文字の読み取りを中止する。

その関数意味なくないですか?
241デフォルトの名無しさん:2013/10/26(土) 17:33:03.17
>>240
意味がないというのはどういうこと?
242デフォルトの名無しさん:2013/10/26(土) 17:45:50.38
これはもの凄くいい例が出て来たな。
>>240
「VAL関数は」の後に「1文字ずつ値を取得し」の文が挿入されていれば理解出来るだろうか。
これは1文字変数にも通じる所があって、本人は分かっていて相手も分かると思っていても
実は相手は理解に至らないということがままあるということだ。
ましてや1文字変数など、その変数の意味を一見で理解するのはもっと困難だろう。
243デフォルトの名無しさん:2013/10/26(土) 17:53:43.11
>>237
「1文字変数」も追加で
244デフォルトの名無しさん:2013/10/26(土) 17:57:59.42
240です。
VAL関数は数字以外の文字と数字が混ざった文字列のなかから、数字のみを抽出する関数と思ってました。
間違ってますか?
それに対し、文字列に数字以外の文字があったら中止するという233さんの回答は矛盾してませんか?
245デフォルトの名無しさん:2013/10/26(土) 18:06:17.71
>>244
つEXCELヘルプ
246デフォルトの名無しさん:2013/10/26(土) 18:41:37.30
>>244
>VAL関数は数字以外の文字と数字が混ざった文字列のなかから、数字のみを抽出する関数と思ってました。
>間違ってますか?

間違ってないです。

>それに対し、文字列に数字以外の文字があったら中止するという233さんの回答は矛盾してませんか?

中止することが数字以外の文字が見つかるまでに読み取った数字を返さないことだとするならば僕の回答は矛盾します。
247デフォルトの名無しさん:2013/10/26(土) 18:50:55.38
>>246

>中止することが数字以外の文字が見つかるまでに読み取った数字を返さないことだとするならば僕の回答は矛盾します。

この文どういう意味ですか?私の理解力の問題ですか。
248デフォルトの名無しさん:2013/10/26(土) 18:54:17.20
いいからヘルプ読めよ
249デフォルトの名無しさん:2013/10/26(土) 19:05:32.90
釣りとしか思えない
250デフォルトの名無しさん:2013/10/26(土) 19:07:19.49
>>247
そのとおりです。
251デフォルトの名無しさん:2013/10/26(土) 19:08:35.54
俺は>>233じゃないけど
VAL関数って単に文字列を数値に変換するだけで、数値に変換できない文字列の扱いとか考えたことなかったわ
大昔のBASICだと変換できない文字があるとエラーだった気がするんだが
たしかに今のヘルプ見ると
>VAL関数は数字以外の文字と数字が混ざった文字列のなかから、数字のみを抽出する関数と思ってました。
こう考えるのも無理はないか
>>244,247
たしかに数字を抽出してるんだが、抽出条件がお前の希望通りではない
文字列の途中で中止しても、(それまでの)数字は出力するわけだから
抽出してる事には間違いないだろ
252デフォルトの名無しさん:2013/10/26(土) 19:08:45.06
>>236
変数の公開範囲を考えろバカか
253デフォルトの名無しさん:2013/10/26(土) 19:08:46.99
>>247
AがB、ならば、CはD。
という構造です。

ならばのまえを前件と呼び、
ならばのあとを後件と呼びます。

ならばは、前件を仮定して後件を結論します。

A(中止すること) が B(数字以外の文字が見つかるまでに読み取った数字を返さないことだとする)
ならば
C(僕の回答) は D(矛盾します)。

中止すること = 数字以外の文字が見つかるまでに読み取った数字を返さないこと
という仮定が正しければ
僕の回答は矛盾するってことです。
254デフォルトの名無しさん:2013/10/26(土) 19:10:27.91
>>244
> 文字列に数字以外の文字があったら中止する

ちゃんと読んでやれよ。
「読み込みを」中止するだぞ。
255デフォルトの名無しさん:2013/10/26(土) 19:13:16.79
>>253
文字列の「先頭から」”数字”とみなせる文字を抽出するといえばわかるのか?
256デフォルトの名無しさん:2013/10/26(土) 19:22:27.05
>>252
公開範囲考えるなら可読性も考えろよ。
関数が短いからと言っても処理を見るまで分からないものは可読性は低い。
1文字変数をよしとするとそれ以外の変数と混在させそう。
こうなると、作り手が何考えてるのか分からなくなる。
知らないうちにバグを埋め込むことになってるって意識ないんんだろうなぁ。

1文字変数だけじゃなくコメントなしっていうのも大いに問題があるんだが。
257デフォルトの名無しさん:2013/10/26(土) 19:26:14.14
向こうのスレにも書いたが1文字変数の件は>>196で既に結論がでている。
流石にマイクロソフトの推奨を無視して自分の意見を押し付ける奴はいないだろ。
258デフォルトの名無しさん:2013/10/26(土) 19:32:44.04
2ちゃんのスレに貼り付けるソースにまで文句つけるアスペわろすw
259デフォルトの名無しさん:2013/10/26(土) 19:34:42.56
>>257
書式を整えることは言ってるけど、一文字変数を推奨なんてしてない。
日本語読めんのか?w
260デフォルトの名無しさん:2013/10/26(土) 19:40:08.78
>>259
説明が悪かったかな。
その通り、1文字変数なんて一部を除いて推奨してなどしていない。
俺が言いたかったのはマイクロソフトの推奨しているコーディング技法には
1文字変数は使うなと書いてあると言いたかったんだ。
261デフォルトの名無しさん:2013/10/26(土) 20:01:07.83
ハンガリアンを推奨してたような会社だぞ
262デフォルトの名無しさん:2013/10/26(土) 20:10:47.08
>>261
そんな会社が作ったアプリケーションのスレな訳だが
263デフォルトの名無しさん:2013/10/26(土) 21:19:23.42
>>225
2chの仕様で行頭の半角スペースは消される
VBEにそのままコピペすると全角スペースは自動的に半角スペースに置換される
よって問題なし
264デフォルトの名無しさん:2013/10/26(土) 21:48:15.20
>>226
積極的に1文字以外の変数を使う理由がないから
あれはコードの分かりやすさを重視していない
あのコードでは変数名が1文字か長いかはコードを理解するためには大きな差ではなく
あのコードが1文字変数で有るがために読みとけないのでは
そもそもの技術力に問題があると考えてる
265デフォルトの名無しさん:2013/10/26(土) 22:08:00.69
なるほど。
多数の初心者が来るこのスレで
可読性そっちのけで相手の技術力だよりと言うことか。
余り威張って言えることではないな。
266デフォルトの名無しさん:2013/10/26(土) 22:22:21.71
で、>>232については可読性落ちてると言えるの?
267デフォルトの名無しさん:2013/10/26(土) 22:26:46.25
>>265
そのコードの長さ(行数)と、変数の個数、複雑さが問題と思う。
今回のは12行(Sub・End除けば10行)で、変数2個。
私も、この程度の量で、後に残さない試験程度ならば1文字変数を多用する。
268デフォルトの名無しさん:2013/10/26(土) 22:31:28.29
>>267
ネットに残してるわけだから1文字変数なんて使えないだろw
269デフォルトの名無しさん:2013/10/26(土) 22:32:19.71
>>265
丸投げ(するようなレベル)ならお断りだってことが
相手の技術力だよりってなら、まあまさにその通りだな
270デフォルトの名無しさん:2013/10/26(土) 22:33:12.31
これが1文字変数を使うな派の主張(>>268)である。
271デフォルトの名無しさん:2013/10/26(土) 22:36:26.53
>>265
あと言っておくが、理由を聞かれたから答えただけで、別に威張って言っているわけではないが
272デフォルトの名無しさん:2013/10/26(土) 22:40:34.17
>>267
言いたいことは分からなくもない。
だが初心者などはその様な背景を読み取れる訳もなく、
そのままそれを当たり前だと思ってしまう。
俺には1文字変数を使うなという強制力は全く無いが、
それはクソコードだと罵られるのは仕方のないことだとも同時に思っている。
273デフォルトの名無しさん:2013/10/26(土) 22:45:58.16
>>267
短いコードなら最初からきちんと作っても、適当に作るのとそんなに時間は変わらない。
何が問題なのかさっぱりなんだが。
っていうか可読性を無視してる時点でアセンブラでも使ってろと言いたい。
274デフォルトの名無しさん:2013/10/26(土) 22:46:35.21
私は二文字変数派。
A0、A1、A2...Z9と順番に使う。
名前を考える必要がないのでとても速い。
275デフォルトの名無しさん:2013/10/26(土) 22:48:17.72
変数名が短いだけでクソコード()
276デフォルトの名無しさん:2013/10/26(土) 22:49:19.87
一文字変数使ってるやつって、適切な変数名をつけるのに一時間とかかかるものなのか?
適切な変数名をつけられないヤツがまともなコード書けるとは思えないが。
277デフォルトの名無しさん:2013/10/26(土) 22:51:10.35
いや私は二文字変数派なんで。
一文字変数教団とは無関係です。
278デフォルトの名無しさん:2013/10/26(土) 22:52:59.92
ロングロングネーム党の本拠地はOracle州Javaシティですよね?
279デフォルトの名無しさん:2013/10/26(土) 22:54:43.21
適切に短い名前つけられないやつがコンパクトにまともなコード書けるとは思えないが。
280デフォルトの名無しさん:2013/10/26(土) 22:56:36.94
ロングネームを使うとコメントが不要。
281デフォルトの名無しさん:2013/10/26(土) 23:01:57.37
Dim ronguneemuwotukautokomentogahuyou As Integer
ronguneemuwotukautokomentogahuyou = 10

ほんとだ、10が何を意味するか丸わかりだ
282デフォルトの名無しさん:2013/10/26(土) 23:04:20.40
>>281
英語くらい使える様になれ。
それが無理ならせめて漢字で書いとけ。
283デフォルトの名無しさん:2013/10/26(土) 23:06:22.80
>>266に対するレスがないっていう
284デフォルトの名無しさん:2013/10/26(土) 23:14:36.23
>>276
1文字はどんなときでも適切じゃないと信じてるやつがまともなコード書けるとは思えんが
285デフォルトの名無しさん:2013/10/26(土) 23:15:48.12
>>283
ああ、あれね。
型の頭文字を変数名にしている時点で
答える気も失せた。
286デフォルトの名無しさん:2013/10/26(土) 23:21:50.09
1文字変数がダメっていうやつは、じゃあどんな変数名付ければいいんだ?
たとえば>>189>>232のコードならどんな変数名が良いか具体例で教えてくれよ
287デフォルトの名無しさん:2013/10/26(土) 23:24:28.02
>>286
今更何言ってんだ?w
288デフォルトの名無しさん:2013/10/26(土) 23:25:58.99
val_1、val_2、val_3と順番に。
289デフォルトの名無しさん:2013/10/26(土) 23:26:23.14
>>287
そうやって答えられないのを誤魔化すわけですね
290デフォルトの名無しさん:2013/10/26(土) 23:27:01.70
>型の頭文字を変数名にしている時点で
どうせtempDoubleValueとか付けるんだろそれなら同じだろ
可読性はどうなんだって聞かれてるのに話そらすとことか見てられない
291デフォルトの名無しさん:2013/10/26(土) 23:29:09.34
C++でハンガリアン使うと、命名に悩んでたことに気付かされる。
日本語名を解禁すると、日本人グレートプログラマが生まれるかもしれない。
そんなことすら考えてしまう吉宗であった。
292デフォルトの名無しさん:2013/10/26(土) 23:29:18.88
同じ原因の討論を2つのスレでやってる。
向こうはここの引用が多いが、アンカー意味為さないし。
両方見るのは疲れるなぁ。
293デフォルトの名無しさん:2013/10/26(土) 23:30:30.31
>>289
>>189であれば、rの意味するもの、cの意味する適切な名前をつければいいだけだと思うが。
糞コード読む気にもならないから何を意味するものか知らんから書けないw
294デフォルトの名無しさん:2013/10/26(土) 23:31:36.97
>>288
複数文字でも適切じゃない例は要らん
1文字は適切じゃないと信じてるなら適切な例を出せって話

俺は適切かどうかの判断に文字数は関係ないと思ってるが
むしろ理解度同じになるなら短い方が適切じゃないのかと
295デフォルトの名無しさん:2013/10/26(土) 23:32:24.92
>>293
そうやって答えられないのを誤魔化すわけですね
296デフォルトの名無しさん:2013/10/26(土) 23:33:32.59
いや私は二文字派なんで。
二文字以外は認めませんよ。
二文字の美しさ!
ロングネームも一文字も論外です。
297デフォルトの名無しさん:2013/10/26(土) 23:37:37.45
>>294
>>189を例にする。
> Dim r As Long
> Dim c As Range

変数名でr,cという名称。
ExcelでいうとrならRow、cならColumnをイメージする。
そこからrは行数、cは列数かと思いきやcの型はRange。
この時点で????となり、読む気にもならないw
298デフォルトの名無しさん:2013/10/26(土) 23:40:46.87
読む気にもならないw = 底辺だから読めない(涙目)
299デフォルトの名無しさん:2013/10/26(土) 23:41:54.64
そうだな、俺なら>>189を例にとるなら
rはtargetRow
cはpseudonymCompanyName
とでもするかな
300デフォルトの名無しさん:2013/10/26(土) 23:47:13.47
でた名前に困って翻訳サイト使奴
pseudonymCompanyName
301デフォルトの名無しさん:2013/10/26(土) 23:48:06.73
ルール無くても荒れてるね。
結局クレクレ君に餌を与える行為にどうであれ反応して荒れるのなら
結局荒れないようにという意味で、元のルール適用でいいと思う。
302デフォルトの名無しさん:2013/10/26(土) 23:50:31.29
>>301
少なくとも>>1★5で荒れることは少なくなった様だが?
303デフォルトの名無しさん:2013/10/26(土) 23:52:41.83
>>297
なるほど
rに対するcというのはその通りだな
>>189でrとcという変数名は不適切だと認めよう
で、適切な変数名は?
304デフォルトの名無しさん:2013/10/26(土) 23:53:52.07
>>302
★5で荒れてたんじゃなくて
あれをコード禁止だって言い張る奴のせいで荒れてただけなんだが
305デフォルトの名無しさん:2013/10/26(土) 23:54:51.00
荒れるってどういう状況のことを言ってる?
自分が劣勢になると荒れている?
306デフォルトの名無しさん:2013/10/26(土) 23:55:19.01
>>300
そうだな。最近では翻訳サイトがあるから昔みたいに辞書を引かなくても済む。
便利な世の中になったもんだ。
307デフォルトの名無しさん:2013/10/26(土) 23:57:33.44
>>297
>ExcelでいうとrならRow、cならColumnをイメージする。

あなた、Rowを表す変数をr、Columnをcすれば可読性は落ちないこと認めちゃってますよね
308デフォルトの名無しさん:2013/10/26(土) 23:57:59.49
>>301
何言ってんだ。
そのスレならもうあるじゃないか。
何で活用しないんだ。
309デフォルトの名無しさん:2013/10/26(土) 23:59:56.17
>>291
日本語名を解禁しても、もとのステートメントや関数が英語なので
混在してよけい読みにくくなることもあった
じゃあ全て日本語のプログラム言語が良いかと言うと、これも何と言うか
頭がうまくプログラムモードにならずに、日本語の自然文書との差が気になって

うまく使うと有る程度は可読性あがるんだけどねぇ
310デフォルトの名無しさん:2013/10/27(日) 00:00:13.74
読む側も翻訳サイト使わないとわからない変数ってどうなんかなって
長い名前をつけなければいけないという体裁整えるだけのために
直訳で意味不明な英文を変数名にしたり
311デフォルトの名無しさん:2013/10/27(日) 00:00:48.66
>>302 同意
各個人の主張を押し通そうとする行為が荒れる。
他人を認めず、非と思える所を見つけて貶し(ケナシ)、
自分の優位を主張しているように見える。
日本の諺(コトワザ)には「十人十色」が在るのだが。
312デフォルトの名無しさん:2013/10/27(日) 00:06:34.96
>>310
それは俺の英語力の無さが祟っていて申し分けないな。
俺も英語勉強しないとな。
だが、根本的な所はそこじゃない。
既にMSDNでもそのように提示されていることと、
つまりは一般的に広くその技法が取り入れられていることがポイント。
313デフォルトの名無しさん:2013/10/27(日) 00:27:22.73
スレ進んでるなー
誰か三行でおせーて
314デフォルトの名無しさん:2013/10/27(日) 00:29:08.09
コーディングのルールに正解なんてなかったんや
正解があると思って議論するから堂々巡りになるだけで
315デフォルトの名無しさん:2013/10/27(日) 00:41:14.72
>>314
考えてみれば大概締め付ける様なことをすると荒れてたな。
このスレが立ったのもそれのせいだったしな。
じゃ、いいや。俺の中では無しだったけど確かにみんなに強要出来ないしする様なもんでもない。
自分ルールとしてしまっとく。
316デフォルトの名無しさん:2013/10/27(日) 00:41:32.12
>>313 3行もいらない
主義主張ばっかりの、1文字変数の善悪議論。
317デフォルトの名無しさん:2013/10/27(日) 00:45:55.36
>>309
そうなんですよ!
そして私は二文字派になったのです!
318デフォルトの名無しさん:2013/10/27(日) 00:52:31.75
>>313


319デフォルトの名無しさん:2013/10/27(日) 00:58:13.43
N-BASICは2文字縛りだっけ?
源流はVBAと同じMS-BASICだぞ
320デフォルトの名無しさん:2013/10/27(日) 01:00:50.42
>>319
そんな縛りあったっけか?
321デフォルトの名無しさん:2013/10/27(日) 01:03:23.69
美しい縛りだと思います。
322デフォルトの名無しさん:2013/10/27(日) 01:08:43.77
日本語もありでいい?
323デフォルトの名無しさん:2013/10/27(日) 01:10:16.60
いいよ。

変数←わかりやすい変数名だと思わない?
324デフォルトの名無しさん:2013/10/27(日) 01:29:37.96
大昔のBASICでは英数1文字+数字0−1文字ってのがあったな
あと長い変数名つけれるけど、短い方がパフォーマンスが良いというのも
325デフォルトの名無しさん:2013/10/27(日) 01:31:46.30
ぴゅう太のことか?
326デフォルトの名無しさん:2013/10/27(日) 01:52:22.61
長い変数名を書いてもいいけど、最初の2文字しか認識しないって素敵な仕様のマシンもあったよなあ
327デフォルトの名無しさん:2013/10/27(日) 01:53:53.36
>>324
8bit時代の初期は英字1文字+英数1文字以下が大多数だと思ったけど
328デフォルトの名無しさん:2013/10/27(日) 04:20:06.71
>>327
>>324は英数1文字って書いてるな
英字1文字+の間違いだな
2文字目は数字しか受け付けないやつもあったと思うが、もう記憶が定かではない
2文字目英数うけつけるやつは、>>326の仕様のやつだったと思うが別にあったのかもしれん
329デフォルトの名無しさん:2013/10/27(日) 04:39:46.25
最終行の取得で
Dim lastrow As Integer
lastrow = ActiveSheet.Range("a1").End(xlDown).Row
Range("A" & lastrow)
Range("s" & lastrow)

Range("A10:S10").Select
と最後のA10の10の箇所を変数に置き換えたいのですがどのように記述すればいいのでしょうか?
330329:2013/10/27(日) 04:55:33.51
>>329
事故解決・・
Range("A" & lastrow : "s" & lastrow).Select →NG
Range("A" & lastrow & ":" & "s" & lastrow).Select →おK
ひたすら””に入れて&で繋げはいいわけですね なんとなくわかりました。
331デフォルトの名無しさん:2013/10/27(日) 04:59:54.11
>>240

240です。少し勉強しましたが、まだわかりません。
VALは文字列を数値に変換します。でも例えば、
第1という文字列をVAL(第1)とすると0がかえってくるとのこと
何のための関数かやはりわからないです。文字列が1だけならばVAL(1)なんて書く必要ないでし。
逆に使い道をご教下さい。
332デフォルトの名無しさん:2013/10/27(日) 05:04:12.57
規約は統一のためだから利害関係にない者同士での押し付けあっても無益だよね
あ、真理を突いてしまったわ、ごめんね君ら
333デフォルトの名無しさん:2013/10/27(日) 06:37:20.38
>>331
ヘルプ読んで、ググって、それでも理解できないなら
もう君の頭では理解できない問題かと…
334デフォルトの名無しさん:2013/10/27(日) 06:38:46.43
締め付けなくてもこのありさまw
コードを書くなって言われてないのに荒れてるし。
世間一般で言われるバグになるコーディングしてんだから指摘されるのは当たり前。

>>332
質問者が糞コードを正しいコードと認識してはいけないということで指摘されているのだが。
それが分からない限りまた荒れるだろう。
335デフォルトの名無しさん:2013/10/27(日) 07:37:51.30
>>334
記述に関するところは正しいも誤りも、規約があって初めて判断できるんだし指摘するに値しないよ。
ロジックでクソだっていうなら話は別だが。
336デフォルトの名無しさん:2013/10/27(日) 07:52:49.90
>>334
いや、今回は「1文字変数は使ってはいけない」と言う、やはり締め付けだったんだ。
考えてみれば、VBAは今ある言語の中でも最も間口が広く気軽に使われている言語だし
仕事上や他のObject指向言語とこのスレを同列と考えてはいけないのかも知れない。
俺も1文字変数は使うべきではないと思っているが、やはり押し付けは良くない。
お前の行動もよかれと思ってやっていることだと分かったが、
他の人からしてみて、それが大きなお世話と言うのであれば仕方がないだろう。
337デフォルトの名無しさん:2013/10/27(日) 07:53:59.26
>>304
だね。
コード禁止って誰も言ってなくて、叩かれてるやつが勝手にコード禁止って言ってただけ。
質問者がコード晒すのを禁止してたわけじゃない。
クレクレ君に餌を与えないようにってあれだけ言われていたのを理解してないだけでしょ。

というより★5が無くてもあってもコードを書くだけでこの荒れよう。
コードを指摘されている訳だからそれを直せばいいだけなのに。
★5とかコードを晒す云々以前の問題。
338デフォルトの名無しさん:2013/10/27(日) 08:01:10.62
>>337
そう思う人はもう一つのスレに行けばいいじゃん。
殆ど誰も行ってないみたいだけど。
339デフォルトの名無しさん:2013/10/27(日) 08:09:42.71
>>338
質問が無ければ書き込む必要ないだろ。
ってかそんなこと言うってことは自演っていうのはネタじゃなく本当のことだったのかと。
自演でスレを存続させて何のメリットがあるんだ?
金でも貰ってるのか?w
340デフォルトの名無しさん:2013/10/27(日) 08:10:17.55
いや、失礼。今見に行ったら昨日の件で少しレスが付いたのか。
最もあっちは徹頭徹尾荒れっぱなしみたいだけど。
341デフォルトの名無しさん:2013/10/27(日) 08:12:23.77
>>339

どこがどう自演だと言ってるのかさっぱり分からない。
342デフォルトの名無しさん:2013/10/27(日) 11:38:13.45
単芝君は意味不明なことを書いて場を荒らすのが人生の唯一の楽しみなので
かわいそうな子なんですよ
343デフォルトの名無しさん:2013/10/27(日) 12:22:21.54
>>331
VALは文字列を数値に変換する関数
VBAでは暗黙的に変換できたりするから、存在意義に疑問をもつかもしれんが
昔のBASICからの名残で存在してる関数
344デフォルトの名無しさん:2013/10/27(日) 12:27:13.56
逆に
VBAで数字を数値か文字列か自動判断するのがウザすぎる。
どっちに判断してるか調べないといけない場面もよく出てくるし。

素直にVAL関数とかSTR関数つかってた時代のほうがなにも不安なくスッキリした気分でプログラミングができる。

いろんな省略も同様。
Cell(r,c)=・・・じゃなく、Cell(r,c).Value=・・・、が絶対というルールにして欲しい。
345デフォルトの名無しさん:2013/10/27(日) 13:18:30.32
試してみた
Sub testMojiSuuti()
 Dim a_Str, b_Str, c_Str As String
 Dim d_suuti, x_suuti As Single
 Dim e_suuti As Single
  a_Str = "1"
  b_Str = "3"
  c_Str = a_Str + b_Str  '文字列扱いの13になる
  d_suuti = a_Str + b_Str '文字列扱いの13になる ←DimでSingle指定が効かない
  e_suuti = a_Str + b_Str '数値扱いの13になる ←DimでSingle指定通り
  x_suuti = a_Str + b_Str '数値扱いの13になる
Stop
End Sub
d_suuti と e_suuti は同じSingle だが結果が違う。
2007だけの問題?最新版ではどう、持ってる人教えて?
346デフォルトの名無しさん:2013/10/27(日) 13:20:14.89
変数名がローマ字
347デフォルトの名無しさん:2013/10/27(日) 13:24:12.35
まず演算子の優先順位を理解したほうがいいと思うよ
代入演算子より+演算子の方が優先度高いからそれが正常な動作だしバージョンも関係ないよ
逆に結果が4になったらそんな言語危なくて誰も使えなくなる
348デフォルトの名無しさん:2013/10/27(日) 13:30:41.55
>>345
わざとらしいね。
適切な変数の名称ができないなら一文字変数と同じ。
349デフォルトの名無しさん:2013/10/27(日) 13:31:46.07
>>345
アホらし
Dim d_suuti As Single, x_suuti As Single
350デフォルトの名無しさん:2013/10/27(日) 13:33:13.22
345です
自己解決
d_suuti はバリアントになってた
351デフォルトの名無しさん:2013/10/27(日) 13:34:05.00
VBA初心者ですが
Excel関数で2番目3番目に大きい値を検出する
=LARGE(C2:C11,2)
をVBAで記述し見つかった値が書かれているセル番地を知り変数に置き換えるにはどうすれば良いのでしょうか?
352デフォルトの名無しさん:2013/10/27(日) 13:37:20.16
>>351
国語をもっと勉強しておくべきだった
353デフォルトの名無しさん:2013/10/27(日) 13:39:12.24
>>348
Dim e As Double
e = 2.71828
354デフォルトの名無しさん:2013/10/27(日) 13:43:53.09
二文字変数が一番いい。
355デフォルトの名無しさん:2013/10/27(日) 14:05:11.97
suuti (スーティ) って何?意味がわからん
356351:2013/10/27(日) 14:08:50.74
>>351
事故解決中

=LARGE(C2:C11,2)の値を検出
22だった場合

Find_Range(22, Range("C2:C11")).Select

Dim a
a = ActiveCell.Address

こんな感じでできそうですがあってますでしょうか?
357デフォルトの名無しさん:2013/10/27(日) 14:09:53.88
二文字変数なら「数値」ですぐに意味が分かります。
358デフォルトの名無しさん:2013/10/27(日) 14:30:39.21
>>356
問題なし
359351:2013/10/27(日) 15:04:03.26
>>358
このスレの方にそう言って頂けると心強い物があります
ありがとうございます。
360デフォルトの名無しさん:2013/10/27(日) 15:09:37.78
これだけ叩かれてるのに安心するのかw
361デフォルトの名無しさん:2013/10/27(日) 15:26:05.97
前向きは力なり
362デフォルトの名無しさん:2013/10/27(日) 15:58:12.54
俺のは左曲がり
363デフォルトの名無しさん:2013/10/27(日) 16:57:17.17
>>362
もげればいいのに
364デフォルトの名無しさん:2013/10/27(日) 17:40:19.21
>>351

>>356に書いてる "Find_Range" ってのはVBAに備わった関数じゃなくて、
どっかの誰かが作ったユーザー定義関数だということを理解した上で
自分のマクロにそれを組み込んでいるならOKですけど、
そうでない限り動かないですよ。

Function Find_Range 自体はこの辺のページに載ってますけど。
(というか、あなたもここを見たんですよね?)
http://white-voice.cocolog-nifty.com/wv/2010/03/excel-vbarange-.html
365デフォルトの名無しさん:2013/10/27(日) 18:33:04.41
UpperCamelCaseとSnakeCaseの組み合わせって時点でキチガイ認定するわ
366デフォルトの名無しさん:2013/10/27(日) 18:37:50.00
>>365
ありがとうございます!
367デフォルトの名無しさん:2013/10/27(日) 19:16:34.69
コーディングルールにケチをつける連中に限って
実際に改善したコードを提示しない件について


結局、コード曝して反論されるのが怖いんだよね
368デフォルトの名無しさん:2013/10/27(日) 19:20:30.06
>>367
よく言ってくれた 同じ思い
369デフォルトの名無しさん:2013/10/27(日) 19:23:58.24
またそんな
キチガイに餌与える様なことを
370デフォルトの名無しさん:2013/10/27(日) 19:37:39.24
>>367
コーディングルールってどこのだよw
世間一般に言われてるやっちゃいけないことにケチつけてるやつはいるけど。
371デフォルトの名無しさん:2013/10/27(日) 19:50:15.66
直近だと>>365とか
批判はするが具体的な改善例を提示しない(出来ない)
372デフォルトの名無しさん:2013/10/27(日) 20:14:27.12
そういう話は本スレでやれ
373デフォルトの名無しさん:2013/10/27(日) 20:18:37.23
あのスレを本スレと呼んでるってことは
やっぱりテンプレ厨か
374デフォルトの名無しさん:2013/10/27(日) 21:46:22.00
>>371
改善例もなにもUpperCamelCaseとSnakeCaseのどっちかに統一するだけだろ
お前UpperCamelCase, SnakeCaseの意味わかってないだけだろ
恥ずかしい奴だな
375デフォルトの名無しさん:2013/10/27(日) 22:01:15.99
能書きは良いからさっさと書け

俺が言ってるのは完璧なコードなんてそうそう無いから
どっちにしてもケチはつけられるってことだよ
376デフォルトの名無しさん:2013/10/27(日) 22:05:37.55
>>374
Snakeの個所勘定して笑った
377デフォルトの名無しさん:2013/10/27(日) 23:08:13.40
お前らまだやってたのか。
>>374
もう諦めろ。
>>1★5の件でも、1文字変数の件でも
駄々をこねているのはお前だけだ。
正しいと思っていることを貫きとうそうと言うのは素直に偉いとは思うが
スレの空気を少しは読める様になった方がいい。
378デフォルトの名無しさん:2013/10/28(月) 05:43:39.08
>>375
だからと言って糞コードを書いていいわけじゃない。
誰も完璧なコード書けって言ってないし。
379デフォルトの名無しさん:2013/10/28(月) 06:36:39.48
>>378
だから糞じゃないコード書いてみろって
380デフォルトの名無しさん:2013/10/28(月) 06:45:43.19
>>379
わかってて言ってるだろ
コーディングルールが統一されてない以上、どうせ何を書いても別の派閥から叩かれるだけだって
381デフォルトの名無しさん:2013/10/28(月) 07:55:52.20
ExcelのVBAからWebページを操作したいのですが
 (1)すでにあるページがひらいてるか調べる
 (2)もしひらいていたらそのページをアクティブにして前面に出し、そうでなければ新しく開く
という手順を実行したいです。

苦労してるのは、InternetExplorerというブラウザを使っているのですが
そのタブ機能があるのでブラウザは1個だけどその内部にタブが複数開いてるのを
どうアクティブにするかで悩んでいます。

どうかよろしくお願いします
382デフォルトの名無しさん:2013/10/28(月) 07:56:16.07
そういう(不毛な)話は本スレ()でやれ
383デフォルトの名無しさん:2013/10/28(月) 07:58:59.31
>>381
そういう話はたぶんこっち
VBAなんでも質問スレ
http://toro.2ch.net/test/read.cgi/tech/1342087380/
384デフォルトの名無しさん:2013/10/28(月) 09:29:22.52
変数の引数は
VBAという1言語の視点ではなくプログラマ的には
「値渡し」「参照渡し」「矢切りの渡し」のどれをデフォルトとして採用すべきですか?
385デフォルトの名無しさん:2013/10/28(月) 10:17:09.78
Excelのファイルを開いた瞬間の時点の
米ドル/日本円の為替レート情報をA1セルに入力させる方法を教えてください。

情報はWebからでもどこからでも取ってきてください。
例えば下のサイトからでもいいし、もっとコード的に取得しやすいサイトであればそこでもいいです。
http://finance.yahoo.com/currency-converter/#from=USD;to=JPY;amt=1
386デフォルトの名無しさん:2013/10/28(月) 11:16:04.41
>>385
Sub Macro1()
With ActiveSheet.QueryTables.Add(Connection:="URL;http://225225.jp/4fx/511_usdjpy.php", Destination:=Range("A1"))
.WebSelectionType = xlEntirePage
.WebFormatting = xlWebFormattingNone
.Refresh BackgroundQuery:=False
End With
Range("A1") = Left(Range("A6"), 6)
End Sub
387デフォルトの名無しさん:2013/10/28(月) 11:32:18.26
Privete Sunのプロシージャと
Private Functionの戻り値のない関数は
同じものと考えてもOKですか?
388デフォルトの名無しさん:2013/10/28(月) 12:48:30.39
>>384
仕様に沿ってコーディングしろ
389デフォルトの名無しさん:2013/10/28(月) 13:16:00.37
>>380
もちろん分かってて書いてる。
それでも相手のコードをクソと言うなら
クソでない見本を見せるべき。
390デフォルトの名無しさん:2013/10/28(月) 14:02:49.94
>>389

これのどこが理解できないんだ?

>>374
> 改善例もなにもUpperCamelCaseとSnakeCaseのどっちかに統一するだけだろ
391デフォルトの名無しさん:2013/10/28(月) 14:56:35.47
太陽を自分のものにだけするとは!
392デフォルトの名無しさん:2013/10/28(月) 15:23:25.96
求められているのは具体的なコードであって説教ではない
393デフォルトの名無しさん:2013/10/28(月) 15:44:58.72
>>390
そうだな、何が理解出来ないかって言えば
偉そうなこと言っておいて変数名に
UpperCamelCaseやSnakeCaseで統一しろとか言っちゃうその頭の中身かな。
394デフォルトの名無しさん:2013/10/28(月) 16:30:57.21
>>393
UpperCamelCaseとSnakeCaseを混ぜたのを糞コードだと言ってどこが偉そうなんだかわからないが、
その改善策はどちらかに統一しろってことだろ。

何が理解できないんだ?
395デフォルトの名無しさん:2013/10/28(月) 16:33:26.39
論点は命名規則じゃなかった
396デフォルトの名無しさん:2013/10/28(月) 16:34:53.10
具体的な改善例を提示してみろと言われているのが
なんで理解できないのか不・思・議〜
397デフォルトの名無しさん:2013/10/28(月) 16:37:44.80
>>394
もう一度>>196のリンク先を見直してみたらどうだ。
398デフォルトの名無しさん:2013/10/28(月) 16:37:47.80
>>389
> それでも相手のコードをクソと言うなら
> クソでない見本を見せるべき。
ちょっと前に良くあった、橋下流の政策談義にでも毒されちゃったのかな。
そもそもコードレビューの文化は、替わりのコードを示すなんてことはやらないよ。
駄目出しと、やって改善への指針の提示。
399デフォルトの名無しさん:2013/10/28(月) 16:38:56.65
>>398
その改善案自体が糞
400デフォルトの名無しさん:2013/10/28(月) 16:41:15.59
>>397
>>196なんか関係無い。

>>365>>371>>374>>375
の流れをよく読め。
401デフォルトの名無しさん:2013/10/28(月) 16:42:18.76
>>399
>その改善策はどちらかに統一しろってことだろ。

>その改善案自体が糞
だと言うのなら、その改善策を示せ
402デフォルトの名無しさん:2013/10/28(月) 16:45:09.83
UpperCamelCaseとSnakeCaseが混ざってても気にしないってことだろ
403デフォルトの名無しさん:2013/10/28(月) 16:46:55.24
ちょっと何か指摘されると、全人格を否定されたかの如く異常な反応するやついるよな。
しかも、自分が書いたコードじゃないのに、わけわからんわ。
404デフォルトの名無しさん:2013/10/28(月) 16:48:34.97
>>394
色々なコードや色々な改善案があるんだから、
>>394の付けるすばらしい変数名の数々も実際に見てみたいんだよ。
変数名の付け方なんて、当然個人差や組織差があるだろうけど
そういうのを具体的に見るのが面白いし、ためになったりするだろ?
405デフォルトの名無しさん:2013/10/28(月) 16:48:45.39
>>401
変数名にはLowerCamelCaseを用いる。
定数には大文字のSnakeCaseを使う。

お前が言ってることは中途半端なんだよ。
406デフォルトの名無しさん:2013/10/28(月) 16:58:44.09
>>405
俺もそうするけど、http://www.ozgrid.com/forum/showthread.php?t=27240 のFind_RangeやFind_Itemを
PascalCaseかSnake_Caseに統一したとしても、それはそれで許容するし、それほど糞とも思わない。
407デフォルトの名無しさん:2013/10/28(月) 17:01:00.64
そもそもVBAで扱うビルトインメソッドなんかの仮パラメータ名なんかがPascalCaseの場合が多いからね。(camelCaseってあるのか?)
408デフォルトの名無しさん:2013/10/28(月) 17:01:46.17
>>406
その線引きは何だ?
だったら1文字でも意味が分かればいいということになるだろ?
お前のはただの自分の感覚の押し付けだ。
409デフォルトの名無しさん:2013/10/28(月) 17:04:16.35
>>404
> >>394の付けるすばらしい変数名の数々も実際に見てみたいんだよ。
いや、だから、UpperCamelCaseとSnakeCaseを混同して使わずにどっちかに統一するってことだろ
なにがわかんないんだか
410デフォルトの名無しさん:2013/10/28(月) 17:05:59.31
>>408
> その線引きは何だ?

ちょっと何の線引きを聞かれてるのかわからない。
411デフォルトの名無しさん:2013/10/28(月) 17:08:09.38
>>410
そうすると言った部分と
許容すると言った部分。
412デフォルトの名無しさん:2013/10/28(月) 17:12:27.69
>>411
俺も>>405のようにするが、http://www.ozgrid.com/forum/showthread.php?t=27240 のメソッド名やパラメータ名、
ローカル変数名をPascalCaseやSnake_Caseに統一したとしても、それはそれで許容するってことなんだけど、
何がわからないんだろうか。
413デフォルトの名無しさん:2013/10/28(月) 17:12:37.48
互いにわからない人だらけだなw
414デフォルトの名無しさん:2013/10/28(月) 17:16:01.62
>>412
だからその線引きは具体的になにを指標にして許容するのかと聞いているんだが。
感覚で言ってるなら1文字変数名を感覚でいいと言ってるのを許容しないのは何故なんだ?
415デフォルトの名無しさん:2013/10/28(月) 17:20:13.27
>>414
指針も何も、否定する理由がないから許容するんだけど。

・メソッド名や変数名をPascalCaseに統一する派
・メソッド名や変数名をSnake_Caseに統一する派
がいたとして、何か否定する理由ある?

両者とも俺とは流儀が違うが、それは許容できる考え方で、俺内部で全く矛盾はない。

ちなみに俺は1文字変数許容派だよ。つか、よく使う。rとかcとか。
416デフォルトの名無しさん:2013/10/28(月) 17:21:24.67
>>409
わかりたいんじゃなくて、わかったうえで具体例を見たいと言っている
わからないか?
417デフォルトの名無しさん:2013/10/28(月) 17:22:56.36
自分の説明能力が欠けてるとは、ほんの少しも思わないんだろうか。
418デフォルトの名無しさん:2013/10/28(月) 17:24:31.15
>>415
一文字変数名許容ならそれでいいよ。
ずっと1人で駄々をこねているテンプレ厨かと思った。
すまんかったな。
419デフォルトの名無しさん:2013/10/28(月) 17:27:46.55
駄々をこねて暴れているのが自分だと気づいてない模様
420デフォルトの名無しさん:2013/10/28(月) 17:30:21.34
取り敢えずテンプレ厨の見本コード待ちか
胸が熱くなるな。
421デフォルトの名無しさん:2013/10/28(月) 17:30:34.86
もうこれやめろよ。

> クソでない見本を見せるべき。
422デフォルトの名無しさん:2013/10/28(月) 17:32:01.38
そうだな。クソでない見本を見せるべきだな。
423デフォルトの名無しさん:2013/10/28(月) 17:34:19.79
そもそも桃白白のコードみたく根本から糞の場合、見本となると全書き換えになるのでだるいわ
424デフォルトの名無しさん:2013/10/28(月) 17:41:25.80
怠惰はカッコ悪いぞ 頑張れよw
425デフォルトの名無しさん:2013/10/28(月) 17:41:30.36
そもそもここでエラそうに言ってる
テンプレ厨がコード書いてるのって
まだ見たことないな。
本当に書けるのかな?
426デフォルトの名無しさん:2013/10/28(月) 17:43:13.80
おそらく>>365>>364のリンク先のFunction Find_Range()のコードに対するものだと思うが、リンク先読むとFind_Range()自体は
さらに別の人が書いたコードで、自分がPascalCase派ならそれを使うときに
> Set FoundRange = Find_Range()
とやるのはしかたないと思うが。

全部自分が書いたのなら、
> UpperCamelCaseとSnakeCaseの組み合わせって時点でキチガイ認定するわ
と言われても仕方ない。
427デフォルトの名無しさん:2013/10/28(月) 17:53:57.74
まあまあ、ここはVBAスレなんだし
細かいこと気にすると頭禿げるよ
428デフォルトの名無しさん:2013/10/28(月) 17:55:33.00
そういう事情を想像すらせずに、いきなりキチガイ認定しているところがむしろキチガイじみているかもな。
429デフォルトの名無しさん:2013/10/28(月) 17:58:52.44
キチガイだらけの青春
430デフォルトの名無しさん:2013/10/28(月) 18:14:29.07
uppercamelcaseとか
lowercamelcaseとか
snakecaseとか
Pacaseとか
それぞれどういう意味ですか?
431デフォルトの名無しさん:2013/10/28(月) 18:26:32.40
>>430
ググれ
432デフォルトの名無しさん:2013/10/28(月) 18:31:54.30
upper camel case: FindRange
lower camel case: findRange
snake case: find_range
PascalCase: upper camel caseと同じ
433デフォルトの名無しさん:2013/10/28(月) 18:33:46.69
頭の高いラクダさんと、頭の低いラクダさんと、地面を這ってるヘビさん
434デフォルトの名無しさん:2013/10/28(月) 19:05:31.43
> クソでない見本を見せるべき。

こういうことをいう奴って自分で考えようともしないクレクレ君だろw
435デフォルトの名無しさん:2013/10/28(月) 19:24:01.56
クレクレ君が立てちゃったスレか。
まさしくコード作成依頼スレだなw
436デフォルトの名無しさん:2013/10/28(月) 19:27:06.58
ますます>>425が言ってる疑惑が深まるな
437デフォルトの名無しさん:2013/10/28(月) 20:01:30.94
VBAでは.NETコンポーネントは使えないのか?
いちいちCOMにしないといかんのか?
438デフォルトの名無しさん:2013/10/28(月) 20:31:33.69
>>437
まぁそうだろな
439デフォルトの名無しさん:2013/10/28(月) 20:38:41.13
で、いつになったらテンプレ厨は
見本コードを晒してくれるんだろ。
>>245の疑惑を払拭するためにも
早い方がいいよな。
440デフォルトの名無しさん:2013/10/28(月) 20:41:34.24
>>439
>>425だろ
441デフォルトの名無しさん:2013/10/28(月) 21:35:18.84
1文字変数をダメと言う人は代わりの変数名を出さない
糞コードというひとは代わりのコードをださない
ここはすばらしいインターネッツですね
442デフォルトの名無しさん:2013/10/28(月) 21:37:46.42
クレクレ君そのものだなw
443デフォルトの名無しさん:2013/10/28(月) 22:22:46.45
そうです。クレナイ君は要らないんです。
444デフォルトの名無しさん:2013/10/28(月) 22:36:42.58
道理で前からスレにコードを書いてはいけないとか言ってた訳だよな。
自分が書けないんじゃそりゃおもしろくないもんな。
445デフォルトの名無しさん:2013/10/28(月) 22:53:39.33
クレクレ君って騒いでるのがクチダケ君だったからね
446デフォルトの名無しさん:2013/10/28(月) 22:59:32.66
>>431
てへっへ
>>432
なるほど!ありがと
447デフォルトの名無しさん:2013/10/28(月) 23:02:57.36
Privete Sunのプロシージャと
Private Functionの戻り値のない関数は
同じものと考えてもOKですかな?
448デフォルトの名無しさん:2013/10/28(月) 23:07:45.42
二文字変数が一番です
449デフォルトの名無しさん:2013/10/28(月) 23:13:33.39
>>447
no
450デフォルトの名無しさん:2013/10/28(月) 23:16:42.61
>>449
何が違うの?
451デフォルトの名無しさん:2013/10/28(月) 23:50:28.25
そもそもVBAに戻り値のないFunctionは存在しないが
戻り値を無視するのは呼ぶ方の勝手
452デフォルトの名無しさん:2013/10/29(火) 00:09:36.69
プライベート サン!!
453デフォルトの名無しさん:2013/10/29(火) 00:12:34.10
サンを使わずにファンクションで統一していいよ
サンに出来てファンにできないことはないけど
ファンに出来てサンにできないことはあるから
あ、サンじゃなくてサブだった
454デフォルトの名無しさん:2013/10/29(火) 00:20:20.96
サンって何かで見た様な気がする
ゲド戦記?
455デフォルトの名無しさん:2013/10/29(火) 00:24:34.29
アノ子は人間だ!ソノ子を解き放て!
456デフォルトの名無しさん:2013/10/29(火) 00:47:53.23
その子?鈴木?河合?
457デフォルトの名無しさん:2013/10/29(火) 07:07:04.34
で、結局テンプレ厨の手本コードは上がったの?
それとも本当に口だけ?
458デフォルトの名無しさん:2013/10/29(火) 07:53:57.28
クレクレ君全開w
459デフォルトの名無しさん:2013/10/29(火) 10:46:51.01
こりゃテンプレ厨、口だけ君確定かな
460デフォルトの名無しさん:2013/10/29(火) 11:11:44.58
>>452
よく読め

Private Sub でも Private Sun でもなく
Privete Sun だ

もはや俺たちが想像も出来ない別の何かなんだよ
461デフォルトの名無しさん:2013/10/29(火) 11:42:59.34
そこはかとなくヨーロッパの香りがするコード
462デフォルトの名無しさん:2013/10/29(火) 12:17:23.21
Sunに気を取られてPriveteには気づいてなかったわ
すっかり釣られてるのか、俺たち
463447:2013/10/29(火) 13:41:56.19
アホがいっぱい釣れた(笑)

>>449 1匹目
>>451 2匹目
>>452 3匹目
>>453 4匹目
>>454 5匹目
>>460 6匹目
>>462 7匹目

7匹のお魚さんが釣れました(ワラ
464デフォルトの名無しさん:2013/10/29(火) 14:38:35.58
なんか悲しいね
465デフォルトの名無しさん:2013/10/29(火) 14:42:22.12
おーい、オレ(>>461)も釣れたアホ魚の仲間に加えてくれよ
てっきりスペイン語かなんかのコードかと思ったぜw意味通じないけど
466デフォルトの名無しさん:2013/10/29(火) 14:44:58.24
VBAでは
開いてない複数のbook内の、指定したシートの、指定したセルの値を
そのbookを開かずに値を取得することは可能ですか?
467447:2013/10/29(火) 14:46:01.47
>>465
OK。あなたも仲間入り。網の中では他のお魚さんたちと仲良くしてくださいね(藁)

>>461 8匹目
468デフォルトの名無しさん:2013/10/29(火) 14:54:45.52
(笑)とか(ワラとか(藁)とか、古くて懐かしいけど最近リバイバルでもしてるの?

>>466 できない
469デフォルトの名無しさん:2013/10/29(火) 15:02:22.39
え、できるだろ?
470デフォルトの名無しさん:2013/10/29(火) 15:07:51.44
自分でファイルを開く処理を書かなくてもExcel 4.0のマクロで読み込めるけど、
厳密にはファイルを開いてないわけじゃないからなあ
471デフォルトの名無しさん:2013/10/29(火) 16:10:06.12
>>470
4.0マクロは怖いよ。
とっくにMicroSoftのサポートから外れてるし。
472デフォルトの名無しさん:2013/10/29(火) 16:48:14.84
>>466
可能
473デフォルトの名無しさん:2013/10/29(火) 16:59:09.89
>>466
Excel4Macroを使って読む方法:
『ブックを開かないで読む』
http://officetanaka.net/excel/vba/tips/tips28.htm

ODBCのソースとして読む方法:
『ブックをOpenせずにデータを取得する−データベースクエリ』
http://www.moug.net/tech/exvba/0060038.html
474デフォルトの名無しさん:2013/10/29(火) 17:21:59.11
bookを開かずに ってのが何を意味するかだな
単に画面に出ないでってだけならやりようはいくらでもある
475デフォルトの名無しさん:2013/10/29(火) 17:35:26.39
>>473
先の方法はさっきも言ったけど、MicroSoftのサポートが遠い昔に切れてるから怖くて使えないし、
後の方法ではSQLを使う方法になるだろうから、
セル位置を指定しての取得は状況によっては困難になる。

その辺目をつぶって使うか、開くんだけど表示させないか。
難しいね。
476デフォルトの名無しさん:2013/10/29(火) 17:46:11.02
今のエクセルファイルって、xmlをzipで圧縮したものじゃなかったっけ
zip解凍して頑張れば自分で直接ファイルから読み取れるんじゃね
477473:2013/10/29(火) 18:01:37.83
じゃ、頑張ってBIFF解析してみる?
『Microsoft Excel File Format
Excel Versions 2, 3, 4, 5, 95, 97, 2000, XP, 2003』
http://www.openoffice.org/sc/excelfileformat.pdf
478デフォルトの名無しさん:2013/10/29(火) 18:08:15.07
>>477
任せた!
479デフォルトの名無しさん:2013/10/29(火) 18:08:27.43
COM経由で使えば、見た目オープンしてないように見える
480デフォルトの名無しさん:2013/10/29(火) 18:22:00.64
>>478
既にあるし。http://npoi.codeplex.com/
481デフォルトの名無しさん:2013/10/29(火) 18:32:04.87
>>480
日本語で!
482デフォルトの名無しさん:2013/10/29(火) 18:38:11.14
BIFF解析とは?
483デフォルトの名無しさん:2013/10/29(火) 18:53:24.68
もうディスクを直接読めよ
484デフォルトの名無しさん:2013/10/29(火) 19:04:56.85
openxmlってわかりにくい
ファイルの依存関係が多いからね
485デフォルトの名無しさん:2013/10/29(火) 21:30:01.84
クレクレ君があっちで頑張ってるなw
他人をテンプレ厨と言いながら、そのテンプレに固執して
住人の了解も得ずテンプレを変えてみちゃったり。
どっちがテンプレ厨なのかと思えるけどね。

書き直しする度にダメ出しくらって、結局どう書けばいいんだ?
っていう話なら分かるけど、きちんと指摘しているわけだから
それも直さずどう書けばいいって聞いてくるのは
どう見てもクレクレ君根性丸出しなんだよね。

>>189の糞コードの指摘で何かスイッチ入っちまったのかw
486デフォルトの名無しさん:2013/10/29(火) 21:46:39.01
>>485
馬鹿なの?
どう直せば良いかなんて誰も聞いてないよ。
他人のコードにケチつけるなら
その前に自分が誰にも文句の付けられようがない
完璧なコードが書けることを証明して見せろと言ってるんだよ。
それが出来ないからって
必死で論点ずらして相手をクレクレ君呼ばわりしても
誰もごまかされないよ。
487デフォルトの名無しさん:2013/10/29(火) 21:49:39.13
488デフォルトの名無しさん:2013/10/29(火) 22:02:18.67
>>485
よう
口だけテンプレ君
489デフォルトの名無しさん:2013/10/29(火) 22:04:36.82
コードを書けって?
どういうスレなのか分からなくなってるアホがいるw
490デフォルトの名無しさん:2013/10/29(火) 22:06:38.49
>>489
いい名前付けて貰えて良かったNe
491デフォルトの名無しさん:2013/10/29(火) 22:06:48.76
>>487
>>307でケチ付けられてるじゃん
完璧な回答とは呼べないな
やりなおせ
492デフォルトの名無しさん:2013/10/29(火) 22:10:59.74
>>491
ん?
rだけだとRow或いはRowsとも取れるけど?
一つに絞れないわけで全然ダメダメなんだけど。
一文字で言いたいことを伝えてみろよw

だんだんコード作成依頼スレっぽくなってきてるなw
いいことだ。
493デフォルトの名無しさん:2013/10/29(火) 22:13:01.67
>>492
名前付けて貰って嬉しいのは分かったから
報告が終わったら向こうのスレに帰ってね
494デフォルトの名無しさん:2013/10/29(火) 22:25:42.73
>>493
つうか、ここで暴れたって向こうに人が行くわけでもなし、
このままほっときゃ向こうのスレは過疎って終わるんだから
いちいち相手すんのやめようよ
495デフォルトの名無しさん:2013/10/29(火) 22:28:24.97
色々遠吠えした挙句、結局口だけテンプレ君が証明したのは
「自分にはコードが組めません」ってことだけだったからなぁ
496デフォルトの名無しさん:2013/10/29(火) 22:32:27.59
>>494
スルー力ゼロだから無理だと思うよ。
>>495みれば分かるだろw
497デフォルトの名無しさん:2013/10/29(火) 22:40:19.58
>>495
「口だけテンプレくん」って聞いて「口だけ頭」思い出した
498デフォルトの名無しさん:2013/10/29(火) 22:57:57.20
人のコードにいちゃもん付けてコード書けない奴ってなんなの?
499デフォルトの名無しさん:2013/10/29(火) 23:08:19.73
ルールが無いから荒れちゃったね。
500デフォルトの名無しさん:2013/10/29(火) 23:09:33.93
>>499
分かったからあっちのスレに帰ろうね
501デフォルトの名無しさん:2013/10/29(火) 23:21:10.11
>>497
まだ寄生獣の方が頭いいな
502デフォルトの名無しさん:2013/10/29(火) 23:47:41.84
このスレは普段はこういうgdgdな状況でも良いんだよ
誰かが困って質問したときに対応できるヤツが相手すればそれでいい。
口先だけの某テンプレ厨見たいに
イチャモンつけるだけのやつしかいない糞スレとはそこが違う。
503デフォルトの名無しさん:2013/10/30(水) 07:04:06.36
口だけテンプレ君が来ると荒れるね
504デフォルトの名無しさん:2013/10/30(水) 07:21:51.86
>>503
餌を与えているお前も荒らしているんだけどね。
505デフォルトの名無しさん:2013/10/30(水) 09:32:11.90
古い格言だが
「荒らしにレスするのも荒らし」
506デフォルトの名無しさん:2013/10/30(水) 10:57:56.97
クレクレ&テンプレ厨が頑張ってあっちのスレ荒らしちゃってるよw
このスレは荒れて終わりそうだな。
これじゃルールなしテンプレは意味ないね。
507デフォルトの名無しさん:2013/10/30(水) 11:16:59.05
あっちのスレが荒れてるなら
ルールありテンプレにも意味がないってことだね。
ていうか、こっちはルールがないというより
ルールをたてにして他人に強要する輩が嫌だから
あえて細かく決めてないだけ。
この状況は望ましいとは言わないが、
まぁ許容範囲。
508デフォルトの名無しさん:2013/10/30(水) 11:20:10.57
ルールがあるとルールを守らないやつが出てきて荒れる。
ルールが無いならルールが無いから荒れる。
本スレではクレクレ君に餌を与えて(コード晒し)荒れた。
このスレではテンプレにルールを無くしてみたら、書き込んだコードが糞だと荒れた。

ようはクレクレ君に餌を与える行為があると荒れる。
クレクレ君に餌を与える行為が無くならない限り荒れるのは無くならないと思う。
509デフォルトの名無しさん:2013/10/30(水) 11:28:20.79
>>507
何にせよクレクレ君に餌を与えることで荒れてるわけだから
本スレにルールがある分そっちの方がまともだと思うけどね。
ルールが無ければルールが無いなりに別のことでもあれる可能性を秘めてるわけだし。

そもそもルールなんて問題があったからこそできたものだろ。
お前も荒れないようにするためにルールを無くしてみたら失敗してるわけで。
最初は自演でうまく回っているように見えてたけど結局荒れてるしね。

この荒れが許容範囲と言いながら許容できてないから本スレが荒らされてるわけだし。
全然許容範囲じゃないだろw
510507:2013/10/30(水) 11:42:24.14
>>509
>お前も荒れないようにするためにルールを無くしてみたら失敗してるわけで。

お前って何のことさ?
俺は>>1じゃないのにテンプレどうこう出来るわけないじゃん
VBA関連のスレが2つあってこっちが良いからこっちに書き込んでるだけで
俺自身は向こうに書き込む気はないし、
自称「本スレ」がどうなろうと知ったこっちゃないよ。
511デフォルトの名無しさん:2013/10/30(水) 11:57:50.82
>>509
ここが本スレだろ
512デフォルトの名無しさん:2013/10/30(水) 12:11:35.23
本スレとかそうじゃないとか議論すること自体無意味じゃないかな?
単にタイトルが同じなだけで内容的に許容範囲が明らかに違うんだから
(というか、俺にはあっちのスレの目指す方向性が理解できない)
あっちが良い人はあっちで書けば良いし、
こっちに書きたいならこっちに書けば良い。
まぁ、向こうはこちらのスレに意味不明な制約を課しているだけだから
書き込む意義があるとも思えんけど、
それでもそっちが良いって言う奇特な人は居るのかもよ。
513デフォルトの名無しさん:2013/10/30(水) 12:26:22.43
て言うか何でテンプレ厨は自分の望み通り立てた向こうのスレを使わないんだろ。
やっぱり誰にも構ってもらえないからこっちでこんなに必死になってるのかな?
514デフォルトの名無しさん:2013/10/30(水) 12:33:36.33
ここがあるから自分のスレに人が来ないと思い込んでいる節はあるよね
まぁ、傍からみたらあんな下らんテンプレ立てといて何言ってんだって話だが
本人だけは気づいていないという哀れさ
515デフォルトの名無しさん:2013/10/30(水) 13:17:36.74
insert into ngwords values('テンプレ');
insert into ngwords values('クレクレ');
516デフォルトの名無しさん:2013/10/30(水) 14:32:56.05
VBAで質問したいのですがいいですか?

社員リストシートのB8〜22まで氏名、C8〜22までメールアドレスがあり、
スタートボタンを押すと、PDFで作った給与明細が添付して送信するVBAが
あります。エラーが発生すると作業が中断され、指定した人にだけ送信したい
のに全員に送信されてしまう不具合が発生しました。
そこで指定した人だけに送信できるように変えたいのですがどのように修正を
かけるとよいのかお力をかしていただけませんか?
ソースは以下のようになっています

つづく
517デフォルトの名無しさん:2013/10/30(水) 14:35:42.73
つづき

Sub SendMail_Click()
'[参照設定] Microsoft CDO for Windows 200 Library (or Microsoft CDO for Exchange 2000 Library)
Dim fFiles As FileDialog
Dim vGetFile As Variant
Dim i As Integer
Dim iOkOrCancel As Integer
Dim iTotal As Integer
Dim iSend As Integer
Dim a As Integer
Dim b As Integer
'ダイアログの設定
Set fFiles = Application.FileDialog(msoFileDialogFilePicker)
With fFiles.Filters
.Clear
.Add "PDFファイル", "*.pdf"
End With
つづく
518デフォルトの名無しさん:2013/10/30(水) 14:39:37.39
つづき

'ファイルを複数選択にする
fFiles.AllowMultiSelect = True
'ダイアログのボタンを「選択」にする
fFiles.ButtonName = "選択"
'ダイアログを開いてファイルを選択する
fFiles.Show
'選んだファイル一覧を出す
For i = 1 To fFiles.SelectedItems.Count
vGetFile = vGetFile & fFiles.SelectedItems.Item(i) & vbCrLf
Next i
If fFiles.SelectedItems.Count Then MsgBox vGetFile
Set fFiles = Nothing
'選んだファイルで正しいかダイアログを開いて聞く
iOkOrCancel = MsgBox("これでよろしいですか?", vbOKCancel)
つづく
519デフォルトの名無しさん:2013/10/30(水) 15:01:31.71
続けなくてよろしい。

コードを貼る前に、まずしたいことを箇条書きで書け。
520デフォルトの名無しさん:2013/10/30(水) 15:05:52.53
>>516
「指定した人だけに送信できるように変えたい」のに、「指定した人にだけ送信したいのに全員に送信されてしまう
不具合が発生」とは一体どういうことだ。
521デフォルトの名無しさん:2013/10/30(水) 15:42:18.10
なんでさえぎるの?続けなくちゃわからないのに。
人の話はちゃんと最後まで聞けと学校の先生に躾けてもらえなかったのか?
522デフォルトの名無しさん:2013/10/30(水) 16:14:21.55
>>521
> なんでさえぎるの?続けなくちゃわからないのに。

質問の内容と関係無い部分だから。単なるノイズ。
まあ、質問者が、どこが関係あってどこが関係無いのかすらわからない程のレベルなのかもしれんが。
523デフォルトの名無しさん:2013/10/30(水) 16:20:47.74
質問者に説明させるより、ソースを見た方が早そうなのに。
質問者もそう判断したんだろう。
さえぎられたから結局謎になってしまった。
524デフォルトの名無しさん:2013/10/30(水) 16:22:49.13
>>519-520
まずコードを全部貼ってもらった方が良くない?
肝心のメール送信部分がまだ書かれてないから
これじゃ何が悪いのか分からないよ。

FileDialogの扱いも
If fFile.Show=-1 Then・・・
みたいに書いたほうが良い気はするけど
ひとまずそこは後回しで、まずはコードを最後まで読みたい。
525デフォルトの名無しさん:2013/10/30(水) 16:29:44.16
>>519
例の、コードを読んだり書いたり出来ない荒らしの
口だけテンプレ君かい?
526デフォルトの名無しさん:2013/10/30(水) 16:34:02.57
長いコードはcodepadに貼るか、直接Bookをどっかにアップしてくれよ。
こんな調子で5レス10レス続けられても困る。
527524:2013/10/30(水) 16:37:54.11
>>525
この場合はコード全部出してもらうほうが解決は早いと思うが、
一般論としては>>519の言い分にも一理有る。

そんなことより、せっかくスレが機能しだしているこの状況で、
くだらないまぜっかえしだけが目的なら
君はその口だけ君と同レベルかそれ以下だって事を自覚したほうが良い。
528デフォルトの名無しさん:2013/10/30(水) 16:42:28.14
>>527
> くだらないまぜっかえしだけが目的なら

それは心外だな。

初心者は何が真の要求で、どうアプローチすれば良いかわからないのに、まずコードをどこかから探してきたりして
「こうやったのですがうまくいきません。何が悪いのでしょうか」的な質問をしがちで、そもそもそのアプローチが
間違っていることが往々にしてある。

俺に突っかかって来る奴の方が荒らしだと思うけどね。
529デフォルトの名無しさん:2013/10/30(水) 16:49:06.57
>>528
落ち着いて相手のレスをよく読めw
くだらないまぜっかえしと言われているのはお前じゃなくて>>525だ。

せっかくの質問をのっけから潰してしまう>>519みたいなレスの仕方は、
心底残念だとは思うけどね。
530520:2013/10/30(水) 16:53:55.28
あーうざいな。
俺がまとめてやるよ。

指定した人にだけ送信する機能を実装済みなのに、指定した人だけじゃなく全員に送信されてしまうバグが発生して修正箇所がわからない
→ コードを貼るのを続けるか、codepadかbookアップロード

指定した人にだけ送信する機能が未実装で、どうその機能を追加すればよいのかわからない
→ D列に送信済みかどうかのフラグを立て、メール送信処理でその行をスキップすればいいんじゃね?
531デフォルトの名無しさん:2013/10/30(水) 16:57:26.13
質問者はもう問題解決済みだと思うよ
532デフォルトの名無しさん:2013/10/30(水) 17:03:44.69
>>531
解決はしていないようだ
だが、いろんな反応から、ここでの質問は拒否されたと感じたんじゃないかな
533デフォルトの名無しさん:2013/10/30(水) 17:04:54.96
>>2がガン
534デフォルトの名無しさん:2013/10/30(水) 17:08:24.47
>>532
こんなクレクレ君なんか拒否していいよ
535デフォルトの名無しさん:2013/10/30(水) 17:09:33.87
300行ほど、長いコードだね
536デフォルトの名無しさん:2013/10/30(水) 17:13:32.66
クレクレだろうがなんだろうがそこは関係ないのがこのスレ
質問を見て答えたければ答えるし、答えたくないときはスルーする。
ただ、自分が気に入らないからといって
他の回答者を妨害したり、質問者を追い払うような真似はやめて欲しい。
537デフォルトの名無しさん:2013/10/30(水) 17:15:31.24
もうメタ議論はいいかげんにしろ
538デフォルトの名無しさん:2013/10/30(水) 17:18:47.10
>>536
> 他の回答者を妨害したり、質問者を追い払うような真似
俺はするけど。君には止められないよ。
539デフォルトの名無しさん:2013/10/30(水) 17:24:28.76
もうなんかこんな話ばっか。yosoでやって欲しいわ。
540デフォルトの名無しさん:2013/10/30(水) 17:29:55.47
俺は、「エラーが発生すると」の原因を調べて、そこで作業が中断しないようにし、リカバれるような仕組みにするのがいいと思うんだが。
541デフォルトの名無しさん:2013/10/30(水) 17:32:49.36
>>540
それもこれもソースを見てみないことにはどうにも出来ませんよね
542デフォルトの名無しさん:2013/10/30(水) 17:37:09.20
>>541
簡単に見つかる
543デフォルトの名無しさん:2013/10/30(水) 17:42:34.10
>>541
何をやりたいのかもあやふやなのに、まずコード見たいの?
544デフォルトの名無しさん:2013/10/30(水) 17:44:33.01
つか、給与明細送付処理ってかなりクリティカルな感じがするんだけど、こんな適当なことでいいのか?
545デフォルトの名無しさん:2013/10/30(水) 17:45:46.32
アンチ★5厨、逆にうざいわ
546デフォルトの名無しさん:2013/10/30(水) 17:49:14.21
来てみたらニュー速かと思ったわw
547デフォルトの名無しさん:2013/10/30(水) 17:50:38.05
>>543
コードを読めばどこでエラーがでるのか見当が付くじゃないですか。
そしたら質問者が何をしたいのかはおのずと判明するんじゃないですか?
あるいは、質問者も気づいてないバグを内包してるかもしれないけど
それを修正するのは悪いことではないし、コード見るのは良い方法だと思いますよ。

>>542
マジだw
ここにほぼ同じコードが載ってる
ttp://www.excel.studio-kazu.jp/kw/20131030144936.html
マルチだったのね。俺は別にどうでもいいけど。
548デフォルトの名無しさん:2013/10/30(水) 17:53:39.85
>>545
そうです、ここはうざいスレなんです。
あなたにぴったりのスレはこちらです。
http://toro.2ch.net/test/read.cgi/tech/1381151995/
二度とここには戻ってこないでね。
549519:2013/10/30(水) 17:53:54.37
>>547
> そしたら質問者が何をしたいのかはおのずと判明するんじゃないですか?

そうかな。
質問者は「選択して送信したい」らしいが、本当にやりたいことが「選択したい」ことなのかどうかわかるか?
やりたいことは、「選択したい」ではなくて「送信エラーにより未送信の人を選んで再送信したい」かもしれない。

それを知るためには、自然言語で説明して貰った方が良い。
550デフォルトの名無しさん:2013/10/30(水) 18:03:06.88
>>547
マルチと言えるかな
時間を見ると、このスレが拒否するような反応を示したから、
そのまま放置して別の所で質問したんだと思うよ。
>>549
「そこで指定した人だけに送信できるように変えたいのですが」
と意思表示してるょ
551519:2013/10/30(水) 18:09:06.13
>>550
> 時間を見ると、このスレが拒否するような反応を示したから、

俺がレスする前に投稿されたようだが。

> 「そこで指定した人だけに送信できるように変えたいのですが」
> と意思表示してるょ

ちょっと表現がわるかったか。
> 「送信エラーにより未送信の人を選んで再送信したい」

> 「もう一度送信処理を行うと、送信エラーになった人に再送信されるようにしたい」

つまり、人が選択したいのか、システムが選択するのかの違い。
552デフォルトの名無しさん:2013/10/30(水) 18:11:46.96
>>550

最初に質問が書き込まれたのが>>516-518
14時32分56秒〜14時39分37秒

多分向こうに投稿したのが
14時49分36秒

こっちで>>519がコード貼り付けを制止したのが
15時01分31秒

ここで止められてというより
コードの分割貼り付けがメンドクサクなっちゃったに1票
553デフォルトの名無しさん:2013/10/30(水) 18:18:02.33
>>551
時系列了解しました。
554デフォルトの名無しさん:2013/10/30(水) 18:18:26.95
まあ全コードがアップされたんだから、答えたい人はあっちで答えればいいってことでこの話題終了
555デフォルトの名無しさん:2013/10/30(水) 18:26:40.78
Function fSendMail() As BooleanがTrueになるケースがないだろ、というコメントだけしておこう。
読む気になれん。
556デフォルトの名無しさん:2013/10/30(水) 18:31:15.37
そう言えば前、桃白白も自分のコード
どっかに書いてリンク貼ってたけど、
あんな感じのだとどこら辺のがいいんだろ。
長いコードだとやっぱり色々大変だよね。
557桃白白 ◆9Jro6YFwm650 :2013/10/30(水) 18:38:30.82
>>556
桃白白はfriendpaste使ってる。ログインせずに投稿できて
投稿したあとに編集もできる。らくちんちん。
https://www.friendpaste.com/
558デフォルトの名無しさん:2013/10/30(水) 18:39:33.87
>>557
コードが長い場合はここに貼って質問しましょう

くらいのテンプレがあってもいいかな。
559デフォルトの名無しさん:2013/10/30(水) 18:41:50.74
'メールを設定するファンクション
Function fSetUpMail(sMailAddress As String, sMailFile As String) As Boolean
(〜中略〜)
fSetUpMail = True

End Function

'ファイルを添付してメールを送信するファンクション
Function fSendMail(vGetFile As Variant) As Boolean
(〜中略〜)
'[メールを設定する]ファンクションを呼び出す
If fSetUpMail(sMailAddress, sMailFile) = False Then
End If a = a + 1
Loop
fSendMail = False

End Function

FunctionじゃなくてSubでいいだろこれ
560デフォルトの名無しさん:2013/10/30(水) 18:49:54.99
>>557
ありがとう。
前ブックごとアップローダーでUPしたけど
そこまですること無いかなって時に便利そう。
561デフォルトの名無しさん:2013/10/31(木) 01:37:27.49
webクエリの更新で取り込んでるときに、取り込み終わるまで拘束される時と、されない時があるのはどうしてでしょうか。
Excelに拘束されないときは、他でサイトみたり文字打ったりできるんですけど、
拘束されるとwebクエリの取り込みが終わるまで、文字も打てないしクリックも出来なくなるので、長い取り込みの時に不便です。
何か良い方法はないでしょうか。win7のOffice2010

(更新対象のwebクエリのあるセル指定).QueryTable.Refresh BackgroundQuery:=False
562デフォルトの名無しさん:2013/11/01(金) 04:39:11.87
あげ
563デフォルトの名無しさん:2013/11/01(金) 12:25:40.10
別のシートからの値を書き込みシートに格納し
格納した値をもとにδr、δg、δbを計算して出力するというプログラムなのですが
81600行くらいしたところで ”実行時エラー1004:アプリケーション定義またはオブジェクト定義のエラーです。”とでます。
何がだめなのでしょうか。
564563:2013/11/01(金) 12:27:33.95
コード
Sub ScaleTransformation()
Set writesheet = ThisWorkbook.Worksheets("スケール変換")
Set Rsheet = ThisWorkbook.Worksheets("RGB-1_R")
Set Gsheet = ThisWorkbook.Worksheets("RGB-1_G")
Set Bsheet = ThisWorkbook.Worksheets("RGB-1_B")
writesheet.Range("b2").Value = "横列"
writesheet.Range("c2").Value = "縦列"
writesheet.Range("d2").Value = "R"
writesheet.Range("e2").Value = "G"
writesheet.Range("f2").Value = "B"
writesheet.Range("g2").Value = "δr"
writesheet.Range("h2").Value = "δg"
writesheet.Range("i2").Value = "δb"
565デフォルトの名無しさん:2013/11/01(金) 12:31:59.81
566デフォルトの名無しさん:2013/11/01(金) 12:52:22.00
>>564
そういう質問は本スレへ

Excel VBA 質問スレ Part32
http://toro.2ch.net/test/read.cgi/tech/1381151995/
567デフォルトの名無しさん:2013/11/01(金) 13:41:38.65
>>563
またコード貼るのあきらめちゃったのか?
エラーになった行付近くらい貼れよ。
568デフォルトの名無しさん:2013/11/01(金) 13:41:41.01
>563は他のスレに移った様だね
569デフォルトの名無しさん:2013/11/01(金) 14:12:44.69
でも、81600行までちゃんと動作してるのにいきなりエラーになるというのは
コードの問題じゃなくてPCの問題なのでは…
自分の場合、Dell製のPCを使った場合に限り、なんてことない画像コピーマクロで
しばしば動作が中断するようになった。SONYや富士通の時は平気だったのに。
570デフォルトの名無しさん:2013/11/01(金) 14:12:45.62
>>566
スレチすいません。そっちで質問させてもらいます
>>567
本スレの方で質問しましたので、見てもらえると助かります
>>568
はい
571デフォルトの名無しさん:2013/11/01(金) 14:14:21.85
>>569
やっぱりそういうのもあるのですか・・・
試しに別のPCでやってみます!
572デフォルトの名無しさん:2013/11/01(金) 14:59:58.64
VBA初心者です。

さっきスんばらしいFunctionを作ったのですが
引数が2つあって、もちろん2つの数値を渡したときはちゃんと動きます。

でも1つだけ指定して1つは省略、みたいにしても機能するようにしたいです。
それにはどうやればいいですか?
現状は引数を1つだけにした場合なんかエラーが出てます。
573デフォルトの名無しさん:2013/11/01(金) 15:14:50.12
>>563
Yが25になった時のループで
Ysは1060803になり、
writesheet.Cells(Ys, 2).Value = Y は、
エクセルの行数制限 1048576 を超えるから、エラーになる。
574デフォルトの名無しさん:2013/11/01(金) 15:16:14.01
>>572
Optional
575572:2013/11/01(金) 15:26:20.33
>>574
ありがとう!
でもOptionalってどこに使いますか?

こんな感じですか?

Function Test (Optional a as integer, b as integer)
・・・・・・
End Function

もしそうならこの場合2つの引数のうち前者が省略可なら
呼び出すほうはどう記述しますか?

Activecell.Value= Test (,2)

みたいに( , )の中のコンマの前を無記入というだけでいいですか?
576デフォルトの名無しさん:2013/11/01(金) 16:03:15.10
Function Test (b as integer, Optional a as integer)
・・・・・・
End Function

Activecell.Value= Test (2)
577572:2013/11/01(金) 16:09:04.84
>>576
よっしゃ!
578572:2013/11/01(金) 16:10:33.94
ところで省略した場合、
そのaの値はちゃんとゼロとして扱われますか?
それともなんらかの工夫(場合分け)をしてもし省略されてたときはそのとき用のコードを書かねばエラーが出ますか/
579デフォルトの名無しさん:2013/11/01(金) 16:17:42.22
それくらい自分で試せ
580デフォルトの名無しさん:2013/11/01(金) 16:26:33.67
>>578
Optionalの使い方くらいググれよ。
581デフォルトの名無しさん:2013/11/01(金) 17:39:32.88
>>573
なるほど存在しない行数のセルに値を入れてたから
オブジェクトエラーがでたと、、、
すごい納得しました、、
別の列も活用してみたいと思います
582572:2013/11/01(金) 20:07:00.34
>>579
>>580
そんなことおっしゃらずに教えていただけませんか?
わたしはかよわい初心者なのです
583デフォルトの名無しさん:2013/11/01(金) 20:11:55.03
糞白白の匂いがするなw
584デフォルトの名無しさん:2013/11/01(金) 20:30:29.02
そう言えば最近あまり見なくなったね
585デフォルトの名無しさん:2013/11/01(金) 20:32:29.37
>>582
function hoge(hage as variant,optional hige as variant=0) as variant
みたいに、省略したときのデフォルトの値を書いておく。
586572:2013/11/01(金) 20:37:42.59
>>585
ども!
そんな使い方があったのかー

でもそんな書き方だと省略しなくてもその指定した値が使われそうでない?
587デフォルトの名無しさん:2013/11/01(金) 20:39:21.95
>>586
そりゃ使われるよ
588デフォルトの名無しさん:2013/11/01(金) 20:40:15.06
ああごめん、省略しない場合はつかわれない。
589572:2013/11/01(金) 20:40:57.51
>>580
ググレよ言うヒマがあったら、どこ見てるか教えてくれよ。
専門外のことは誰にもわからないはずだ。

たとえばあなたが「ベルギー名物のワッフルの作り方」を教えてくれと言ってたら
わたしは単に「ググれ」とは言わないよ。
長年の経験から初心者にこそ伝えたい秘伝みたいなのがあるから。
しかもその秘伝はたった一言でつたらられるほど簡単なこと。
でもそのことはググることでは見つけることはほとんど不可能だろう。
590デフォルトの名無しさん:2013/11/01(金) 20:43:16.61
いつもの自演かw
591デフォルトの名無しさん:2013/11/01(金) 20:43:23.46
>>589
そんな大袈裟なもんでもないと思うけど
592桃白白 ◆9Jro6YFwm650 :2013/11/01(金) 20:45:23.35
>>589
ベルギー名物のワッフルの作り方をかわいい桃白白に教えて。
593デフォルトの名無しさん:2013/11/01(金) 22:07:03.17
ほんのり桃の香り
594デフォルトの名無しさん:2013/11/01(金) 22:57:42.88
>>589
オメェも糞うぜぇ奴だな
vba optional この2語をブラウザの検索ボックスに入れてエンターキー押せばいろんなサイトが出てくるだろうが。
それ見てから言え
595デフォルトの名無しさん:2013/11/01(金) 23:02:22.49
わっふるわっふる
596デフォルトの名無しさん:2013/11/01(金) 23:07:19.00
釣り堀すぎだろ
597デフォルトの名無しさん:2013/11/01(金) 23:08:30.27
ワッフル何それおいしいの?
って言ってるレベルのやつに作り方の極意教えてどうなるってんだ
598デフォルトの名無しさん:2013/11/02(土) 00:10:25.07
>>561
そのプログラムが、処理の間に、あちこちに、
sleepを入れていないから、他のプログラムに、
CPUのタイムスライスが、もらえないのかも

それとも、そのプログラムが、ロックしたり、同期したりして、
機器を独占するような、重要な処理をしているとか

それとも、そのプログラムの優先度が、他のプログラムよりも高くて、
CPUのタイムスライスが、もらえないとか
599デフォルトの名無しさん:2013/11/02(土) 02:08:53.99
句読点が、多過ぎて、読み辛い、かも
600デフォルトの名無しさん:2013/11/02(土) 05:52:11.67
>>599
句点はないと思うけどまあいいかどうでも
601デフォルトの名無しさん:2013/11/02(土) 07:41:16.11
なんでpowershell実行環境を付けないんだ?
いつまでもvbaじゃ効率わるいだろ
602デフォルトの名無しさん:2013/11/02(土) 13:44:12.25
>>561
タスクマネージャーを起動しておいて、
webクエリの更新時に、プロセス EXCEL.EXEのCPU値を見る事を勧める。
拘束時に90とか高くないなら、VBAも含めエクセル以外が拘束の原因かもしれない。
Cドライブの空き容量は?
拘束されるURLを知らせてもらえれば、それについても関連を調べられる。
603デフォルトの名無しさん:2013/11/02(土) 14:08:29.11
>>602
CPU0に割り当て固定し、そのCPUの使用率を見ないと「23%だったので違うと思います」って言われたり
604デフォルトの名無しさん:2013/11/02(土) 16:28:56.77
だれもBackgroundQuery:=False にはつっこまないのか
全部拘束されてるのに、あまりに短いから気付いて無いだけじゃないのか
605デフォルトの名無しさん:2013/11/03(日) 07:06:47.44
変数渡しである本で「参照渡しはするな。ほとんど使われない。」みたいにあったのですが、本当ですか?
本当なら参照渡しみたいなのはこれから学んでプロになるプログラマには混乱の元で有害だと思うのですが。

そしてこれは自分の感想なのですが
渡した変数はそのFunctionプロシージャ内では
代入として使ってはだめで  ’[変数]=数式 みたいな使い方
参照として使うのみ  ’[別の変数]=[変数]を含む数式
という方針でいいですか?
606デフォルトの名無しさん:2013/11/03(日) 07:21:46.73
>>605
そういう質問はこちらへ

Excel VBA 質問スレ Part32
http://toro.2ch.net/test/read.cgi/tech/1381151995/
607デフォルトの名無しさん:2013/11/03(日) 08:03:32.84
>>605
Excel VBA のプロ???
608デフォルトの名無しさん:2013/11/03(日) 09:18:15.54
>>606
そっちはテンプレの★2 ★3 ★4に抵触するからスレ違いだよ
609デフォルトの名無しさん:2013/11/03(日) 09:52:06.38
>>605
>変数渡しである本で「参照渡しはするな。ほとんど使われない。」みたいにあったのですが、本当ですか?

本当ではありません。引数はデフォルトで参照渡しです。デフォルトで参照渡しになっているということは
参照渡しを使うことが推奨されるということです。

>代入として使ってはだめで  ’[変数]=数式 みたいな使い方
>参照として使うのみ  ’[別の変数]=[変数]を含む数式
>という方針でいいですか?

その方針はダメです。代入するのがダメな理由がありません。
代入できるのですから最大限それを活用すべきです。
610デフォルトの名無しさん:2013/11/03(日) 10:00:53.69
その方針がダメな理由はあるのかい
611デフォルトの名無しさん:2013/11/03(日) 10:06:05.44
if function() thenぢゃなければええよ

そう、a = function()
if a thenならね
612デフォルトの名無しさん:2013/11/03(日) 10:07:24.33
>>610
その方針がダメな理由は代入できるってこと。
代入できるように言語が設計されてるんだから、
設計通りに使うのが言語の使い方として適切。
参照渡しと組み合わせればプログラミングの幅が広がる。
613デフォルトの名無しさん:2013/11/03(日) 10:09:28.72
>>611
よくわからない
614デフォルトの名無しさん:2013/11/03(日) 10:09:52.70
>>605
それ、VBAの本?
.Net系の本じゃないの?
615デフォルトの名無しさん:2013/11/03(日) 10:12:27.21
>>613
代入すべきか否かのお話で気にすべきはってことだけど
616デフォルトの名無しさん:2013/11/03(日) 10:15:11.10
>>615
> if function() thenぢゃなければええよ

これ代入になってないよ
617デフォルトの名無しさん:2013/11/03(日) 10:16:51.92
>>616
そうだね・・・きみアホだな
618デフォルトの名無しさん:2013/11/03(日) 10:17:29.65
>>617
俺からしたら君がアホに見える・・・
619デフォルトの名無しさん:2013/11/03(日) 10:19:10.68
>>618
暗黙的な排他的な指摘だと思うんだけど
1から10まで言わないと理解できないの?
620デフォルトの名無しさん:2013/11/03(日) 10:21:41.08
>>619
1から10まで言われないと理解できないから教えてください。
暗黙的な指摘ってなんですか?
排他的な指摘ってなにがですか?

>if function() thenぢゃなければええよ
>
>そう、a = function()
>if a thenならね

これってどういう意味ですか?
621デフォルトの名無しさん:2013/11/03(日) 10:23:45.27
Ifの条件式に関数を書くべきじゃないっていうことかな?
それ自体もよくわからないが、引数との関連もわからない。
意味不明すぎる。
622デフォルトの名無しさん:2013/11/03(日) 10:33:16.17
何かカプセル化絡みの話の様な気がするけど、
何でダメとその本に書いてあったのか聞きたいね。
623デフォルトの名無しさん:2013/11/03(日) 10:39:01.94
>>609
> 本当ではありません。引数はデフォルトで参照渡しです。デフォルトで参照渡しになっているということは
> 参照渡しを使うことが推奨されるということです。

マイクロソフトが公式見解なのかな?
個人的な見解だったら問題だと思うけど。
624デフォルトの名無しさん:2013/11/03(日) 10:46:56.33
>>622
>「参照渡しはするな。ほとんど使われない。」

ほとんど使われないから参照渡しはするなってだけだったら笑うよねw
625デフォルトの名無しさん:2013/11/03(日) 10:57:35.31
>>609
同じモジュール内ならどうでもいいです。
違うモジュール同士で使う時だけ意識してください。
なぜかはヒ ミ ツ(はぁと)
626デフォルトの名無しさん:2013/11/03(日) 10:59:07.21
>>605

>代入として使ってはだめで  ’[変数]=数式 みたいな使い方
>参照として使うのみ  ’[別の変数]=[変数]を含む数式
>という方針でいいですか?

引数 → 入力
代入 → 出力
と考えて、入力と出力をごっちゃにしないようにという理由ならいいんでないの
627デフォルトの名無しさん:2013/11/03(日) 13:18:44.30
>>626
いいんじゃないの

どうでも。
俺はそんなまどろっこしいことしないけど。
628デフォルトの名無しさん:2013/11/03(日) 14:38:04.08
>>627
オナニーコード書く人間らしいコメントw
629デフォルトの名無しさん:2013/11/03(日) 14:45:58.12
>>612
できることはしないとダメってこと?
そんなもん理由になるかアホ
630デフォルトの名無しさん:2013/11/03(日) 14:46:33.09
プログラムで飯食ってるがオナニーじゃないコードなんか一度も書いたことないよ
631デフォルトの名無しさん:2013/11/03(日) 14:58:22.26
>>629
制限をかけて自らの可能性を潰すべきじゃないってこと。

よくわかってないから混乱する。
混乱するから有害だ。
有害だから制限する。

こういう負の連鎖から

使いまくってわかるようになれば混乱しなくなる。
混乱しないから無害。
無害だから制限する必要ない。

こういう正の連鎖に転換を図るべき。
プロになるプログラマなら参照渡しを使いこなして当然。
逃げちゃダメだ、逃げちゃダメだ、逃げちゃダメだ、これこそが碇シンジメソッド。
632デフォルトの名無しさん:2013/11/03(日) 15:02:02.69
糞白白臭がひどいw
633デフォルトの名無しさん:2013/11/03(日) 15:02:26.16
>>628
うぜぇよコード書ける様になってから
出直せテンプレ野郎
634デフォルトの名無しさん:2013/11/03(日) 15:04:22.58
早くVBAサポートうちきられろや
世の中はもうドトネトなんだよ
いつまでもCOMとかいう糞にしがみつくな
635デフォルトの名無しさん:2013/11/03(日) 15:09:43.91
>>634
なんでこのスレにいんの?
636デフォルトの名無しさん:2013/11/03(日) 15:11:10.77
>>631
なら例えば「GoToは使わない」って方針はダメってことになるんだが
そういうことだね?
637デフォルトの名無しさん:2013/11/03(日) 15:14:33.02
>>636
お前、例外ハンドリングする時にGoto使わないの?
638デフォルトの名無しさん:2013/11/03(日) 15:22:28.65
>>636
GoToと参照渡しは関係無いような気もするが、
自分だったらGoToの弊害を列挙してGoToを使うデメリットと
GoToを使わないメリットを力説するだろうな。
十把一絡げに語れるものじゃないと思うが。
639デフォルトの名無しさん:2013/11/03(日) 15:30:56.99
VBAとかいうゴミが無くなればgotoなんてイヤイヤ使わなくて済むのにね
640デフォルトの名無しさん:2013/11/03(日) 15:44:17.41
とりあえずその「ある本」とやらのタイトルと筆者さらせや
どんな文脈でどんな意味でそう言ったのか分からん
641デフォルトの名無しさん:2013/11/03(日) 15:44:52.09
>>639
VBAはそう言うもんなんだから仕方ない。
嫌なら.Net側からEXCELいじればいい。
642デフォルトの名無しさん:2013/11/03(日) 15:49:23.58
>>609
べつに参照渡しを推奨なんてしとらんと思うが
デフォルトが参照渡しなのは、値渡しでは出来ない事が出来るからそうなってるだけ
関数の基本としては引数は変更しちゃ駄目。それすでに数学的には関数じゃない
プログラミングでのプロシジャとしては、そうできた方が便利な事があるから出来るようにしてあるだけ
643デフォルトの名無しさん:2013/11/03(日) 15:51:47.31
>>642
FunctionじゃないならSubにすればいいだけだと思うが・・・
644デフォルトの名無しさん:2013/11/03(日) 15:52:26.76
>>637
On Error GoToとGoToは別のステートメントだよ

>>638
GoToは例え
>>612>>631が「理由になってない」って言いたいだけ
メリットもデメリットも説明されてない
645デフォルトの名無しさん:2013/11/03(日) 16:00:19.16
>>644
なら、値型の方がいいと思ってるの?
だとしたら、その理由は?
646デフォルトの名無しさん:2013/11/03(日) 16:09:31.13
>>644
たとえになってないって言ってるんだよ。
GoToがこうだから参照渡しがこうだと言えるようなものじゃないよねってこと。
参照渡しに制限をかけるメリットを説明するのは自分じゃないから
自分に言われても困る。自分が言ったのはGoToについて自分だったら使わないメリットを
示すってこと。自分は参照渡しとGoToを区別して考えてるけど、君は同じように考えないと
気がすまないのかな。なんかそれって不器用だよね。小回りがきかないっていうの、イノシシみたい。
647デフォルトの名無しさん:2013/11/03(日) 16:10:17.50
>>645
話を逸らすなよ。
>>644の回答になってない。
648デフォルトの名無しさん:2013/11/03(日) 16:10:36.13
>>642
>関数の基本としては引数は変更しちゃ駄目。それすでに数学的には関数じゃない

これは何で?
649デフォルトの名無しさん:2013/11/03(日) 16:12:19.35
>>646
雲行きが怪しくなってきたら論点をずらすのか。
クレクレ君の言いそうなことだな。
650デフォルトの名無しさん:2013/11/03(日) 16:12:38.53
>>647
>>644の回答って?
それ自体質問にはみえないけど。
651デフォルトの名無しさん:2013/11/03(日) 16:15:33.78
>>649
参照渡しの話だったよね。自分は参照渡しの話をしてたよ。
GoToで論点をずらしたのは>>637のように見えるけど・・・
652デフォルトの名無しさん:2013/11/03(日) 16:17:43.23
>>651
ああ悪い、>>637>>636の間違い。
653デフォルトの名無しさん:2013/11/03(日) 16:17:53.20
>>650
そうやって逃げるんだw
口だけテンプレ君か。
654デフォルトの名無しさん:2013/11/03(日) 16:18:43.91
>>651
いや、実際に論点を変えたのは>>636
なら参照渡しに話を戻せばいい。
そもそもはそれの話だった訳だから。
655デフォルトの名無しさん:2013/11/03(日) 16:20:43.05
>>651
ずれそうだから元に戻そうとしてるだろ。
何で数レスだけのやり取りの流れを把握できないんだろろうね。
656デフォルトの名無しさん:2013/11/03(日) 16:22:18.01
>>653
自分も>>644は質問に読めないけどなあ・・・

>>654
アンカー間違った、すまん。その考えに齟齬はない。
657デフォルトの名無しさん:2013/11/03(日) 16:32:29.75
で、>>648にはどんな回答をしてくれるのかなあ。
658デフォルトの名無しさん:2013/11/03(日) 17:20:26.19
数学的な関数 y=f(x) だと確かに引数 x の変更はありえないけど、
そのこととプログラム言語における関数を完全に同一視してる時点で単なる知識自慢の失敗にしか見えない
659デフォルトの名無しさん:2013/11/03(日) 17:30:52.11
>>658
数学的関数というより、バグ対策だろ。
書き換えちゃいけない値を書き換える可能性があるわけだから。
660デフォルトの名無しさん:2013/11/03(日) 17:55:21.31
>>659

値渡しで渡したって元の変数の内容が変わる場合だってあるでしょ?
それは理由にならないよね。
661デフォルトの名無しさん:2013/11/03(日) 18:15:07.23
値渡しで元の変数の内容変えられるか?
元の変数がオブジェクトを持ってた場合、そのオブジェクトの状態は変わるが
元の変数が持ってるオブジェクトを別のオブジェクトに差し替えたりはできないはず
662デフォルトの名無しさん:2013/11/03(日) 18:27:52.33
>>661
値を変えてはいけないと言う観点からみれば
参照型変数の値渡しの場合、例えばそれがクラスだったとして、
そのプロパティを変えたりすれば元の方のプロパティが変わる。
クラスの差し替えは内容が書き換えられると言う観点で言えば、
クラス自体の参照先の書き換えとなるのでまた別問題。
663デフォルトの名無しさん:2013/11/03(日) 18:34:58.65
もちろん、>>622で言ってるクラスと言うのはクラスのインスタンスのことで、参照先を書き換えると言ってるのは
スタックエリアに格納される参照先アドレスのことだからね。
変な上げ足は取らないでね。
664デフォルトの名無しさん:2013/11/03(日) 18:35:58.37
間違えた。>>622じゃなくて>>662ね。
665デフォルトの名無しさん:2013/11/03(日) 18:36:17.64
>>658
完全に同一視してるわけではないと思うが
プログラミングでのプロシジャとしては、ってかいてあるじゃん
666デフォルトの名無しさん:2013/11/03(日) 18:45:16.36
>>662
根本的に認識間違ってるだろw
667デフォルトの名無しさん:2013/11/03(日) 18:46:48.69
>>666
何がどう間違ってるって?
668デフォルトの名無しさん:2013/11/03(日) 18:51:59.80
>>630
プログラマの仕事って一日中プログラミングしてるんですか?
それだったら転職したい。
スキルがUPするなら毎日楽しそう。

でもそんなに1年中プログラミングするほど仕事が存在するのかな?
669デフォルトの名無しさん:2013/11/03(日) 18:57:52.68
発見したんだけど
関数の引数は変更しないようルールを守れば
値渡しでも参照渡しでもどちらも動きは全く同じなので
全く気にしなくていいから楽なのでは?
670デフォルトの名無しさん:2013/11/03(日) 18:59:54.38
そんなにみんなけんかするなら
新しい変数の渡し方「矢切りの渡し」に統一すればいいんじゃないか?
671デフォルトの名無しさん:2013/11/03(日) 19:00:37.27
>>669
挙動をちゃんと把握していればそんなルール作る必要無いと思うけど
672デフォルトの名無しさん:2013/11/03(日) 19:05:03.37
>>668
プログラミングの仕事なんて、コード書く時間なんてほんの少し。
もしかして本チャンのコードを書きながら仕様を考えてるなんて思ってるのか?
673デフォルトの名無しさん:2013/11/03(日) 19:07:57.48
「方針」の方は参照渡しの話じゃないだろ
お前らやっぱり頭悪いな
674デフォルトの名無しさん:2013/11/03(日) 19:08:18.29
>>668
いいなー、プログラム組むだけで
要件定義書も仕様書も作らずテストもしない世界。
675デフォルトの名無しさん:2013/11/03(日) 19:10:28.39
>>661>>662だと
>>661の方が簡潔でわかりやすい。
>>662はたぶん>>661と同じことを言ってるんだろうがわかりにくいw
676デフォルトの名無しさん:2013/11/03(日) 19:11:06.05
>>673
お前本当にルールで縛るの大好きな。
向こうのスレでいくらでも縛られてればいいじゃん。
677デフォルトの名無しさん:2013/11/03(日) 19:12:46.87
>>668
コーディングなんて下っ端の仕事と思われてるんで零細ブラックなら心が折れるまで書き続けられるよ
678デフォルトの名無しさん:2013/11/03(日) 19:13:47.65
>>676
は?
頭大丈夫?
679デフォルトの名無しさん:2013/11/03(日) 19:23:48.50
>>678
は?
煽って荒らしに来たんなら帰れよ
680デフォルトの名無しさん:2013/11/03(日) 19:24:39.64
>>679
いやだから何言ってんだお前
681デフォルトの名無しさん:2013/11/03(日) 19:26:10.45
>>680
お前こそ何言ってんだ?
682デフォルトの名無しさん:2013/11/03(日) 19:27:44.23
>>681
>>676が意味不明だと言っている
683デフォルトの名無しさん:2013/11/03(日) 19:30:03.53
>>682
>>673の方針とやらで縛りたいなら
いくらでも向こうのスレで縛られろと言っている
684デフォルトの名無しさん:2013/11/03(日) 19:33:19.79
>>683
アホか
>>672の「方針」ってのは >>605のレスにある「方針」の事だ
685デフォルトの名無しさん:2013/11/03(日) 19:34:39.74
>>672じゃねえや>>673
686デフォルトの名無しさん:2013/11/03(日) 19:37:07.51
>>672
本チャンとは?
687デフォルトの名無しさん:2013/11/03(日) 19:43:01.27
>>684
なんだ>>609から話を堂々巡りさせたいのか?
688デフォルトの名無しさん:2013/11/03(日) 19:49:24.91
>>687
いや、頭悪い連中と話しても無駄だし
しかし頭の悪さではお前がダントツだったよ
689デフォルトの名無しさん:2013/11/03(日) 19:49:56.66
'************************************************************************************************
' 列削除プロシージャ(列ラベル, 列ラベル辞書, 対象シート )列を消して辞書からも該当列を消す
'  前提プロシージャ:BuildColumnLabelDictionary(列ラベルと列番号の辞書オブジェクトを作成する)
'************************************************************************************************
Private Sub DeleteColumn(ByVal delColLabel As String, ByRef targetSheet As Worksheet, ByRef srcDic As Object)
    'delColLabel:削除したい列のラベル
    'targetSheet:対象のシート
    'srcDic:対象の列ラベル辞書
    Dim delColIndex As Long '削除列番号
    Dim colLabel As Variant '列ラベル(列チェックに使用する)
    '削除する列ラベルが辞書に存在すれば、辞書とシートから該当列を削除する。
    '該当列より右の列は、列番号を1ずつ減らして辞書に再記録する
    With targetSheet
        If srcDic.Exists(delColLabel) Then
           delColIndex = srcDic(delColLabel)
           .Columns(srcDic(delColLabel)).Delete
           srcDic.Remove (delColLabel)
           For Each colLabel In srcDic.Keys
               If srcDic(colLabel) > delColIndex Then srcDic(colLabel) = srcDic(colLabel) - 1
           Next colLabel
       Else
           '対象のラベルが辞書に存在しない時のエラー処理(省略)
       End If
    End With
End Sub
690デフォルトの名無しさん:2013/11/03(日) 19:50:18.98
>>688
煽って荒らしに来たんなら帰れよ
691デフォルトの名無しさん:2013/11/03(日) 19:53:58.55
>>689
で?
692デフォルトの名無しさん:2013/11/03(日) 20:02:19.13
>>689
続きが無いってのは誤爆かい?
693689:2013/11/03(日) 20:26:41.60
結果的に色々間違ってたので見なかったことにしてください
694デフォルトの名無しさん:2013/11/03(日) 20:32:39.64
Let's 魚拓
695689:2013/11/03(日) 20:52:39.26
ああ、コードはどうでもいいです
696デフォルトの名無しさん:2013/11/03(日) 21:04:27.91
設計やらして、くれるなら御の字でしょ
うちは他人が作った腐りきったスパゲティを一本一本紐解く仕事のが多いから死にそう
697デフォルトの名無しさん:2013/11/04(月) 10:46:00.18
>>696
楽しそうでいいやん。
スキルもつきそうだし。

こっちはデータセンタの仕事で、大量の部品のシリアル番号を手書きしたりスキャンしたりつまんないぞ。
他のIT業界で転用できるスキルもつかないし
698デフォルトの名無しさん:2013/11/04(月) 10:57:55.95
>>697
転職すりゃええやん
699697:2013/11/04(月) 20:42:32.91
>>698
そういたします。
やっぱりプログラマは専門職だから給料もいいんでしょうな?
残業はあっても楽しいプログラミングならば耐えれると思うし、残業代も高額ならそれもやる気が出そうだし。
月給で40万くらいある?
700デフォルトの名無しさん:2013/11/04(月) 20:59:49.11
プログラマって現代の奴隷の隠語だよ?
701デフォルトの名無しさん:2013/11/04(月) 21:01:45.18
手取りで最低50万くらいはあるんじゃないの?
よく知らんけど。
702デフォルトの名無しさん:2013/11/04(月) 22:10:40.59
>>699
技術開発とかする部署に行けばいいんじゃない?
最新技術を拾ってきて社内に展開したり?セミナー開いたり?
他の部署には疎くてな。
でもウチんとこはそんなプロフェッショナルが育つ土壌が無く、大体中途との噂。
703デフォルトの名無しさん:2013/11/04(月) 22:33:10.12
中小はスキルアップするのも大変だね
下らない仕事に時間を奪われて勉強する時間が奪われる
704デフォルトの名無しさん:2013/11/04(月) 22:35:23.45
大手だって自分で努力して時間を作らないとスキルアップなんてできないけどな
705デフォルトの名無しさん:2013/11/04(月) 22:42:00.38
いいとこは業務自体がすでに勉強になる
土方の仕事は頭使わないし難しいことしない肉体労働に近いから得るものがない
706デフォルトの名無しさん:2013/11/04(月) 23:31:35.44
うち割といいとこだけど残業死ぬほどやっても手取り25がいいとこだよ
707デフォルトの名無しさん:2013/11/05(火) 06:45:24.92
>>703
大手は仕事が細分化され過ぎ
708デフォルトの名無しさん:2013/11/05(火) 14:55:43.73
色を使うときの定数
vbRedとかvbBlueはすぐわかるけど
オレンジ色、紫色、ぐんじょう色、うす緑色、水色、などなど
これらの色のあvbで始まるアルファベットを忘れた場合、どうやって調べますか?

*ネットのつながらない環境とします
709デフォルトの名無しさん:2013/11/05(火) 14:57:18.04
VBAで使う関数の使い方のHelpは、どうやって調べますか?
例えばあるフォルダにあるファイルすべてのファイル名を調べたいときのDir関数の使い方を忘れたとき、などなどなど・・・

*ネットのつながらない環境とします
710デフォルトの名無しさん:2013/11/05(火) 15:09:29.95
ggっても分からなかったので質問させてください・・・

今は、subの中に(DoEventsの入った)ループがあって、
1秒ごとにサブルーチンを呼んでいます。

それが走っている裏でワークシートの値をキーボードから編集してしまうと、
VBEが隠れてマクロ自体も停止してしまうようです。

マクロを止める前に呼び出されるイベントなどご存知でしたらお教え下さらないでしょうか・・・
(再開するために、フラグを書き込みたいのです)

ご多忙中恐縮ですが、お教えくださればありがたいですm(_ _;)m
711デフォルトの名無しさん:2013/11/05(火) 15:31:34.51
>>708,709
F1
712デフォルトの名無しさん:2013/11/05(火) 15:33:58.63
>>710
OnTime使うか、それで要件を満たせないなら、ActiveX EXEで1秒ごとにイベント発行しろ
713デフォルトの名無しさん:2013/11/05(火) 18:05:51.96
>>709
PowerShellを使う
714デフォルトの名無しさん:2013/11/05(火) 22:15:56.33
VBAと違うけどWebクエリの話もここでいい?
仕掛データのテーブル(html)を読んでシートに移すクエリを作ったのだけど
テーブルの大きさ(正確には行数)が変わるんだけど、それにも対応して
くれているだろうか?html表示するとテーブルのみが出る仕様になっていて、
テーブル全部を選択(一番左上の矢印を選択)して保存するようにはしたのだけど。
教えてください!
715デフォルトの名無しさん:2013/11/05(火) 22:31:28.46
>>714
なんでここでそんな質問してるんだ?
答えられる人なんていないぞ?
716デフォルトの名無しさん:2013/11/05(火) 22:42:52.46
>>714
htmlの表示と、クエリの表示を自分で見比べれば疑問の答えは得られる。
717デフォルトの名無しさん:2013/11/05(火) 22:46:38.22
>>715
2ch検索で上級者向けの質問スレが見当たらなかったので猛者が多そうな
ここにしました。
>>716
自分でhtmlテーブル作ってたしかめたらわかりました。テーブルの
サイズが変わっても全部読んでくれるみたいです。ありがとう。
718デフォルトの名無しさん:2013/11/06(水) 01:46:58.38
Excelの強力なツールの一つであるマクロ使ってあることをしたいんだけど、そのマクロを一気に複数のファイルに使うことできないのかな?
いつもシコシコ1ファイルづつマクロ動かして、保存…って作業してるんだが
719デフォルトの名無しさん:2013/11/06(水) 05:11:58.10
>>718
マクロ作る→
アドイン化する→
アドインをExcelに登録→
Win32OLE使えるスクリプトで「ファイル探す→ファイル開く→アドインマクロ実行→ファイル保存」のLOOP組む


Win32OLEはActivePerlでもRuby(Windows)でも利用可能
720デフォルトの名無しさん:2013/11/06(水) 05:13:34.96
抜けてた・・・・・・

>>718
マクロ作る→
アドイン化する→
アドインをExcelに登録→
Win32OLE使えるスクリプトで「ファイル探す→ファイル開く→アドインマクロ実行→ファイル保存」のLOOP組む→
スクリプトを実行


Win32OLEはActivePerlでもRuby(Windows)でも利用可能
721デフォルトの名無しさん:2013/11/06(水) 07:40:13.66
>>718
簡単に出来るよ
722デフォルトの名無しさん:2013/11/06(水) 09:43:50.42
自演ネタ探し中かw
723デフォルトの名無しさん:2013/11/06(水) 10:27:53.46
ExcelVBAから、Outlookのカレンダーに予定を追加したいんですが

・開始日/時刻
・終了日/時刻
・件名

だけでいいんです。
どうやってコード書けばいいですか?
(あらかじめ上記3つはExcelシートの3列を使って準備できているとします)
724デフォルトの名無しさん:2013/11/06(水) 10:29:35.39
ExcelVBAから、各PCのログインしてる人の姓と名を取り出すことはできますか?
ちなみに環境は会社でActiveDirectoryを使っています。
725デフォルトの名無しさん:2013/11/06(水) 15:45:29.95
誰かあのAA張ってくれ
726デフォルトの名無しさん:2013/11/06(水) 17:04:05.68
あのAA(AAry
727デフォルトの名無しさん:2013/11/06(水) 18:03:15.42
'D(**) 変数 D*** オブジェクト

Set D(1) = D001
Set D(2) = D002
Set D(3) = D003
Set D(4) = D004
Set D(5) = D005
Set D(6) = D006
Set D(7) = D007
Set D(8) = D008
Set D(9) = D009
Set D(10) = D010
Set D(11) = D011
Set D(12) = D012
Set D(13) = D013
Set D(14) = D014
Set D(15) = D015
Set D(16) = D016
       ・
       ・
       ・

まとめて処理する方法ありますか?
       
728デフォルトの名無しさん:2013/11/06(水) 18:25:44.63
>>727
普通じゃできません。
Dxxxを作るときに配列で作りましょう。
729デフォルトの名無しさん:2013/11/06(水) 18:28:00.36
聞かれる前に言っとくと、普通じゃないやり方は以下を参照。
http://excelappwithvba.web.fc2.com/generating_report_sheet/attaching_vba_code.html
730デフォルトの名無しさん:2013/11/06(水) 18:49:25.78
vbaの仮想メモリの容量ってどのくらいのものなんですか?
731デフォルトの名無しさん:2013/11/06(水) 19:06:17.89
256MB
732デフォルトの名無しさん:2013/11/06(水) 19:26:01.87
>>731
ありがとうございます
めっちゃ少ないんですね
733デフォルトの名無しさん:2013/11/06(水) 21:47:53.10
>>728
参考にします
ありがとうございます
734デフォルトの名無しさん:2013/11/06(水) 23:05:01.66
>>727
あります
735デフォルトの名無しさん:2013/11/07(木) 02:28:43.70
もう一度お聞きします。
ExcelVBAから、Outlookのカレンダーに予定を追加したいんですが

・開始日/時刻
・終了日/時刻
・件名

だけでいいんです。
どうやってコード書けばいいですか?
(あらかじめ上記3つはExcelシートの3列を使って準備できているとします)
736デフォルトの名無しさん:2013/11/07(木) 02:45:23.17
737デフォルトの名無しさん:2013/11/07(木) 02:51:13.24
>>736
ありがとうございます。
トライしてみます。
738デフォルトの名無しさん:2013/11/07(木) 02:51:43.54
再度お聞きしましょう。
ExcelVBAから、各PCのログインしてる人の姓と名を取り出すことはできますか?
ちなみに環境は会社でActiveDirectoryを使っています。
739デフォルトの名無しさん:2013/11/07(木) 03:40:51.26
おk
740デフォルトの名無しさん:2013/11/07(木) 07:22:56.84
>>738
出来ますよ
741デフォルトの名無しさん:2013/11/07(木) 07:33:29.98
>>738
ググって見つけたページを見て理解できなかったのなら
ここで聞いても内容は同じなので結局理解できないと思う・・・
742デフォルトの名無しさん:2013/11/07(木) 10:02:07.19
>>734

>>728さんの方法以外にもいい方法あるって事ですか?
743デフォルトの名無しさん:2013/11/07(木) 10:16:46.27
>>742
種類による
なんのオブジェクト?
744デフォルトの名無しさん:2013/11/07(木) 14:19:28.01
>>743
ユーザーフォームのComboBoxのオブジェクトです
745デフォルトの名無しさん:2013/11/07(木) 15:10:05.67
>>744
ComboBox1とかComboBox2とかいうのをオブジェクト変数にセットしたいって事?
だったらこんな感じで出来るんじゃない?

Sub test()
Dim I As Long
Dim D(10) As Object
For I = 1 To 10
  Set D(I) = Controls("ComboBox" & I)
Next I
End Sub
746745:2013/11/07(木) 15:14:25.54
でも良く考えたらComboBoxを
わざわざオブジェクト変数に代入する意味が良くわからない。
Controls使えばまとめて処理できるんだから
そのまんま使ったほうが早いよね?
747デフォルトの名無しさん:2013/11/07(木) 17:09:28.69
VBAマクロを実行中でも別の作業をしたいのですがコード中にSelection.CopyやPasteがある為、マクロが終わるまで触れません。
Excel外に影響しないように、クリップボードをSundbox化のようなことはできないでしょうか?
CopyやPasteを使わないように、xlRangeValueXMLSpreadsheetを使うように書き換えてみたのですが速度が遅くて使えませんでした。
748デフォルトの名無しさん:2013/11/07(木) 17:18:59.40
>>747
できません。
749デフォルトの名無しさん:2013/11/07(木) 18:56:02.82
>>747
マクロを書き換えて、クリップボードを使わずにデータのコピーや移動をするしかない
どっちかの作業を仮想マシンにして、OSごとサンドボックスに入れるという手もあるけど
俺ならパソコン2台並べる
750デフォルトの名無しさん:2013/11/07(木) 19:11:52.83
>>747
VBAの限界を感じるねぇ
751デフォルトの名無しさん:2013/11/07(木) 19:22:19.97
VBAの仕事はCOMに処理を移譲するだけで十分
めんどくさいし遅いしでVBAで書くメリットがない
752747:2013/11/08(金) 07:48:54.02
やはり無理ですか。
仮想化や別PCはできない環境なんですよね。
クリップボードを使わないように書き換えて対応します。
753デフォルトの名無しさん:2013/11/08(金) 09:18:41.05
赤はvbRed、黒はvbBlack、
では灰色は?オレンジは?
さらにその調べ方は?
754片山博文MZコスモ ◆T6xkBnTXz7B0 :2013/11/08(金) 10:48:12.37
>>753 「vbRed vbBlack」でググる

http://www.red.oit-net.jp/tatsuya/vb/fixed.htm
755片山博文MZコスモ ◆T6xkBnTXz7B0 :2013/11/08(金) 10:59:29.87
灰色は&HCCCCCC、オレンジは&HFFA500
VBの色コードは&HBBGGRRになっている(BBが青、GGが緑、RRが赤の成分の十六進数)。
「RGB 灰色」などでググる。
756片山博文MZコスモ ◆T6xkBnTXz7B0 :2013/11/08(金) 11:35:10.51
ちなみにWebのカラーコードは#RRGGBBになっていることが多い。
757デフォルトの名無しさん:2013/11/08(金) 11:46:34.80
>>753
とりあえずvbredとか知ってる名前を一つ入力して、そこにカーソルを合わせてF1を押すと残りの一覧が出る
ちなみにオレンジなんて定数にないよ
758753:2013/11/08(金) 12:06:02.12
なるほどありがとうございます。
意外と定数の数は少ないんですね。

ところでヒラメいたんですが
自分で
vbOrange
vbGray
vbDarkYellow
vbGunjyoIro
みたいな定数を作りたいんですが
そのためにはどうしますか?(基本的な質問かもしれませんが
759デフォルトの名無しさん:2013/11/08(金) 12:24:53.20
>>758
VBAのヘルプで「XlRgbColor 列挙」
760片山博文MZコスモ ◆T6xkBnTXz7B0 :2013/11/08(金) 13:02:33.98
Const vbLightBlue = &HE6D8AD 'Hex(RGB(230, 216, 255))でもいい

http://okwave.jp/qa/q173116.html
761デフォルトの名無しさん:2013/11/08(金) 13:53:13.48
ビルトイン定数じゃないのにvbというプレフィックスを付けるのは良くない
762デフォルトの名無しさん:2013/11/08(金) 14:08:08.24
定数にはIntegerとかStringとかいうやつはつけなくてもいいんですか?
763片山博文MZコスモ ◆T6xkBnTXz7B0 :2013/11/08(金) 15:05:32.20
>>762 Option StrictがOffの場合は省略できます。

http://msdn.microsoft.com/ja-jp/library/cyxe49xw.aspx
764デフォルトの名無しさん:2013/11/08(金) 18:30:39.46
>>762
付けろ
>>763
Option Explicitじゃなかったっけ?
765デフォルトの名無しさん:2013/11/08(金) 18:31:59.27
ああ済まん、定数ね
766デフォルトの名無しさん:2013/11/08(金) 20:37:33.48
VBAも進化して、Option Strict 使える様になったんだ!?
767デフォルトの名無しさん:2013/11/08(金) 20:45:35.98
進化なんてのは.NET使えるようになってから言えばいいよ
768デフォルトの名無しさん:2013/11/08(金) 21:06:14.28
果たしてこのスレに.Net使える人が
どのくらいいるもんだろうか。
まぁ、動きゃいいってくらいなら結構いるかも知れないが。
769デフォルトの名無しさん:2013/11/08(金) 21:27:36.79
あまり居ないように思う
Option Strict が判らないくらいだから
770デフォルトの名無しさん:2013/11/08(金) 22:25:27.30
インストールしたCOMアドインをマクロで実行したいんだけど、
VBAからアドインってどうやって呼び出せばいいですか?
771デフォルトの名無しさん:2013/11/08(金) 23:47:54.87
マクロ記録
772デフォルトの名無しさん:2013/11/09(土) 09:28:58.41
このスレもやっと落ち着いてきたな
773デフォルトの名無しさん:2013/11/09(土) 09:32:43.08
excelの代替アプリでCOMコンポーネントを使えたり、逆にCOMコンポーネントとして他のシステムから利用できるアプリは有りますか?
774デフォルトの名無しさん:2013/11/09(土) 09:50:06.32
LibreOffice
775デフォルトの名無しさん:2013/11/09(土) 11:28:09.25
>>770
電話で呼び出せばいいよ
776デフォルトの名無しさん:2013/11/09(土) 11:29:28.26
うっふーん
777777:2013/11/09(土) 11:30:01.04
777げっち(´・ω・`)b
778デフォルトの名無しさん:2013/11/09(土) 11:30:43.58
 
779デフォルトの名無しさん:2013/11/09(土) 13:11:41.33
EXCELとAruduinoを通信させたいのです。
作例見ますとEasyCommがデファクトのように使用されているのですが、この夏作者さんが公開停止かけてしまいました。

お助け下さい。
780デフォルトの名無しさん:2013/11/09(土) 15:37:05.17
>>779
このスレよりも「AVRマイコン総合スレ Part30」
http://uni.2ch.net/test/read.cgi/denki/1380374389/
の方が的確な回答を得られるのでは?
781デフォルトの名無しさん:2013/11/09(土) 15:47:48.94
VBA初心者ですが
VBAで多くのシートを連続呼び出し&書き込み処理するような命令を書きますとシートが激しく点滅するように動きますが
これはCPUのスピードが速いほうがより速く動くというのはわかったのですが
高速な画面表示に関してはグラフィックカードの性能も関係してくるかと思うのですが
高性能グラフィックカードを搭載するとミリ秒単位ででも多少なりとも更に速くなるのでしょうか?全く同じなのでしょうか?
782デフォルトの名無しさん:2013/11/09(土) 15:58:31.88
ScreenUpdating
783デフォルトの名無しさん:2013/11/09(土) 16:08:04.83
>>781
なるよ
784デフォルトの名無しさん:2013/11/09(土) 17:29:15.00
GPUも使っているのだろうか?
785779:2013/11/09(土) 17:56:26.50
>>780
ありがとうございました。

本を読んでVBAでWin32APIを呼び、ポートの認識まで確認して、挫折しました。
で、どなたかEasyCommの所在をご存知ないかなと質問しました。
786デフォルトの名無しさん:2013/11/10(日) 02:24:39.83
>>784
EXCELはWindowsをつかってる
WindowsがGPUを使ってる
787デフォルトの名無しさん:2013/11/10(日) 07:17:03.79
>>781
質問からは外れるけど、
点滅するのを早めるのではなくて
点滅しないようにするのが普通だと思う
788デフォルトの名無しさん:2013/11/10(日) 15:20:13.54
Functionの引数をわたすときOptinalにすると省略できますが
省略したとき0が入っています。

0を意図的に渡したときと、省略した結果0になっているばあいを、
Functionプロシージャの中で区別するにはどうすればいいですか?
789デフォルトの名無しさん:2013/11/10(日) 16:45:03.36
>>788
省略したときにどうなるかは渡す引数の型に依存するから
必ずしもゼロにはならない。
たとえばstring型は引数を省略すると""になるし、
boolean型ならfalseになる。

数値を入れる変数(long型とか)だと0になるようだけど
たとえばfunctionにはvariant型で渡して、
functionの内部でclngで型変換してから使うとかすれば?
variant型で省略したらどうなるのか試してみたら
IsNullとかIsEmptyではどっちもFalseになって判別できなかったけど
iserrorでTrueになったからそれで判定できると思う。

ちなみにこんなんで試した
Sub test()
Dim a As Variant
a = func()
End If
End Sub

Function func(Optional a As Variant) As Variant
If IsNull(a) then
Msgbox("Null")
End If
If IsEmpty(a) then
Msgbox("Empty")
End If
If IsError(a) then
Msgbox("Error")
End If
End Function
790789:2013/11/10(日) 16:48:10.72
>>789のsub内のEnd Ifはコピペ時のミスです
当然ですが不要です
791デフォルトの名無しさん:2013/11/10(日) 17:35:55.04
IsMissing
792デフォルトの名無しさん:2013/11/10(日) 17:38:03.94
釣りだと思ってなんも言わなかったけど
IsMissingで見れるでしょ?
793デフォルトの名無しさん:2013/11/10(日) 17:54:32.44
>>788
何でこんなめんどくさいことをする必要があるんだ?
自分が書いたプロシージャを見知らぬ誰かがコールするのか?

自分が書いているコードならプロシージャの仕様は分かっている
だろうしそんな無駄なことしなくて充分だろ。

>>789
相変わらず糞コード自慢かw
794デフォルトの名無しさん:2013/11/10(日) 17:59:25.69
何か久しぶりのテンプレ君が釣れたっぽいが
795デフォルトの名無しさん:2013/11/10(日) 18:01:54.20
ま〜たコード論争開始〜!カーン!

ですか?
796デフォルトの名無しさん:2013/11/10(日) 18:09:17.00
自演臭い質問だしなw
797デフォルトの名無しさん:2013/11/10(日) 18:09:39.34
スルーしとけば問題なし
798デフォルトの名無しさん:2013/11/10(日) 21:13:59.71
Priaete Subのプロシージャと
Private Functionの戻り値のない関数は
同じものと考えてもOKでしょうか?
799デフォルトの名無しさん:2013/11/10(日) 21:35:46.53
>>387
>>447
また違うバリエーションの釣りか
800デフォルトの名無しさん:2013/11/10(日) 22:18:30.96
書き込みはあれど機能してないなw
801デフォルトの名無しさん:2013/11/10(日) 22:27:43.59
テンプレ君を釣る釣堀として立派に機能してるwww
802デフォルトの名無しさん:2013/11/10(日) 22:56:13.63
>>785
VBAで直接やる意味がわからない
他の言語でArduinoとコミュニケーションするためのコンポーネントを作成して
VBAからはそのコンポーネントを使う
ではダメなのか?
803デフォルトの名無しさん:2013/11/11(月) 05:01:29.14
>>802
いやだから、そのコンポーネントが公開停止されたから誰か知らんか、って言ってるんじゃ
804デフォルトの名無しさん:2013/11/11(月) 05:24:01.56
馬鹿には無理
805デフォルトの名無しさん:2013/11/11(月) 05:40:24.03
>>779
こっから落とせるぞ
http://www.vector.co.jp/soft/winnt/hardware/se360823.html
いつなくなるか判らんから急げ
806デフォルトの名無しさん:2013/11/11(月) 07:30:15.52
そりゃ利用者が2chの糞や乞食みたいなのばかりになったら辞めたくもなる罠


ソフウェア・ツールなどのフリーツール提供,およびサポートの終了について.
http://www.activecell.jp/

長年にわたり提供して参りましたEasyComm,EasyGPIB等のフリーツールにつきまして,
以下の理由により提供とサポートを終了させて戴きました.

●提供,サポートを終了する理由
 ・お問い合わせいただくトラブルの要因のほとんどがEasyCommやEasyGPIBなどのフリーツール以外の部分であるため,
事実上VBAの使い方や,シリアルポート,GPIB,アプリケーション,ドライバの特性に関する回答に集中する.
 しかし,僅かな情報を基に原因を推測し,実証するためには多くのアイデアや時間,機材を要するが,
ハードウェア・ソフトウェア環境の多様化により対応が困難になった.
 ・新規に開発される様々なハードや新規OS,アプリケーションのバージョンアップに対する実装テストなどの時間的な余裕が無い.
 ・掲示板やメールに対するスパム攻撃などが激しく,サポート環境の維持が難しい.
 ・トラブル発生時にご質問をいただくことはあるが,完全なフリーツールとして提供し,
さらにサポートを続けている姿勢に賛同してくれるメールは皆無に等しい.
 従って,提供を続ける意味は無い.

●謝辞
 長年にわたってご利用いただきましたことに感謝いたします.
 また,僅かではありますが励ましのメールをいただいたことがあり,
その数本のメールのおかげでここまで続けてくることが出来たと実感しております.
 ありがとうございました.
(ペンネーム木下隆)

 簡易型GPIBコントローラ一キットGP232,および絶縁型USB/シリアルISS-SE1につきましては,
製造および販売をシステム技研株式会社が行うことになりました.
 サポートは今後も継続させていただきますが,商品につきましては下記販売店にてご購入くださいますようお願い申し上げます.
(以下略)
807デフォルトの名無しさん:2013/11/11(月) 07:43:08.01
ツールに頼らなきゃ何も出来ないカスが組み込みなんかやるなよ
カスはカスらしくVBAでシコシコと行列計算でもしてろや
808デフォルトの名無しさん:2013/11/11(月) 07:46:45.74
Private Subのプロシージャと
Private Functionの戻り値のない関数は
同じものと考えてもOKかと聞いておる
809デフォルトの名無しさん:2013/11/11(月) 08:06:08.21
>>807
というお前もツールに頼ってんだろw
810デフォルトの名無しさん:2013/11/11(月) 11:03:02.52
811デフォルトの名無しさん:2013/11/11(月) 12:41:48.97
VBAで、Application.WorksheetFunction.Vlookup関数で日付をひっぱってきたつもりが
「33118」みたいな変な数字になりやがるんだ。

どうやったらちゃんと正式な日付が表示される?
812808:2013/11/11(月) 12:42:39.91
>>810
3回も質問しても誰も解決できないほどの難問だからこそ、あたらめて聞いておるのだ。
813デフォルトの名無しさん:2013/11/11(月) 13:49:39.31
>>812
違うけど何か
814デフォルトの名無しさん:2013/11/11(月) 13:54:25.17
違います
815デフォルトの名無しさん:2013/11/11(月) 14:00:24.92
Formに表示させるボタンの数を
コードで指定して表示させるにはどうすればいいですか?
816808:2013/11/11(月) 14:00:56.29
>>813-814
どう違いますか?
817747:2013/11/11(月) 15:12:31.11
>>811
それ日付のシリアル値じゃないの
818811:2013/11/11(月) 15:21:58.99
>>817
そうだよ。
ちゃんと日付表示にするにはどうすればいいの?
一番単純な方法で。
819デフォルトの名無しさん:2013/11/11(月) 15:55:34.08
>>818
セルの書式
820デフォルトの名無しさん:2013/11/11(月) 17:55:31.08
>>818
シリアル値から年とか月とか抜き出す関数があるよ
821デフォルトの名無しさん:2013/11/11(月) 18:42:34.91
>>816
SubとFunctionという違いがある
822デフォルトの名無しさん:2013/11/11(月) 19:09:24.20
>>821
なので?
823デフォルトの名無しさん:2013/11/11(月) 19:10:36.33
>>815
ボタンのvisibleプロパティをFalseにすると非表示になります。
表示したいときはTrueにします。
824デフォルトの名無しさん:2013/11/11(月) 20:03:59.08
>>812
正解は>>451
それをあんたが勝手に違うと決めつけて無視してるだけ
825デフォルトの名無しさん:2013/11/11(月) 20:19:19.64
コードを書く人の資質・知能・常識により、違いが出るわけだ。
納得。
826デフォルトの名無しさん:2013/11/12(火) 00:14:48.10
VBAを究極的に速く動かすにはどんなパソコンを準備すればいいのでしょうか?
XeonのデュアルCPUとかにすれば更に速くなるのでしょうか?
827デフォルトの名無しさん:2013/11/12(火) 01:09:43.73
たぶんマルチCPUに対応してないから無駄
VBAじゃなくてVBにすればちょっとは速くなるかも
828デフォルトの名無しさん:2013/11/12(火) 06:46:29.04
スパコンをwindowsで動かし、その上でvbaを走らせれば
829デフォルトの名無しさん:2013/11/12(火) 07:39:33.28
VBAとは関係ないハードの話題だな。
処理を早くするためにコードの改善とかならまだわかるが。
830デフォルトの名無しさん:2013/11/12(火) 08:28:41.47
>>829
興味ない話題はスルーしとけよ
結果的にそれが一番早く事態を収拾させる方法だよ。
一々食って掛かると某「自称本スレ」みたいになる。

もしかして、わざとそうやってここを荒れさせるのが狙いなら
もうこれ以上言うべきことは無いけど。
831デフォルトの名無しさん:2013/11/12(火) 13:36:05.82
ユーザーフォームのCheckBoxのCaptionを入力データで表示させました

Private Sub UserForm_Initialize()

CheckBox1.Caption = (Worksheets("sheet2").Range("D1").Value)
CheckBox2.Caption = (Worksheets("sheet2").Range("D2").Value)


End Sub


数が多かったので まとめて処理させようとしたらコンパイルエラーとなりました



Private Sub UserForm_Initialize()

For i = 1 To 100
CheckBox(i).Caption = (Worksheets("sheet2").Range("D" & i).Value)
Next

End Sub


どのようにすればよろしいでしょうか・・・?@22歳OL
832デフォルトの名無しさん:2013/11/12(火) 14:43:44.26
× CheckBox(i).Caption
○ Controls("CheckBox" & i).Caption
833デフォルトの名無しさん:2013/11/12(火) 15:14:27.66
100も手作業でチェックしないといけないのか
834デフォルトの名無しさん:2013/11/12(火) 15:24:12.31
>>832
本当にありがとうございました
助かりました@22歳OL
835デフォルトの名無しさん:2013/11/12(火) 16:59:16.27
チェックボックスが100個も有ったら
クリックイベントを処理するのがめんどくさそう。
それともチェックボックスの状態はフォーム閉じた時点で
まとめてチェックするとかなのかな?
836デフォルトの名無しさん:2013/11/12(火) 18:33:18.70
>>830
お前に言われる筋合いはない。
837デフォルトの名無しさん:2013/11/12(火) 18:36:40.38
「IEをVBAで操作する」系の2冊目の本が最近出たんだが
amazon検索でひっかからない。

本のタイトルはなんだったかな?
(1冊目「Excel VBAでIEを思いのままに操作できるプログラミング術」)
838デフォルトの名無しさん:2013/11/12(火) 18:45:42.50
>>835
コマンドボタン クリック後 一括?処理させるようにしてます
みなさんVBA詳しいですね 
うらやましいです。。。@22歳OL
839デフォルトの名無しさん:2013/11/12(火) 19:14:06.52
>>837
amazonで"IE VBA"で検索して引っかかるのってそれ以外にこれしかないと思うけど

IEを自在に操るExcel VBAプログラミング入門―データの収集・加工を完全自動化!

これじゃないの?
840デフォルトの名無しさん:2013/11/12(火) 19:21:15.49
>>837
尼で取り扱ってないんじゃない?
841デフォルトの名無しさん:2013/11/12(火) 19:31:43.41
>>836
荒らし目的www
842837:2013/11/12(火) 19:52:54.69
>>839
そのとおり!
おみごと!
843デフォルトの名無しさん:2013/11/13(水) 11:35:03.38
お勧めのリファレンス 本あったら教えてください@22歳OL
844デフォルトの名無しさん:2013/11/13(水) 13:13:36.53
>>843
リファレンスは量大杉で本だとかさばるし検索性も劣る
ヘルプかmsdn見た方が早い
845デフォルトの名無しさん:2013/11/13(水) 14:36:17.28
@女子高生としたほうがもっと受けが良いんとちゃいます?
846デフォルトの名無しさん:2013/11/13(水) 16:59:33.88
22歳OLの方が生々しいくていい感じ
847デフォルトの名無しさん:2013/11/13(水) 18:07:34.39
OLより就活生のがグッと来るよね
848デフォルトの名無しさん:2013/11/13(水) 18:17:33.41
数字以外の文字入力の判定をしようと・・・

ck1 = Controls("ComboBox" & i5 + 10)
For ck2 = 1 To Len(ck1)
     ・
     ・
ck1に希望する文字列?が入りませんでした・・・


ck1 = ComboBox43.Text
For ck2 = 1 To Len(ck1)
ck3 = Mid(ck1, ck2, 1)
If ck3 Like "[0-9]" Or ck3 Like "[0-9]" Then
Else
MsgBox "日付は数字を入力してください"
GoTo label01:
End If
Next

では、うまく動いてくれたのですが・・・


お時間ある方でわかる方お力をお借りしたいです@22歳OL
849デフォルトの名無しさん:2013/11/13(水) 18:50:51.02
お時間は有るんだけど、迂闊に答えちゃうと
"@22歳OL"に釣られたスケベ野郎に思われそうで答えられない。
850デフォルトの名無しさん:2013/11/13(水) 18:58:19.23
洋助兵衛
851デフォルトの名無しさん:2013/11/13(水) 19:28:43.84
俺SZはJCだし
852デフォルトの名無しさん:2013/11/13(水) 19:50:06.55
どうでもいい話題だな。
853デフォルトの名無しさん:2013/11/13(水) 20:35:29.65
854片山博文MZコスモ ◆T6xkBnTXz7B0 :2013/11/13(水) 21:51:40.94
ck1 = Controls("ComboBox" & i5 + 10).Text
855デフォルトの名無しさん:2013/11/13(水) 22:03:46.06
>>848
If *** Then
Else
@@@
End If

こんな書き方するなら
If Not *** Then
@@@
End If
こう書いた方が自然。

というか、日付かどうかチェックするなら
IsDateとかIsNumericとかを使ったほうが簡単なんじゃないの?
この二つの動作がどう違うのか俺は知らないけど。
856デフォルトの名無しさん:2013/11/13(水) 23:56:37.34
>>855
マジレスするなよネタなんだから。
857デフォルトの名無しさん:2013/11/14(木) 09:28:07.43
IsNumeric
式が数値として評価できるかどうかを調べ、結果をブール型 (Boolean) で返します
IsDate
式を日付に変換できるかどうかを調べ、結果をブール型 (Boolean) で返します。


全然違うと思うけど
858855:2013/11/14(木) 09:31:44.87
>>857
いや、日付型がどんなもんだかについて根本的に理解してないわけよ
今のところ使わないから特に覚える気もないんだけどさ
859デフォルトの名無しさん:2013/11/14(木) 10:47:25.88
日付は数値に含まれますか?
バナナはおやつに含まれますか?
860デフォルトの名無しさん:2013/11/14(木) 11:12:51.13
DateFormat()
861デフォルトの名無しさん:2013/11/14(木) 11:13:53.09
FormatDateTime()
862デフォルトの名無しさん:2013/11/14(木) 14:25:08.67
>>854
>>855
アドバイスありがとうございました
できました

エラーで困っていた箇所は日付ではなく数量や
金額を処理させたい箇所でした

本当にありがとうございました@22歳OL
863デフォルトの名無しさん:2013/11/14(木) 16:13:39.57
超初心者です
Excelで以下のような(x,y)に対応した値z(数値)がある場合下の表のようにマクロで作成することは可能ですか?

x y z
0 0 m
1 0 n
2 0 o
3 0 p
0 1 i


y
3 a b c d
2 e f g h
1 i j k l
0 m n o p
0 1 2 3 x
864デフォルトの名無しさん:2013/11/14(木) 16:29:54.41
>>863
可能
865デフォルトの名無しさん:2013/11/14(木) 17:03:41.26
>>864
アンタすげーよ
俺には>>863が何を言ってるのかさっぱりわかんねー
866デフォルトの名無しさん:2013/11/14(木) 17:07:19.05
>>865
多分、何らかの規則で表示形態を変換したいのだと思った。
規則があるなら可能でしょ。
867デフォルトの名無しさん:2013/11/14(木) 17:12:35.31
x y >z
ー ー ーーー
0 0 >m
1 0 >n
2 0 >o
3 0 >p
0 1 >i

y
ー+ーーーーーー
3 |a b c d
2 |e f g h
1 | i j k l
0 |m n o p
ー+ーーーーーーー
0 1 2 3 x
868デフォルトの名無しさん:2013/11/14(木) 17:14:57.98
コードコジキがお越しになられました。
お恵み様がご降臨なされますので邪魔しないようにお願いします。
869デフォルトの名無しさん:2013/11/14(木) 17:18:53.86
yでグルーピングして、xの昇順にzを並べるってことだと思う。
コードは書かないが、可能。
870デフォルトの名無しさん:2013/11/14(木) 17:19:58.96
4x4固定なら、二次元配列作れば余裕でできるね。
コードは書かないけど。
871デフォルトの名無しさん:2013/11/14(木) 17:24:01.76
xyが数値なら取り込んでoffsetでどうかな
872デフォルトの名無しさん:2013/11/14(木) 17:25:07.60
16進数なら変換かけて終わり
873デフォルトの名無しさん:2013/11/14(木) 17:25:45.25
コードを書かない勢は黙ってろカス
874デフォルトの名無しさん:2013/11/14(木) 17:34:32.86
マクロじゃなくても数式で行けるんじゃないかな
ちゃんと考えてないから書かないけど
875デフォルトの名無しさん:2013/11/14(木) 17:44:49.18
pivot tableとかどうかな
876863:2013/11/14(木) 17:47:57.32
返信くれた方ありがとうございます
可能みたいなので考えてみます
ヒントくれた方もありがとうございます
877デフォルトの名無しさん:2013/11/14(木) 19:47:11.00
俺には規則が理解できないんだが
お前らすげえな
878デフォルトの名無しさん:2013/11/14(木) 19:53:06.07
>>871
どういう意味でしょうか?
興味があります
879デフォルトの名無しさん:2013/11/14(木) 20:23:28.70
>>877
ネタだろ
880デフォルトの名無しさん:2013/11/15(金) 00:02:23.95
等高線のグラフか。x-y 軸がわかっているなら、offsetに一票。
881デフォルトの名無しさん:2013/11/16(土) 15:05:52.96
ブックAからブックB(6種)のマクロを実行しょうとしたら、
6種のブックBの内、1つだけ「マクロが見つかりません」とのエラー

エラーが出るブックのブック名(notモジュール名)を少し変更したら実行した

変更後のブック名は(よくないとされる)漢字を含んでいるし、わけわからない
882デフォルトの名無しさん:2013/11/16(土) 17:25:37.23
>>881
わけわからないのはこっちのほうだ
883デフォルトの名無しさん:2013/11/16(土) 17:48:18.86
質問です。


最近ティンコが臭いんですけどどうすればいいでしょうか?
教えてくさい(´・ω・`)b
884デフォルトの名無しさん:2013/11/16(土) 18:53:16.28
>>883
死ねばいいんじゃないかな
885デフォルトの名無しさん:2013/11/16(土) 18:56:30.14
>>884
パリダちゃんなら、ほっとけばいずれ死ぬよ。
886デフォルトの名無しさん:2013/11/16(土) 19:12:38.94
もげ
887デフォルトの名無しさん:2013/11/16(土) 20:27:39.75
>>883
洗った?
888デフォルトの名無しさん:2013/11/17(日) 15:07:59.65
>>883
たぶん男盛りだから、彼女作れば?
そのにおいが好きな子もいるかもよ
889デフォルトの名無しさん:2013/11/17(日) 18:10:26.98
色からR、G、Bのそれぞれの3要素の数値0〜255を取得する関数はなんですか?
なければ作ってください。

そして会社チーム内でとりきめた約束、
「ある条件のときはセルを塗りつぶす」があって、
ピンクはみんなバラバラのピンクをつかってる。
ある人は濃いピンク、ある人はうすいピンク、ある人はオレンジがかったピンク。
これを統一するため、
どんな任意の色だったとしても代表的16色に変換する関数を作ってください。
つまり引数が任意の色のコード、帰り値がたった16色のうちのいづれかの色コード。
あ、応用として引数の2つ目には代表色の数(たとえば16とか)にした関数もお願い。

こんな難易度の高い課題はやりがいがあるでしょう?
よろしくお願いいたします。
890889:2013/11/17(日) 18:12:40.67
ちゅうか簡単かな?
R、G、Bの各要素の0〜255の数値を取得して
それを16か32か64みたいな区切りのいい数値に変換して
それそれを求めればいいだけかな?
891片山博文MZコスモ ◆T6xkBnTXz7B0 :2013/11/17(日) 18:22:00.51
GetRValue,GetGValue,GetBValue
892デフォルトの名無しさん:2013/11/17(日) 18:24:22.22
基本的な事を聞いてもいいですか?
893デフォルトの名無しさん:2013/11/17(日) 18:28:25.23
>>891
そんな関数やプロパティはトライしたけど使えないんですが。
存在しないのでは?
894デフォルトの名無しさん:2013/11/17(日) 18:30:11.71
Range("A1")というのは、A1のセルを指しているわけですよね。
Call(1,1)も、同じA1のセルを指していますよね。
これの使い分けを皆さんはしていますか?
また、どんな時に使い分けをしますか?
895デフォルトの名無しさん:2013/11/17(日) 18:36:55.94
またネタの質問かよ。
896894:2013/11/17(日) 18:54:24.87
>>895
VBAを勉強しようとして色々とサイトを見ているのですが、rangeとcellって同じ意味にしか感じなくてですね。
何か使い分けする意味があるのかなと思いまして。
897デフォルトの名無しさん:2013/11/17(日) 19:02:03.21
>>893
VBAヘルプには無かったが、検索したら出てきた
Win32APIに有るようだ
898デフォルトの名無しさん:2013/11/17(日) 19:03:52.83
excel2010でのAutoFilterに関する質問

外部テキストファイルに任意の都道府県名が一行ずつ記載されている(県数、県名不定かつ東京、神奈川など"都"や”県”は省かれている)
この都道府県表を読み込んで、都道府県名(A列)とそこの知事(B列)が書かれているエクセルシートに
AutoFilterを掛けたいんだがexcel側の表は"都"、”県”が省かれておらずワイルドカードを使わなければならない。

以下がコード
Sub test()
Dim buf, ken(47) As String
Dim n As Long

Open "D:\(省略)\kenmei.txt" For Input As #1
Do Until EOF(1)
Line Input #1, buf
ken(n) = buf
n = n + 1
Loop
Close #1

With ActiveSheet.Range("A1")
.AutoFilter Field:=1, Criteria1:=ken ', Operator:=xlFilterValues
End With

ken(n) = buf & "*"とやっても,
Criteria1:=ken & "*"とやっても上手くいかず
どなたか知恵を貸してください
899片山博文MZコスモ ◆T6xkBnTXz7B0 :2013/11/17(日) 19:12:45.54
Function GetRValue(rgb As Long) As Integer
GetRValue = rgb And &HFF
End Function

Function GetGValue(rgb As Long) As Integer
GetGValue = (rgb And &HFF00) / &H100
End Function

Function GetBValue(rgb As Long) As Integer
GetBValue = (rgb And &HFF0000) / &H10000
End Function
900片山博文MZコスモ ◆T6xkBnTXz7B0 :2013/11/17(日) 19:32:16.25
'nは8の倍数
Function RoundedRGB(rgb As Long, n As Integer) As Long
Dim r,g,b,m,k
r = GetRValue(rgb)
g = GetGValue(rgb)
b = GetBValue(rgb)
m = n / 8
k = Round(r * m / 256#)
r = 255 * k / m
k = Round(g * m / 256#)
g = 255 * k / m
k = Round(b * m / 256#)
b = 255 * k / m
RoundedRGB = RGB(r, g, b)
End Function
'携帯から
901uy:2013/11/17(日) 20:05:00.92
ゴミwwwwwwwwww
コラゴミwwwwwwwwwwwww
死ねコラゴミwwwwwwwwwwwwwwwwwwwwwww

ゴミwwwwwwww
ゴミゴミwwwwwwwwwwwwwwwwwwwwwwwwwwww
ゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
902デフォルトの名無しさん:2013/11/17(日) 20:06:00.93
>>896
ループ処理ならcells(x,y)でやったほうが簡単
903894:2013/11/17(日) 20:21:59.97
>>902
ループをさせる時はcellがやりやすいという事でしょうか。
rangeの方はどういった所で活用出来るのでしょうか。
基本的な事で申し訳ないです。
904デフォルトの名無しさん:2013/11/17(日) 20:39:40.98
Excel2003です
日付の検索で躓いています。
A列に日付が 2013/10/21の形で入力されていて
表示形式は "m"月"d"日";@" となっています(Range("A2").NumberFormatLocalで取得しています。)

検索対象月(2013/10)の先頭を取得したいのですが、
検索にヒットしませんコードは下記の様です。(一部抜粋)
Dim c As Object
Dim tmp As String
tmp = InputBox("月次処理を開始します。", Format(Date, "yyyy/mm"))
Set c = Cells.Find(What:=tmp, After:=Range("A2"), LookIn:=xlValues, LookAt:=xlPart)
If c Is Nothing Then
Else
c.Select
End If
です。

tmp = Format(DateValue(tmp), "m/d;@")
tmp = Format(DateValue(tmp), "yyyy/mm")
等も試しましたが、ヒットしません。
どのように修正したらよいでしょうか?
905デフォルトの名無しさん:2013/11/17(日) 20:56:56.55
>>903
ループなら
Do Until wkRs.EOF
i = i + 1
Cells(i, 1) = xxxxxx
Cells(i, 2) = yyyyyy

Loop

とかで簡単にセルをずらして行くのが出来る

俺は基本的にはCells形式中心なんで^^;、rangeでも Range(Cells(3, 1), Cells(lastrow, 7)).Clear
という風にして使ってる。

固定の範囲のみの処理ならRange("A1:B5") とかのjほうが判りやすいだろうなぁ。
906894:2013/11/17(日) 21:01:55.53
>>905
分かりやすい親切な説明です、ありがとうございます。
もう一つだけ質問なのですが、変数名はどのように付けるのが適切なのでしょうか?
907デフォルトの名無しさん:2013/11/17(日) 21:41:54.18
>>906
ここで散々荒れてるネタなんでそれはパス
908894:2013/11/17(日) 22:00:45.89
>>907
了解しました、すみませんでした。
丁寧に色々とありがとうございました。
909デフォルトの名無しさん:2013/11/17(日) 22:32:50.94
>>904
セルの書式を確認
「*2001/3/14」ではNG
「2001/3/14」ではヒットする
910デフォルトの名無しさん:2013/11/17(日) 22:37:33.07
>>909
ありがとうございます!
911デフォルトの名無しさん:2013/11/18(月) 00:23:40.28
>>898
Sub test()
Dim buf As String, ken(47) As String
Dim n As Long
Open "D:\kenmei.txt" For Input As #1
Do Until EOF(1)
Line Input #1, buf
Select Case buf
Case "北海道"
Case "東京"
buf = buf & "都"
Case "大坂"
buf = buf & "府"
Case Else
buf = buf & "県"
End Select
ken(n) = buf
n = n + 1
Loop
Close #1
With ActiveSheet.Range("A1:B47")
.AutoFilter Field:=1, Criteria1:=Array(ken()), Operator:=xlFilterValues
End With
End Sub
でどう?
912デフォルトの名無しさん:2013/11/18(月) 00:49:05.00
>>911
ありがとう!Case文で出来るんだ
コレの問題は解決できてありがたいけど汎用性がイマイチかあ
Operator:=xlFilterValuesを使った複数条件の部分一致オートフィルターが
楽に出来れば最高なのだけれどどうやら無理っぽい
913デフォルトの名無しさん:2013/11/18(月) 02:08:32.34
>>911
京都府の処理が抜けてる
914デフォルトの名無しさん:2013/11/18(月) 06:41:10.95
>>911
微妙。

都道府県を付けてからオートフィルタをかければいい。

っていう回答するほうが楽なのに。
コードで回答するほどのこととは思えないね。

それと、都道府県をつける処理は別プロシージャに分けろ。
915デフォルトの名無しさん:2013/11/18(月) 06:46:32.39
>>911
ActiveSheetなんて使ってるとバグるね。
916デフォルトの名無しさん:2013/11/18(月) 07:48:18.14
Actveworkbookじゃなくて別で開いてるブックに値を書き込みたいんだけど
そのブックのデォフルトでアクティブになってるシート→セルを参照するにはどうしたらいいですか?
917デフォルトの名無しさん:2013/11/18(月) 11:01:08.68
>>916
Workbooks("abc.xls"). 以下略
918デフォルトの名無しさん:2013/11/18(月) 16:16:20.27
>>916
>そのブックのデォフルトで

デォフルト って普通にデフォルトって入力するより難しいぞ
どうやってまちがえたんだ?
919デフォルトの名無しさん:2013/11/18(月) 16:41:33.01
まず、デフォルトでアクティブになってるって意味を正確に説明して
920デフォルトの名無しさん:2013/11/18(月) 17:45:32.02
ファイルを開いたときにActiveになってるsheetのことかなぁ
921916:2013/11/18(月) 19:53:02.38
>>917
こら、その略してるところこそ聞きたいのですが。

>>918
たしかにどうやってまちがえたんだろう。

>>919-920
本当に意味がわからないならBook操作のスキルが低いのでしょう。
922デフォルトの名無しさん:2013/11/18(月) 19:59:10.14
フォームをつかいこなしたいのでフォームに特化した本を探していたところ
次の2冊を検索で見つけました。

 「知識ゼロから学ぶExcelVBAプログラミングユーザーフォーム&コントロール」
 「アプリ作成で学ぶExcel VBAプログラミングユーザーフォーム&コントロール」

どちらがオススメですか?
自分はVBAは中級者だと思ってますが、フォームは少ししか使ったことがありません(使ったとしても1個だけのフォームにグループわけのやつやSetFocusやコンボリストくらい)。
923デフォルトの名無しさん:2013/11/18(月) 20:03:39.11
>>920
俺も考えればまあそう言う解釈しかないが
それだと1回閉じて開き直すとかしないとダメなんだが

>>921みれば、どうも自分でも正確に解って無さそうだし
これ以上相手するのやめるわ
924デフォルトの名無しさん:2013/11/18(月) 20:12:23.16
Workbook_Openでシート2を開く設定になってて、
BeforeSaveでシート3を開く設定になってたら、
どちらがデフォ?
925デフォルトの名無しさん:2013/11/18(月) 20:13:35.65
>>921
ネタの質問臭いので抜けるわ。
926916:2013/11/18(月) 20:13:45.85
>>923
たとえばどのbookでもいいから開いて
3番目のシートのE5セルをアクティブにしてから保存してごらん。
今度そのファイルを開くと、3番目のシートがアクティブになってるし、そのシートのE5セルがアクティブになってる。
ということはブックはどのブックでもデフォルトでアクティブとして記憶されてるシートやセルがあるんだよ。
で、そのシート名やセル名を取得したいの。
927デフォルトの名無しさん:2013/11/18(月) 20:38:50.48
>>926
ブックを解凍しておいて、
\xl\worksheets\〜.xml の中で、
「activeCell=」表記が有るシートとセルが、保存時のアクティブ位置。
928916:2013/11/18(月) 20:45:08.90
>>927
929デフォルトの名無しさん:2013/11/18(月) 20:47:14.16
普通に開いてActiveなシートとセルを見ればいいんじゃないの?
930デフォルトの名無しさん:2013/11/18(月) 20:52:53.39
>>928
解凍してみれば判る
931デフォルトの名無しさん:2013/11/18(月) 20:53:40.87
xlsかもしれん
932デフォルトの名無しさん:2013/11/18(月) 21:11:17.91
解凍?
933デフォルトの名無しさん:2013/11/18(月) 21:14:21.24
xls、2003以前 なら解凍できない。
     By 930
934デフォルトの名無しさん:2013/11/18(月) 21:17:09.23
>ブックを解凍しておいて、


これがまず判らない。zipとかlzhのファイルを解凍するんじゃなく ブックを解凍?
どういうこと?
935916:2013/11/18(月) 21:21:06.56
>>929
それだと1個ブック用のオブジェクト変数を用意しないといけない手間がかかるし
いちいちアクティブを切り替えするコードにするのは画面がチラチラしてイヤ。
たった数行ですばやく対応したい。

いちお確認しておくけど、
ブック操作のマクロはいろんな場面でいろんな用途で使うことがあるんだ。
平均すると3日に1回くらいの頻度かもしれないし、1回限りのコードのことが多々。

例えば会社でチームのためにちゃんとしたコードを長期使用のためにきれいに完成させるのが目的じゃない。

このスレ意外と回答者のスキル低くない?
936デフォルトの名無しさん:2013/11/18(月) 21:34:06.40
日本語でおk
937デフォルトの名無しさん:2013/11/18(月) 22:05:08.03
>>925
本当だ、ネタだったみたい、調べたら簡単に答えが見つかる。
SubとEnd 除いて6行で出来る。
私も抜ける。
938デフォルトの名無しさん:2013/11/18(月) 22:25:31.29
正直、エスパーのスキルは低め
939デフォルトの名無しさん:2013/11/18(月) 22:50:33.68
エスパー伊東?
940デフォルトの名無しさん:2013/11/18(月) 22:51:19.79
VBA初心者ですが
無限ループで長時間処理をさせ続けているVBAのコードに対して止めることなく
バックグラウンドでこっそりと部分的にコードを書き換える事はできないのでしょうか?
941デフォルトの名無しさん:2013/11/18(月) 23:41:44.05
書き換える頻度にもよるけど、書き換えそうな箇所を別モジュールにして、
定期的にモジュールをremove、insertする感じ?
942デフォルトの名無しさん:2013/11/19(火) 03:18:48.24
>>941
うまくやればできそうなわけですね。ありがとうございました。
943904:2013/11/19(火) 04:02:53.16
>>909
Excel2007では大丈夫でしたが、
目的のExcel2003ではヒットしませんでした。

どのようにしたらいいでしょうか?
944904:2013/11/19(火) 04:36:59.38
>>909
自己解決しました
945デフォルトの名無しさん:2013/11/19(火) 08:32:51.78
シートに貼り付けたたくさんの図形を全消去するにはどうすればいいですか?
946デフォルトの名無しさん:2013/11/19(火) 08:46:08.49
表示倍率を最小にして、図形選択でシート全体の範囲を選択してdelete
947デフォルトの名無しさん:2013/11/19(火) 08:58:47.58
>>946
こら、図形選択ってどこだ?ほんとにVBA?
948デフォルトの名無しさん:2013/11/19(火) 11:53:59.46
>>916
何がやりたいのか良くわからんが、ユーザが保存したときのアクティブシート・アクティブセルに対して
処理するってのは駄目だろ。どのシートをアクティブにして保存するか分からないんだから。

普通は、処理対象のシートを何らかの方法で指定して(シート名とか)、何らかの方法で処理対象の
セルを決めて(絶対位置決めうちとか、何らかのマーカーをもとに相対位置とか)処理するんだよ。
949916:2013/11/19(火) 12:18:56.32
>>948
こら、レスありがとうございます。
いやユーザがふだん使うシートはほぼ決まってるからいいんですよ。
3つシートあったとして、1つがメインで他の2シートは普段見ることはないルールみたいなのが書いてるだけなんだから。

あるブックにマクロを書いてるとして
そこから別のブックを複数開く。
でもメインはマクロのあるブックだからそこをまたActivateする。
この状態で、いろんなブックを参照したいときに非アクティブのブックの、本来ならアクティブになってるはずのシートとかセルを取得するにはどうするか。
これが質問の趣旨。
950デフォルトの名無しさん:2013/11/19(火) 12:56:24.84
>>949
なぜ「アクティブ」にこだわるのかわからん。
普通に、workbook.worksheet.rangeでアクセスできないのか?
951デフォルトの名無しさん:2013/11/19(火) 13:02:40.86
>>949
> この状態で、いろんなブックを参照したいときに非アクティブのブックの、本来ならアクティブになってるはずのシートとかセルを取得するにはどうするか。
そのbookがアクティブなときにset sheet = activesheetとする。
952916:2013/11/19(火) 13:10:46.73
>>950
こら、それだと特定できないだろ。
Workbooxs(x).Worksheets(y).Cells(r,c)にしないと。
このようにしたときxは別として、y, r, cの値がわからない(正確にはわざわざ調べないといけない)

>>951
そりゃそうだけど、わざわざsheetのオブジェクト変数を用意しないといけないからコードを1行書くのが面倒。
それにオブジェクト変数を使っちゃさいごにSet ... = Nothingと消してやるためにまた1行コードを書くはめになるじゃん。
953デフォルトの名無しさん:2013/11/19(火) 13:20:54.60
>>952
> Workbooxs(x).Worksheets(y).Cells(r,c)にしないと。
> このようにしたときxは別として、y, r, cの値がわからない(正確にはわざわざ調べないといけない)
だから変数に保存しとけって。

> そりゃそうだけど、わざわざsheetのオブジェクト変数を用意しないといけないからコードを1行書くのが面倒。
だったら対象Bookをactivateしろ。そうすればactivesheet,activecellで参照できる。

> それにオブジェクト変数を使っちゃさいごにSet ... = Nothingと消してやるためにまた1行コードを書くはめになるじゃん。
ならない。
954デフォルトの名無しさん:2013/11/19(火) 13:34:16.54
もう、うざいなぁ。

> この状態で、いろんなブックを参照したいときに非アクティブのブックの、本来ならアクティブになってるはずのシートとかセルを取得するにはどうするか。

できません。
これで満足?
955デフォルトの名無しさん:2013/11/19(火) 14:21:05.01
何か前にもこんな奴居なかったか?
上から目線の初心者
956デフォルトの名無しさん:2013/11/19(火) 16:17:40.32
スレの勢いが無いから、自称初心者の振りして遊んでるんだろ。
言わせんな。
957デフォルトの名無しさん:2013/11/19(火) 17:51:24.38
Excel VBAに気の利いたものなんてないんだから、楽したけりゃ自分で作るしかない
958デフォルトの名無しさん:2013/11/19(火) 17:53:55.50
For Next文で、iを2個ずつ増分するにはStep=2とすればいいですが
iを素数にするためにはどういうコードを書けばいいですか?
959デフォルトの名無しさん:2013/11/19(火) 17:56:39.51
for i = 1 to xxx
...
i = getNextPrimeNumber(i)
next
という関数を自作する。
960958:2013/11/19(火) 17:58:25.86
>>959
こら、こたえになってないじゃないか
961デフォルトの名無しさん:2013/11/19(火) 17:59:44.00
またお前か
962デフォルトの名無しさん:2013/11/19(火) 18:01:41.24
>>960
日本語で書かないとわかんない?
Forループの中でiの値を変更することができるから、「現在のiの次の素数」を取得する関数を作ってそれを代入すれば良い。
963デフォルトの名無しさん:2013/11/19(火) 18:14:28.07
まあ、ループの中でループカウンタ書き換えるような時はFor Next使うなと
964デフォルトの名無しさん:2013/11/19(火) 18:17:49.18
非アクティブなBookでもActiveSheetとかは取れなかったっけ?
965デフォルトの名無しさん:2013/11/19(火) 18:19:18.62
予め素数の配列を作っておいてループカウンタを1アップする度にそれを参照するとか
大体何をしたいのかサッパリ判らんのだけどw
966デフォルトの名無しさん:2013/11/19(火) 18:21:34.46
>>959
そのやり方だとgetNextPrimeNumber(i)-1ってやらないと駄目かも
967デフォルトの名無しさん:2013/11/19(火) 22:56:03.83
>>949
非アクティブなブックでもActiveSheetは動く
これ見て考えて二度と来るな
Dim b1 As Workbook, b2 As Workbook
Set b1 = Workbooks.Open("c:\book1.xls")
Set b2 = Workbooks.Open("c:\book2.xls")
b2.Activate
MsgBox b1.ActiveSheet.Name
b1.Activate
MsgBox b2.ActiveSheet.Name
968デフォルトの名無しさん:2013/11/20(水) 13:53:03.09
またお力をお借りしたく・・・

A列に日付・・・G列に金額
オートフィルターで指定日付範囲の印刷まではうまく行ったのですが
そのオートフィルターで指定した範囲の合計金額を表示させたい
印刷後はその合計金額は消す・・・

コメントブロックしている箇所で合計金額を表示させようとしたのですが
オートフィルター範囲外、リストのデータが入っている所に上書きしちゃう などなど・・・
上手く合計が出なくて困っています、いい方法何かありますか?@VBA素人の22歳OL

Sub 日付範囲印刷()

Range("A1").AutoFilter field:=1, Criteria1:=">=" & Range("J19").Value, _'J19開始日
Operator:=xlAnd, _
Criteria2:="<=" & Range("J20")                          ’J20終了日

'Dim kis
'Set kis = Range("G" & Rows.Count).End(xlDown)
'kis.Offset(1, -1) = "合計金額"
'kis.Offset(1, 0) = Application.WorksheetFunction.Sum(Range("G:G"))

ActiveSheet.PageSetup.PrintArea = Range("A1").CurrentRegion.Address

ActiveSheet.PrintPreview
Range("A1").AutoFilter
ActiveSheet.PageSetup.PrintArea = ""

'kis.Offset(1, -1).Delete (xlShiftUp)
'kis.Offset(1, 0).Delete (xlShiftUp)

End Sub
969968:2013/11/20(水) 15:23:19.88
私の頭では1シートでの処理が思いつかなかったので

オートフィルターで得たデータをコピー
新たにシートを作成
そのシートに貼り付け
合計計算 入力
印刷範囲指定 印刷プレビュー
印刷プレビューを閉じたら作成したシート削除
元のシートに戻りオートフィルター解除

と、取り急ぎしました。

何か他にも方法ありそうだけど現在の私ではこれで精一杯です@22歳OL
970デフォルトの名無しさん:2013/11/20(水) 15:47:35.15
頑張ってる22歳OL
萌え萌えキュンキュンだわ
971デフォルトの名無しさん:2013/11/20(水) 15:48:54.99
>>968
フィルターされて非表示になった行はVisibleプロパティで判定
972デフォルトの名無しさん:2013/11/20(水) 15:59:30.92
>>968
Sub 日付範囲印刷()  'Print以降は同じ
Dim kis
Set kis = Range("G" & Rows.Count).End(xlUp)
End_Adr = Range("G" & Rows.Count).End(xlUp).Address

Range("A1:" & End_Adr).AutoFilter field:=1, Criteria1:=">=" & Range("J19").Value, _
Operator:=xlAnd, Criteria2:="<=" & Range("J20")  'J19開始日 J20終了日

kis.Offset(1, -1) = "合計金額"
kis.Offset(1, 0) = Application.WorksheetFunction.Subtotal(9, Range("G:G"))

ActiveSheet.PageSetup.PrintArea = Range("A1").CurrentRegion.Address
オートフィルターは殆んど使った事ないので、不完全の可能性あるけど。
自己責任で。
973デフォルトの名無しさん:2013/11/20(水) 16:04:37.31
kis ってやっぱ キッスから来てるのかな・・・
何かエロい おれも sexとか変数使おうかな・・・
974デフォルトの名無しさん:2013/11/20(水) 16:15:19.69
Keep In Stupid
975デフォルトの名無しさん:2013/11/20(水) 16:33:51.37
>>974
照れるわ
976デフォルトの名無しさん:2013/11/20(水) 17:24:10.15
俺も明日からi 使わない
Kissかsexにするわ
977デフォルトの名無しさん:2013/11/20(水) 18:57:35.35
>>972
私の思い通りの処理ができました!本当にありがとうございます

他にアドバイスくれた方もありがとうございました
皆さんのスキルの高さに圧倒されっぱなしです@22歳OL
978デフォルトの名無しさん:2013/11/20(水) 21:15:29.74
じゃあ俺は次から17歳JKって名乗るわ
979デフォルトの名無しさん:2013/11/20(水) 21:31:24.15
再度質問させていただきます。
フォームをつかいこなしたいのでフォームに特化した本を探していたところ
次の2冊を検索で見つけました。

 「知識ゼロから学ぶExcelVBAプログラミングユーザーフォーム&コントロール」
 「アプリ作成で学ぶExcel VBAプログラミングユーザーフォーム&コントロール」

どちらがオススメですか?
自分はVBAは中級者だと思ってますが、フォームは少ししか使ったことがありません(使ったとしても1個だけのフォームにグループわけのやつやSetFocusやコンボリストくらい)。
980デフォルトの名無しさん:2013/11/20(水) 21:36:43.81
>>977
なんか照れるわ
981デフォルトの名無しさん:2013/11/20(水) 21:44:25.12
>>979
目次を見て、自分に合ってるのはどちらか、自分で判断名するしかないと思う。
ちなみに、ネット上で目次は見る事が出来る。
982デフォルトの名無しさん:2013/11/20(水) 22:25:36.88
>>979
知識ゼロから学ぶExcelVBAプログラミングユーザーフォーム&コントロール
983デフォルトの名無しさん:2013/11/20(水) 22:29:06.45
>>979
なんかタイトルが似すぎてるんだけど、同じ出版社?
こういうのって、例えば著者が同じなら内容もほとんど同じだから好きな方、新しい方、安い方とか
適当に選べばいい
984デフォルトの名無しさん:2013/11/20(水) 22:49:00.94
>>979
そんな本よりガイジンが書いた本を買いなよ
スカスカな日本語参考書より遥かに役にたつよ
985デフォルトの名無しさん:2013/11/21(木) 06:42:14.41
うめ
986デフォルトの名無しさん:2013/11/21(木) 12:16:16.69
シートコピーしたときのWorksheetって取れないのかな
Dim NewSheet As Worksheet
Set NewSheet = Workbooks(1).Sheets(1).Copy
みたいな感じで。
987デフォルトの名無しさん:2013/11/21(木) 13:55:59.76
>>986
シート自体を直で取得する方法は分からないのですけれど、
いったん新規ブックを作成して、
そこにコピーするというのはいかがかしら?@17歳女子高生(嘘)

Sub Test()
Dim sh As Worksheet
Set sh = Workbooks.Add(xlWBATWorksheet).Sheets(1)
ThisWorkbook.Sheets(1).Cells.Copy
sh.Paste
sh.Cells(1, 1).Select
Application.CutCopyMode = False
End Sub
988デフォルトの名無しさん:2013/11/21(木) 15:16:39.03
コピーするときに位置指定できるんだから、コピーした後その位置のシート取得すればいいだけだろ
989デフォルトの名無しさん:2013/11/21(木) 16:04:44.85
今日はOLちゃん居ないな・・・
寂しいわ
990デフォルトの名無しさん:2013/11/21(木) 16:11:37.42
>>987
クリップボード使いたくないんですよね

>>988
やっぱそれしかないですかね
その取り方だと保証がないから気になってるんですが…
まあ実際は問題ありませんが
991デフォルトの名無しさん:2013/11/21(木) 17:11:37.13
>>990
普通にやってばコピー先のシート掴むまでに割り込まれる事はないと思うが
そんなことすら不定ならシート操作とか怖くてできん

それで不満があるなら、自分で新規シート作って、そこに元シートの全内容コピペするしかあるまい
厳密にはそれは_シート_をコピーしてないが
992デフォルトの名無しさん:2013/11/21(木) 19:54:17.72
うめ
993デフォルトの名無しさん:2013/11/21(木) 21:32:00.37
うめ
994デフォルトの名無しさん:2013/11/21(木) 23:12:18.72
次スレ

Excel VBA 質問スレ Part33
http://toro.2ch.net/test/read.cgi/tech/1382015080/

随分前から立ってたみたいだな
995デフォルトの名無しさん:2013/11/22(金) 06:29:03.43
うめ
996デフォルトの名無しさん:2013/11/22(金) 07:09:44.10
>>994
何言ってるんだ?
こっちの方が先だろ。

次スレ

Excel VBA 質問スレ Part32
http://toro.2ch.net/test/read.cgi/tech/1381151995/
997デフォルトの名無しさん:2013/11/22(金) 07:10:15.53
うめ
998デフォルトの名無しさん:2013/11/22(金) 07:11:01.77
うめ
999デフォルトの名無しさん:2013/11/22(金) 07:11:48.03
うめ
1000デフォルトの名無しさん:2013/11/22(金) 07:12:30.89
うめ
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。