[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 2chのread.cgiへ]
Update time : 07/02 11:18 / Filesize : 223 KB / Number-of Response : 871
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Excel VBA 質問スレ Part24



1 名前:デフォルトの名無しさん mailto:sage [2012/04/13(金) 17:19:08.43 ]
ExcelのVBAに関する質問スレです

★1 質問テンプレ(雛形)は用意しませんが、OSとExcelのバージョンは必ず書きましょう。

★2 ExcelのVBA以外の部分に関する質問はNGです。
   但し、VBA無しでも出来ることだが、あえてVBAでやりたいって物に関してはOK。

★3 ExcelのVBE(Visual Basic Editor)を使うとしても、VBAの分野以外に関してはスレ違いです。

 VBAとは、『Visual Basic for Applications』の略で
  Application
  ├Workbooks
  |└Workbook
  |  ├Worksheets
  |  |└Worksheet
 というApplication以下のオブジェクトを、VB言語で操作するものを指します。
 例えExcel付属のVBE(Visual Basic Editor)を利用しようとも、このApplication以下のブックやシート、
 セルやオブジェクト等を操作するもの以外はVBA分野の話ではないので、ここでは聞かないでください。

★4 とりあえず、Excelのインスタンスを作らずにVB6で出来ることは全てスレ違いだと思ってください。

★5 レベルはどうあれ、ここはプログラマ用の板スレです。プログラマとは、自分でプログラムを組み、
   コードを書く人の事なので、自分でやるきは全く無く、丸投げしようって人はお断りです。
   ヒントを貰えばあとは自力でなんとかしますって人のみどうぞ。

★6 わからなければとりあえず「マクロの記録」(Alt, T, M, R)

前スレ:
Excel VBA 質問スレ Part23
toro.2ch.net/test/read.cgi/tech/1327763113/

331 名前:デフォルトの名無しさん mailto:sage [2012/05/14(月) 17:54:01.42 ]
2007で動かなかったという現実があるのに、なんで「ありますか?」とか聞くのだ、この馬鹿は

332 名前:デフォルトの名無しさん mailto:sage [2012/05/14(月) 20:48:49.86 ]
ネタスレにすんな。
せっかく有益なスレなのに

333 名前:デフォルトの名無しさん mailto:sage [2012/05/14(月) 21:52:02.46 ]
悪い、動かんと言われたけど、実際の環境というか操作方法とか確認できないのよ。
だから、聞いたのよ。


334 名前:デフォルトの名無しさん mailto:sage [2012/05/14(月) 21:52:37.26 ]
>>331
馬鹿は出てこないでくれ

335 名前:デフォルトの名無しさん mailto:sage [2012/05/14(月) 22:19:00.30 ]
>>333
んで、そんなこと聞いてどうするの?
実際の環境も操作方法も確認できなくて、2ちゃんでできるとかできないとか回答もらってどうするの?
いまいち質問の意図が読みとれない

336 名前:デフォルトの名無しさん mailto:sage [2012/05/15(火) 00:30:32.23 ]
>>333
そんなもん99%は操作ミスかセキュリティ設定が悪くてマクロが動いてないだけ
まずは客先へ行ってちゃんと知識のあるやつが状況を把握してこい

337 名前:デフォルトの名無しさん mailto:sage [2012/05/15(火) 00:33:00.36 ]
>>336
確認できないって書いてるの読めない?

338 名前:デフォルトの名無しさん mailto:sage [2012/05/15(火) 00:38:19.48 ]
確認できないってのは、確認するのが「不可能」じゃなくて、「めんどくさい」だろ
デバッグってのは結局のとろこ>>336に尽きるんだが、それをしないなら有意な質問にならないし、まともな回答も出来ないんだよ

339 名前:デフォルトの名無しさん mailto:sage [2012/05/15(火) 01:24:01.74 ]
小学生知能にマジレスしてやんなよw



340 名前:デフォルトの名無しさん mailto:sage [2012/05/15(火) 01:46:55.88 ]
確認できないってことは相手は言語を超越した何かか?w

341 名前:デフォルトの名無しさん mailto:sage [2012/05/15(火) 02:26:50.55 ]
>>340
それだと受注もできんだろ

太陽系の外へ向かったロケットか何かなんだよ、きっと

342 名前:デフォルトの名無しさん mailto:sage [2012/05/15(火) 03:20:17.30 ]
2007でなくなって2010で復活した変更点があればそれ絡みだろうけど
それっぽいものは見つけられんなぁ

環境に依存する何かを使ってるんじゃないかと


343 名前:デフォルトの名無しさん mailto:sage [2012/05/15(火) 14:54:57.82 ]
>動作保証は、あくまでも2003と2010。
>客先にもそれしかないから。
>たまたま動かしたPCに2007が入っていて

部外者が勝手に動かしたのか?恐ろしい職場だな

344 名前:デフォルトの名無しさん mailto:sage [2012/05/15(火) 19:54:52.28 ]
ユーザーフォームで使用者に必要事項を入力させているのですが
ComboBoxで何も選択されていないことが想定され
その場合のエラー処理で困っています。
ユーザーフォームは表示したままでCommandButton
をクリックする前の状態に出来ないでしょうか?

345 名前:デフォルトの名無しさん mailto:sage [2012/05/15(火) 20:07:07.92 ]
if combobox1.value="" then exit sub

346 名前:デフォルトの名無しさん mailto:sage [2012/05/15(火) 21:10:08.88 ]
>>345
あら、そんなに単純だったんですね
ありがとうございます。


347 名前:デフォルトの名無しさん mailto:sage [2012/05/15(火) 21:51:02.47 ]
for〜nextで繰り返し処理している中で
inputboxで数値を入力させているのですが、
inputboxのキャンセルをクリックしたときに
inputbox以外の処理はカウント完了するまで続けたいのですが
できませんか?
また出来るなら方法をご教示下さい。

348 名前:デフォルトの名無しさん mailto:sage [2012/05/15(火) 22:09:07.15 ]
Sub test()
For i = 1 To 5
a = InputBox("hoge")
If a = "" Then
MsgBox "キャンセルされたよ"
Else
MsgBox a
End If
b = b + 1
Next
MsgBox b & "回ループしたよ"
End Sub

349 名前:デフォルトの名無しさん mailto:sage [2012/05/15(火) 22:13:05.89 ]
>>333
その位で確認してから質問しろ



350 名前:デフォルトの名無しさん mailto:sage [2012/05/15(火) 22:38:17.64 ]
>>348
それだと毎回inputboxが出てくるので
一度キャンセルされるとそれ以降はinputboxを
とばして残りの処理をしたいのです。


351 名前:デフォルトの名無しさん mailto:sage [2012/05/15(火) 22:46:01.10 ]
exit for すりゃいいじゃん

352 名前:デフォルトの名無しさん mailto:sage [2012/05/15(火) 22:49:35.84 ]
>>351
それだと残りのFor〜Next内の処理ができないです。


353 名前:デフォルトの名無しさん mailto:sage [2012/05/15(火) 23:04:09.77 ]
Sub test()
Dim flag As Boolean
For i = 1 To 5
If Not flag Then a = InputBox("hoge")
If a = "" Then flag = True
b = b + 1
Next
MsgBox b & "回ループしたよ"
End Sub

354 名前:デフォルトの名無しさん mailto:sage [2012/05/15(火) 23:17:15.40 ]
>>353
ありがとうございます。
完璧です!

355 名前:デフォルトの名無しさん mailto:sage [2012/05/16(水) 03:21:47.17 ]
例えばあるシートの、1行目の、1列から10列目までに色々な数値が書かれていて
最小値だったり、最大値だったりを持つ数値の列数を算出していきたいんですが

とりあえず以下のようなやり方で出来るんですが

最小値 = WorksheetFunction.Min(Range(Cells(1, 1), Cells(1, 10)))

最小値をもつ列  = Range(Cells(1, 1), Cells(1, 10)).Find(最小値).Column



何か1行ぐらいのスッキリした文で求める方法ないでしょうか?
というのは、行の部分を変数化して、何千行、何万行と作業やっていくので
負担の無い早そうなスピードがのりそうな文があればそのほうがいいんですが
どなたがご存知でしょうか?

356 名前:デフォルトの名無しさん mailto:sage [2012/05/16(水) 08:45:44.06 ]
ねえよ

見た目だけそうなればいいなら、サブモジュール作る

357 名前:デフォルトの名無しさん mailto:sage [2012/05/16(水) 09:02:26.45 ]
>>356
ありがとうございます>>355でもあんまり速度は悪くなさそうですね。

これでやってみます。もしそういうのがあれば、知りたいなと思いました。

358 名前:デフォルトの名無しさん mailto:sage [2012/05/16(水) 09:17:27.03 ]
だめだオブジェクト指向が苦手だ
Cで慣れすぎたせいで効率悪い

359 名前:デフォルトの名無しさん mailto:sage [2012/05/16(水) 09:57:16.22 ]
>>358
単に大規模システムの構築に慣れてないか、
小規模なものを無理矢理小分けにして無意味にごっちゃにしてるかのどっちかじゃないの



360 名前:デフォルトの名無しさん [2012/05/16(水) 10:31:06.74 ]
P10に=((1/(COS(RADIANS(N10))))-1)*AI10*AJ10*X10/V10/1000
O10に=AK10/(SIN(RADIANS(N10)))という式が入力されていて
P10=O10のときのN10の値を求めたいんですがどういうコードを書けば
いいのかわかりません。

361 名前:デフォルトの名無しさん mailto:sage [2012/05/16(水) 10:38:16.38 ]
>>360
Function GetN10()
If Range("P10") = Range("O10") Then
GetN10 = Range("N10")
Else
GetN10 = 0
End If
End Function

362 名前:デフォルトの名無しさん [2012/05/16(水) 11:43:29.77 ]
>>361
ありがとうございます。
でもそれを使ってどうしていいのかわかりませんでした。

363 名前:デフォルトの名無しさん mailto:sage [2012/05/16(水) 12:06:29.58 ]
へえ、あんたなかなかやるじゃん

364 名前:デフォルトの名無しさん [2012/05/16(水) 17:10:25.84 ]
失礼します。
今プログラムを作っていて、
ある列に数字をうっていてある条件を出していくようなプログラムを作っているのですが、(ここはあまり関係ない)
ActiveXコントロールを押すと、行のBの列の数字を。
そして次にまた押すと、行のCの列の数字を、、、というように
やっていきたいのですが、これをするためには、
例えば、iだとかjだとを一回格納する必要があります。

例えば、
Private Sub CommandButton1_Click()
dim i as integer
i=0
i=i+1



End Sub

プログラムが終了しても、このiを保存しておきたいのです。
どのようなやり方がありますか?

365 名前:デフォルトの名無しさん mailto:sage [2012/05/16(水) 17:33:52.80 ]
セルに書く
外部ファイルに書く
ソースコードのコメントに書く
コントロールに書く

366 名前:デフォルトの名無しさん mailto:sage [2012/05/16(水) 17:36:40.83 ]
まぁセルのどっかに保存が一番簡単だな。
見た目云々をいうなら白文字で代入とか。

ところで、例えがiを必ず初期化しているせいで、逆に分かりづらくなっている気がするんだが

367 名前:デフォルトの名無しさん mailto:sage [2012/05/16(水) 17:40:35.92 ]
ブック名やシート名っていう手もあるぞい

368 名前:デフォルトの名無しさん mailto:sage [2012/05/16(水) 20:39:35.86 ]
>>360
ゴールシークは使えないの?

369 名前:デフォルトの名無しさん mailto:sage [2012/05/16(水) 20:44:24.26 ]
というか、ホントにプログラムが終了しても保存してないとダメなのか?
Subを抜けても保存されてるんだけで良いんじゃないのか?
それならSubの外で変数定義するか、Staticな変数使えばいいだけだが



370 名前:デフォルトの名無しさん mailto:sage [2012/05/16(水) 20:55:08.71 ]
釣られすぎw

371 名前:デフォルトの名無しさん mailto:sage [2012/05/16(水) 22:24:58.52 ]
中国のGDP、実は日本を超えてなかった
engawa.2ch.net/test/read.cgi/poverty/1337172543/


中国経済、予想を超える急減速か

世界第2位の経済大国の舵(かじ)取り役に来年就任する人物は、
中国の国内総生産(GDP)統計に対する疑念をうっかり漏らした。
中国の公式GDP統計は「人為的」で当てにならないと語ったのは李克強氏だ。

李氏の評価が正しければ、中国経済はGDP統計がこれまで示唆してきたよりもかなり厳しい苦境に陥っている。
電力や鉄道貨物、銀行融資をはじめ、ここ数日で発表された注目度の低い統計は、
いずれも経済活動の急激な落ち込みを示しており、政策立案者たちに不意打ちを食らわせたようだ。

最近の悲惨な統計を受け、中央銀行は12日、融資拡大を促すために市中銀行の預金準備率を引き下げた。
しかし、金融危機後の大規模な低利融資と政府支援による投資の結果、中国政府には今回、
限られた武器しか残っていない。一方で、インフレ再燃と国営銀行の不良債権への懸念が高まっている。

www.nikkei.com/biz/world/article/g=96958A9C9381959FE3E7E2E1848DE3E7E2E7E0E2E3E0E2E2E2E2E2E2;dg=1;df=2;p=9694E3E7E2E0E0E2E3E2E6E1E0E2




372 名前:デフォルトの名無しさん mailto:sage [2012/05/16(水) 23:05:47.74 ]
超えててくれたほうがいろいろありがたいんだが

373 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 16:01:40.27 ]
うん、愚図愚図してないでとっとと超えろと言いたい

374 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 16:11:52.78 ]
馬鹿には無理

375 名前:デフォルトの名無しさん [2012/05/19(土) 18:47:15.19 ]
VBAを使って作業しまくったらPCが異常に重くなるんです。
最近会社で効率のため自分用VBAをいっぱいつくるようになってからの症状なので
VBAが原因なのは明らかです。
なにかメモリを解放しないといけないのですかな?
どうか対策のことでアドバイスをお願いできますでしょうか?

376 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 18:51:19.39 ]
>>375
まず、タスクマネージャでどのプロセスが CPU やメモリ食ってるかを見てみなよ。

377 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 18:55:17.89 ]
動的配列を使ったら最後に必ず erase するとか

378 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 18:58:16.27 ]
>>375
どんなコード書いてるのかわからないのでアドバイスしようがないと思うけど・・・?
PCが重いってのは何が重いの?ディスクI/O?CPU?メモリアクセス?
VBAが原因なのは明らかっていう根拠は何?

379 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 20:27:42.40 ]
EXCEL終わらせても重いままだったらVBAは無関係だと思っていいが



380 名前:375 [2012/05/19(土) 20:29:04.21 ]
Excel終わらせたら、もちろん軽いパパです。

381 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 20:38:35.31 ]
>>380
じゃあVBAのロジックがクソなんだろw

382 名前:375 [2012/05/19(土) 20:51:45.02 ]
そのとおり糞だからこそその改善策を聞いているのですが・・・

383 名前:デフォルトの名無しさん [2012/05/19(土) 20:55:33.26 ]
VBAでオートフィルタをさせているんですが
そのフィルタをする項目として、Selectionで囲ったセルを指定してます。
criteria1:=Array(Selection)
みたいな感じです。

しかしこのselection、1行の横長だとうまくいくんですが
1列の縦長だとエラーが出て「エラいこっちゃ」になります。

縦でselectionしたときも、複数行・列にわたってselecionしたときにその内部のセル全部でフィルターしたいときには
どういうコードを書けばいいですか?

384 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 21:11:24.37 ]
>>382
だから早くその糞コードを見せろよ

385 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 21:12:19.84 ]
>>383
わからなければとりあえず「マクロの記録」(Alt, T, M, R)

386 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 21:26:08.03 ]
>>382
重い処理を何回もループさせるとCPU使用率がヤバくなるよね。それじゃね?。sleep入れてみれば?。

387 名前:デフォルトの名無しさん mailto:sage [2012/05/20(日) 03:39:29.77 ]
>>375
適当なタイミングでDoEventsかませ


388 名前:デフォルトの名無しさん mailto:sage [2012/05/20(日) 11:03:41.98 ]
データを他のブックに貼り付けて終わらせるのがあるんですけど、
下のメッセージが出るんでこれを出さないようにする方法とかないですか?

クリップボードに大きな情報があります。この情報をほかのプログラムに貼り付けられるようにしますか?


389 名前:デフォルトの名無しさん mailto:sage [2012/05/20(日) 11:10:30.81 ]
>>388
Application.CutCopyModeにFalseをセットする。



390 名前:デフォルトの名無しさん mailto:sage [2012/05/20(日) 11:12:45.84 ]
Application.DisplayAlerts = False

391 名前:デフォルトの名無しさん mailto:sage [2012/05/20(日) 15:00:31.73 ]
sn = Array("りんご", "ゆず", "かぼす")
For ii = 1 To 3
Set ws = Worksheets(sn(ii))
Set tmp = ws.Cells(Rows.Count, 1).End(xlUp).Rows
ws.Range(Cells(1, 1), Cells(tmp, 10)).Select
Next ii
とするとRangeのところで実行時エラー1004が出ます。
どうしたらいいでしょうか

392 名前:デフォルトの名無しさん mailto:sage [2012/05/20(日) 15:14:26.21 ]
>>391
tmpには正しい(意図している)値が入ってるの?

393 名前:デフォルトの名無しさん mailto:sage [2012/05/20(日) 15:27:12.60 ]
>>392
すこし修正して入っているのを確認しましたが、
今度はRangeクラスのSelectメソッドが失敗しました。
のエラーが出ました。

394 名前:デフォルトの名無しさん mailto:sage [2012/05/20(日) 15:56:30.31 ]
>ws.Range(Cells(1, 1), Cells(tmp, 10)).Select
CellsがActiveSheet見てるんじゃないかと予想


395 名前:再質問です [2012/05/20(日) 16:00:22.22 ]
VBAでオートフィルタをさせているんですが
そのフィルタをする項目として、Selectionで囲ったセルを指定してます。
criteria1:=Array(Selection)
みたいな感じです。

しかしこのselection、1行の横長だとうまくいくんですが
1列の縦長だとエラーが出て「エラいこっちゃ」になります。

縦でselectionしたときも、複数行・列にわたってselecionしたときにその内部のセル全部でフィルターしたいときには
どういうコードを書けばいいですか?

396 名前:デフォルトの名無しさん mailto:sage [2012/05/20(日) 16:04:09.76 ]
>>395
出たエラーとコードを晒せ

397 名前:デフォルトの名無しさん mailto:sage [2012/05/20(日) 16:05:34.96 ]
>>389
thxですm(__)m

398 名前:デフォルトの名無しさん mailto:sage [2012/05/20(日) 16:06:49.95 ]
>>394
正解でした。
しょうもないミスですんません・・

399 名前:デフォルトの名無しさん mailto:sage [2012/05/20(日) 16:22:50.57 ]
>>277
ActiveSheet.Range("B1").AutoFilter Field:=1, Operator:=xlFilterValues, Criteria2:=Array(1, "31/05/2012")



400 名前:395 [2012/05/20(日) 16:25:19.61 ]
>>396
恥ずかしいゎ

401 名前:デフォルトの名無しさん mailto:sage [2012/05/20(日) 17:28:16.42 ]
>>395
わからなければとりあえず「マクロの記録」(Alt, T, M, R)

402 名前:デフォルトの名無しさん mailto:sage [2012/05/20(日) 18:36:04.74 ]
>>395
こんな感じかな

Sub test()
Dim V()
Dim c As Range
Dim n As Long

ReDim V(1 To Selection.Count)

For Each c In Selection
n = n + 1
V(n) = c.Value
Next

Range("A1").AutoFilter Field:=1, Criteria1:=Array(V), Operator:=xlFilterValues
End Sub

403 名前:395 [2012/05/20(日) 18:38:22.69 ]
>>402
すばらしい!
それこそわたしが探し求めてたものです。
ありがとうございます。

しかしマクロ記録を勧める人は何だったんだろ。ピントはずれ。

404 名前:395 [2012/05/20(日) 18:40:35.55 ]
この配列を使い、それをvarient型で使う、というのはどういうしくみになってるんだろ。
使い方をまとめてくれてるサイトみたいなのない?

あとFilter機能で使ったように、Arrayの使い方も、
今後の活用のために、まとめサイトみたいなのない?

405 名前:デフォルトの名無しさん mailto:sage [2012/05/20(日) 20:22:49.49 ]
>>402
Criteria1:=V でよっかた

406 名前:デフォルトの名無しさん mailto:sage [2012/05/21(月) 11:01:11.02 ]
>>402
コードを見て質問の意味が理解できたw
あんたスゲーよ

407 名前:デフォルトの名無しさん mailto:sage [2012/05/21(月) 11:44:27.03 ]
さすがにそれはエスパーレベルが低すぎだろ

408 名前:デフォルトの名無しさん mailto:sage [2012/05/22(火) 08:38:38.53 ]
シートに  A:データの一覧表(500行ほど)
       B:ブランクフォーム

と2つのシートがあるマクロがあります。マクロを実行すると
 −Aシートの1行をBのブランクフォームに転記して、
 −ブランクフォームを新しいシートにコピー
 −そのシートを新しいファイルにして保存。 を繰り返しています。

ただ、100〜200くらいでメモリーか何かのエラーでマクロが止まります。
再開すればまた走るのですが、最初から最後まで連続で生かせる方法ありません?

409 名前:デフォルトの名無しさん mailto:sage [2012/05/22(火) 08:54:21.37 ]
ファイル保存終わったら閉じろ
更に一回ごとにクリップボード空にしろ


かなあ
新規ブックのインスタンスって閉じた時点で解放されるのか?



410 名前:デフォルトの名無しさん mailto:sage [2012/05/22(火) 09:36:18.16 ]
>>408
コードにバグがあるんだろうね
どっかにアップしてみたら誰かが見てくれるよ

411 名前:デフォルトの名無しさん mailto:sage [2012/05/22(火) 09:46:48.28 ]
調べてみたら、エクセルで増やしたブックのメモリは減らないのが仕様らしい
クローズしたら一回doevent入れてみそ

VBAからエクセルあるいは別のオートメーションを参照して、毎回解放するとかくらいかなあ

412 名前:デフォルトの名無しさん mailto:sage [2012/05/22(火) 11:16:58.15 ]
まず
本体ブック
作業ブック
にわける
本体ブックから作業ブックを呼び出し、作業ブックにある実際の作業モジュールを実行して、作業ブックを閉じる

クリエイトオブジェクトでエクセルアプリケーションをセット
セットしたオブジェクトから作業ブックを開く
作業ブックのモジュールを実行
作業ブックを閉じる
セットしたエクセルアプリケーションをクイット
エクセルアプリケーションの解放

これでフロセス上エクセルが二重起動して作業側が主メモリを食った後解放されるはず
本体メモリも若干ふえるけど、致命的にはならないんじゃないか

413 名前:デフォルトの名無しさん mailto:sage [2012/05/22(火) 11:33:17.81 ]
日付     あるセル
5月12日   15回目
5月15日   16回目
5月30日   17回目

上記の日付と「NN回目」は予め入力済みとする。
このとき、日付蘭が今日を過ぎている場合、
あるセルの書式を「水色背景、青文字」にするという書式設定をしている。

後日、「NN回目」の後にセンテンスを追加した場合(途中に半角文字があったりすると)
セルの書式(文字色)が途中から指定の青ではなく黒のままになってしまう。(背景色はOK)

単純にセルの切り取り&ペーストをしても変わらないので、
@「セルのセンテンスをコピーし、テキストデータとしてはり付けると既定の書式に修正される。」

この手順が手間なので、ボタン一つで@と同じ動作をさせたいのですが、マクロで出来ますか?

414 名前:デフォルトの名無しさん mailto:sage [2012/05/22(火) 11:47:51.21 ]
5月12日を過ぎたら、15回目と書かれたセルの書式は「水色背景、青文字」になるけど、
「15回目」の後に「ぬるぽ」って追加すると「水色背景、黒文字」になってしまうということ?

415 名前:デフォルトの名無しさん mailto:sage [2012/05/22(火) 13:20:18.11 ]
できる
対象セルに「NN回目」って文字列が記入されてるならだが


1.正規表現
vbsのregexpをオブジェクト参照セット
パターン文字列に数字一回以上&回目

2.
頭から一文字づつ判定
連続した数字でかつ最後に回目だったら抜き出し

416 名前:デフォルトの名無しさん mailto:sage [2012/05/22(火) 14:06:26.72 ]
必ずそうなるというわけではないんだけど

15回目           (水色背景、青文字)

↓文字「ぬるぽ?ががが」追加

15回目 ぬるぽ?ががが (水色背景)

       「ぽ」まで青文字
         「?」以降が黒文字 ←?が半角

どうやら半角文字があると、その文字以降に文字色の書式が反映されないみたい
半角以外でも同様の現象が起きているけど、条件ははっきりしていない

417 名前:デフォルトの名無しさん mailto:sage [2012/05/22(火) 15:08:17.31 ]
ボタンを押していいなら、ボタンのイベントで日付列の経過してるセルを確認して、
それに対応している「あるセル」に書式設定すればいいんでないの。

418 名前:デフォルトの名無しさん mailto:sage [2012/05/23(水) 10:18:01.96 ]
「マクロを書け」とか「ソースを見せろ」とか人によって言われることが違うんですが
マクロ、VBA、コード、プログラム、ソースの違いというか言葉の正しい使い分けを教えて下さい

419 名前:デフォルトの名無しさん mailto:sage [2012/05/23(水) 10:48:04.64 ]
>>418
じっくり読んでください
ja.wikipedia.org/wiki/%E3%82%BD%E3%83%BC%E3%82%B9%E3%82%B3%E3%83%BC%E3%83%89
ja.wikipedia.org/wiki/Visual_Basic_for_Applications
ja.wikipedia.org/wiki/%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0_(%E3%82%B3%E3%83%B3%E3%83%94%E3%83%A5%E3%83%BC%E3%82%BF)
ja.wikipedia.org/wiki/%E3%83%9E%E3%82%AF%E3%83%AD_(%E3%82%B3%E3%83%B3%E3%83%94%E3%83%A5%E3%83%BC%E3%82%BF%E7%94%A8%E8%AA%9E)
ja.wikipedia.org/wiki/%E3%83%9E%E3%82%AF%E3%83%AD%E8%A8%80%E8%AA%9E



420 名前:413 mailto:sage [2012/05/23(水) 12:55:49.58 ]
左隣のセルを使うという姑息な手法で作ってみたw

あるセルを選択した状態で、マクロ「カットペースト」を実行

Sub カットペースト()
 '選択セルの値をコピー
   Selection.Copy

 '左のセルに値を貼り付け
   ActiveCell.Offset(0, -1).Select
   Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
   :=False, Transpose:=False
   Application.CutCopyMode = False

 '左セルの値をコピー
   Selection.Copy

 '選択セルに値を貼り付け
  ActiveCell.Offset(0, 1).Select
  Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
   :=False, Transpose:=False

 '左セルの値を空に
  ActiveCell.Offset(0, -1).Select
  Application.CutCopyMode = False
  Selection.ClearContents
  ActiveCell.Offset(0, 1).Select

End Sub

もっとシンプルに出来そうなんだけど・・・

421 名前:デフォルトの名無しさん mailto:sage [2012/05/23(水) 13:00:52.08 ]
selectする奴はトド素人

422 名前:デフォルトの名無しさん mailto:sage [2012/05/23(水) 13:02:59.11 ]
selectしてると誤動作するよね

423 名前:デフォルトの名無しさん mailto:sage [2012/05/23(水) 13:39:28.64 ]
じゃお洒落な解答を教えてけろっぴ

424 名前:デフォルトの名無しさん mailto:sage [2012/05/23(水) 15:22:46.42 ]
EXCEL VBAをJavaScriptみたいにJITコンパイルして欲しいなあ
実行速度が遅すぎる

425 名前:デフォルトの名無しさん mailto:sage [2012/05/23(水) 15:24:35.79 ]
>>424
無理です

426 名前:デフォルトの名無しさん mailto:sage [2012/05/23(水) 15:28:18.29 ]
>>425
何でや
JavaScriptに出来てどうしてVBAで出来ん

427 名前:デフォルトの名無しさん mailto:sage [2012/05/23(水) 18:59:31.41 ]
じゃあアセンブラでもやっとけ

428 名前:デフォルトの名無しさん mailto:sage [2012/05/23(水) 19:02:17.80 ]
VBAだけ頑張っても、どうせExcelが足引っ張るだろうし。

429 名前:デフォルトの名無しさん mailto:sage [2012/05/23(水) 19:06:47.07 ]
>>424
CSV形式にしてRUBYで処理すれば良いよ。



430 名前:408 mailto:sage [2012/05/23(水) 21:04:26.55 ]
>>411
doevenで解決。深謝。

431 名前:デフォルトの名無しさん mailto:sage [2012/05/23(水) 23:30:42.08 ]
JIT はどうでもいいから、Excel C# for Application にしてくれ。

432 名前:デフォルトの名無しさん mailto:sage [2012/05/23(水) 23:52:46.56 ]
やめてdotNetやめてまじやめて
書き直しとか死ねる

いざってために出来るようにいろいろ勉強してるけどまじ簡便

433 名前:デフォルトの名無しさん mailto:sage [2012/05/24(木) 11:00:35.34 ]
使ったことないけど、VSTOとかExcel-DNAとか使うといいんじゃ

434 名前:デフォルトの名無しさん [2012/05/25(金) 01:20:59.06 ]
ExcelVBAとSharePOINTのデータ連携なんですが

dt_sheet.ListObjects.Add(SourceType:=xlSrcExternal, _
Source:=Array("SharePoint サイトの URL", ListName, ViewGUID), _
LinkSource:=True, _
XlListObjectHasHeaders:=xlYes, _
Destination:=Range("A3")).Name = tbllist

SharePointのリストデータを取得しエクセル上にデータ表示(これはできました)
ここから質問なんですが、以下手順

1.エクセル上でデータを修正
2.エクセル上に作成した〔更新〕ボタンを押下
3.SharePointのリストデータが更新される

これってVBAで可能なんですかね?
可能であればどういうコード書けばいいんですかね?
【ver】
Excel2007
SharePoint2007


435 名前:デフォルトの名無しさん mailto:sage [2012/05/25(金) 08:27:32.47 ]
知らん
外部連携ならそっちの仕様による

436 名前:デフォルトの名無しさん mailto:sage [2012/05/26(土) 17:04:52.52 ]
バルーンをvbaで操作したいのだが、このスレでいいのかな。

ボタンなしのモードレスバルーンでコールバックさせたいんだが、どうすればいいんだろか。
要は『処理中』みたいなバルーンを表示させたままコールバックプロシージャを実行させて、
終わったらクローズして、新しいバルーンで『終了』→OK、みたいに。

ユーザーフォームじゃなくて、『ろっきー君』にしゃべってもらいたいのだが・・・、
もちろんアニメは103な。


437 名前:デフォルトの名無しさん mailto:sage [2012/05/26(土) 17:59:00.53 ]
>>436
こういうことか?
msdn.microsoft.com/ja-jp/library/cc376672

コールバックされるのはバルーンのボタンを押したときみたいだな
単に処理中を表示したいなら、
普通にモーダレスのバルーンを表示するだけの話じゃないのか?

つかオフィスアシスタントっていまのバージョンでも使えるんだろうか

438 名前:デフォルトの名無しさん [2012/05/26(土) 18:48:28.46 ]
VBAの知識がない人にVBAの修正をお願いするのは無理なことでしょうか?

439 名前:デフォルトの名無しさん mailto:sage [2012/05/26(土) 18:49:45.75 ]
>>438
お願いするだけならあなたの勇気次第でしょうね



440 名前:デフォルトの名無しさん mailto:sage [2012/05/26(土) 18:52:28.11 ]
そもそもなんでそんなことしたいのよ。

441 名前:デフォルトの名無しさん mailto:sage [2012/05/26(土) 19:04:21.99 ]
>>437 thx
excel2003だ。
そうなんだが、残念ながらモードレスバルーンはコールバック必須だろ?
ボタンつき(あるいは『ret=.show』で戻るタイプ)のバルーンでコールバックプロシージャがないと
えらーになる。ボタンなしだとエラーにはならないが、当然、何もおこらんし、バルーンは消す手段がないときたもんだ。
ボタンつけてもいいんだが、いちいち『OK』するのがめんどくさい。
バルーン表示すると、表示したまま即勝手にコールバックが動いてそこで
bln.close
With NewBalloon
-----
 .show
End With
End Sub
みたいにしたいんだが...

442 名前:デフォルトの名無しさん [2012/05/26(土) 19:20:36.51 ]
438>ですが、一人で現在2つの仕事を抱えていて、その中にVBAの修正も
含まれています。VBAの知識がない人にも頼まないといけない状況で
本人も「やります。」と言われたので教えました。
すると、本人が「無理です。出来ません。」と言われました。
でも、上司が本人に実際やってみようと言っています。

443 名前:デフォルトの名無しさん mailto:sage [2012/05/26(土) 19:20:38.22 ]
>>437
>普通にモーダレスのバルーンを表示するだけの話じゃないのか?

すまん、君の言うとおりだった。そのとおりだ。ボタンなしバルーンはコールバック必須じゃないんだな。
解決だ。ありがd

444 名前:デフォルトの名無しさん mailto:sage [2012/05/26(土) 19:25:19.27 ]
>>442
むしろ仕事が遅れると思うよ。長期的にみてどうかは、別かもしれんが。

445 名前:デフォルトの名無しさん mailto:sage [2012/05/26(土) 19:27:34.25 ]
>>442
「出来ません」でやらなくていいぐらいの仕事かよw
ユルい会社でうらやましいな

446 名前:デフォルトの名無しさん mailto:sage [2012/05/26(土) 19:34:17.90 ]
VBA の仕事なんて、そんなもんだろ。

447 名前:>>442 [2012/05/26(土) 19:35:56.59 ]
本人がもう、説明途中で飽きてしまって…。「細かすぎて私には向いていません。
無理です。出来ません。担当している人(私)にしか出来ません。」ってことに
なってしまいました。

448 名前:デフォルトの名無しさん mailto:sage [2012/05/26(土) 19:36:59.43 ]
>>447
2ちゃん見る暇があるなら自分でやれよ

449 名前:デフォルトの名無しさん mailto:sage [2012/05/26(土) 19:39:46.45 ]
>448
そんな暇はありません。
一人で現在2つの仕事を抱えていて忙しいんです・・・
日本語読めないんですか?



450 名前:デフォルトの名無しさん mailto:sage [2012/05/26(土) 19:45:11.24 ]
暇はないと言いつつ、レスをちゃんと返してる ww

451 名前:デフォルトの名無しさん mailto:sage [2012/05/26(土) 19:50:32.75 ]
保守不可能なきったねーコード書いてるんだろ。

452 名前:デフォルトの名無しさん mailto:sage [2012/05/26(土) 20:06:31.85 ]
>>449
2ちゃん見る暇があるなら自分でやれよ

453 名前:デフォルトの名無しさん mailto:sage [2012/05/26(土) 20:23:52.43 ]
>>447
それ出来る出来ない以前の資質の問題だわww
興味がある仕事には一直線でバリバリだけどアラが目立ったり
興味がない仕事にはまったく見向きもしない
そういうタイプだろ?
上司はそいつにVBAをさせるのが目的じゃなくて、本人が気に入らない仕事でも一回やり遂げさせみようとしてるだけじゃね

というかVBAを何も知らないヤツにいきなり修正作業とか間違ってる

454 名前:デフォルトの名無しさん mailto:sage [2012/05/26(土) 20:42:41.58 ]
<<450
応援ありがとうございます。
頑張ります。

<<451
残念ながら私のVBAのコードは上司からも非常に綺麗なコードだと高い評価を受けています。
そういうあなたこそ綺麗なコードが書けるんですか?
そういう批判はまずはあなたの綺麗だというコードを提示してからにしてもらえますか???

<<452
本当に日本語が読めないんですね・・・。
さすがの私もにかわいそうになってきました・・・。

455 名前:デフォルトの名無しさん mailto:sage [2012/05/26(土) 20:54:09.62 ]
(あ、これはしょうがないな)

456 名前:デフォルトの名無しさん mailto:sage [2012/05/26(土) 20:54:52.94 ]
2ちゃん見る暇があるなら自分でやれよ

457 名前:デフォルトの名無しさん mailto:sage [2012/05/26(土) 21:01:37.58 ]
>>438
無理

458 名前:デフォルトの名無しさん mailto:sage [2012/05/26(土) 21:02:56.82 ]
仕事外、それも家で(たぶん)やらせるとか、俺なら絶対許可しねえ
残業ならともかく、情報落としたりへんなコードひっかけたりしたらって考えると特に

459 名前:デフォルトの名無しさん mailto:sage [2012/05/26(土) 21:05:45.49 ]
>>456
・・・。。。
病院紹介しましょうか?

>>457
無理だという根拠を教えてくいただけないでしょうか?



460 名前:デフォルトの名無しさん mailto:sage [2012/05/26(土) 21:06:21.96 ]
>>454
2ちゃんやる暇があるなら仕事しろ
小汚いコードを綺麗にしろ

461 名前:デフォルトの名無しさん mailto:sage [2012/05/26(土) 21:06:39.93 ]
て言うか、にちゃんに相談…


つまりは、そう言うことだろ。

スルー推奨。

462 名前:デフォルトの名無しさん mailto:sage [2012/05/26(土) 21:11:47.76 ]
>>461
いや、みんな、そこはわかってて、ただの暇つぶしだろ。

463 名前:デフォルトの名無しさん mailto:sage [2012/05/26(土) 21:13:27.19 ]
釣り師と針つついて遊んでる魚のじゃれ合いだよな

464 名前:デフォルトの名無しさん mailto:sage [2012/05/26(土) 21:14:30.92 ]
>>460
仕事しろって・・・
今日は土曜日なので休みですが???
先ほども書きましたけどコードは綺麗なんです。
日本語読めないんですか?

>>461
困っているから相談しているんです。
他に相談するところが見つからなかったんです・・・

465 名前:デフォルトの名無しさん mailto:sage [2012/05/26(土) 21:15:50.54 ]
>>464
仕事遅いんだから仕事しろ

466 名前:デフォルトの名無しさん mailto:sage [2012/05/26(土) 21:16:07.78 ]
>>463
機嫌を損ねてしまったのならば申し訳ありません。
本当に困っているんです。
このままでは週明けに2つの仕事を抱えていて忙しくてまずいです。

467 名前:デフォルトの名無しさん mailto:sage [2012/05/26(土) 21:19:27.93 ]
>>464>>466
今日は休みなんなら
考える仕事は月曜日にすればいい
休みなのに仕事するんなら2chなんかやらずさっさとコード書け

以上だ。スレチだからマ板いけ。もうくるな

468 名前:デフォルトの名無しさん mailto:sage [2012/05/26(土) 21:19:45.43 ]
>>466
VBAでやればいいんじゃね?

469 名前:デフォルトの名無しさん mailto:sage [2012/05/26(土) 21:23:46.11 ]
>>467
初めて有益なレス、まことにありがとうございます。
使えないレスばかりで間違ってヤフー知恵遅れに書き込んでしまったのか焦ってしまいました。
今日と明日はVBAのことは忘れてとりあえずゆっくり休みたいと思います。
月曜日にまたお邪魔するかもしれませんが、そのときはよろしくお願いしますm(_ _)m

>>468
はい。ソースの修正をVBAでやるというのは名案ですね。
月曜日に上司に相談した上で検討したいと思います。



470 名前:デフォルトの名無しさん mailto:sage [2012/05/26(土) 21:25:19.30 ]
批判コメにしかレス付けてない
何をどうしたいのかも不明
そもそもVBAスレwww


回答をコード化すりゃいいのかね

471 名前:デフォルトの名無しさん [2012/05/27(日) 00:22:02.72 ]
VBAがなければ今頃Haskellが搭載されてたろうに。


472 名前:デフォルトの名無しさん mailto:sage [2012/05/27(日) 02:26:57.34 ]
件の上司はそのやり遂げられない人と
人にモノ教えるのが下手な>>469の二人を
なんとかしてあげたいと思ってるのかもしれん

473 名前:デフォルトの名無しさん mailto:sage [2012/05/27(日) 09:42:06.57 ]
>>471
さすがにそれはないw
とはいえF#内蔵されたらめちゃくちゃ幸せだな

474 名前:デフォルトの名無しさん mailto:sage [2012/05/27(日) 16:42:42.68 ]
大学でExcel 2010が1500円で販売されていたのですが、これは何をするものなのでしょうか。
VBAでプログラミング可能と書いてありましたが、自分は今MMOをやっているのですが、このソフトでbotなど作成することは可能なのでしょうか。
本当に無知な質問で申し訳ありません。

475 名前:デフォルトの名無しさん mailto:sage [2012/05/27(日) 17:00:26.76 ]
>>474
「VBA 初心者」でいったんググってからもう一度ここに来ようか、ね。

476 名前:デフォルトの名無しさん mailto:sage [2012/05/27(日) 17:38:42.06 ]
ほんっといろんな人間がいるな… w

477 名前:デフォルトの名無しさん mailto:sage [2012/05/27(日) 17:42:49.32 ]
M マジ
M ムカつく
O おまえら

478 名前:デフォルトの名無しさん mailto:sage [2012/05/27(日) 17:43:27.87 ]
M まあ
M まあ
O 落ち着いて

479 名前:デフォルトの名無しさん mailto:sage [2012/05/27(日) 17:46:13.10 ]
いや、やろうと思えばまあ出来ないこともあんまないんだけど
ぐぐるべきはVBAじゃなくてMMOとかBOTとかだろ



480 名前:デフォルトの名無しさん mailto:sage [2012/05/27(日) 17:56:30.27 ]
Excel 2010ってアカデミック版でも今8,000円以上するはずだが・・・

481 名前:デフォルトの名無しさん mailto:sage [2012/05/27(日) 17:58:24.18 ]
Excelについて質問です
セルに「n」週の数字を打ち込んで
適当なセルに「a歳bヶ月c週」と表示させることは出来ますか?
例えば、n=51と置いて
1歳0ヶ月3週みたいにです

482 名前:デフォルトの名無しさん mailto:sage [2012/05/27(日) 17:59:20.75 ]
できます
はい次

483 名前:デフォルトの名無しさん mailto:sage [2012/05/27(日) 18:10:09.94 ]
>>481
worksheet_change でググれ

484 名前:デフォルトの名無しさん mailto:sage [2012/05/27(日) 18:17:36.81 ]
Excel関数でやれよ

485 名前:デフォルトの名無しさん mailto:sage [2012/05/27(日) 18:19:15.66 ]
一年て52週がデフォなのにその赤ちゃん化け物か・・・

486 名前:デフォルトの名無しさん mailto:sage [2012/05/27(日) 18:25:26.77 ]
>>485
なんか独自の方程式があるんでしょ
そこは質問に関係ないとこだから突っ込んでやるな

487 名前:デフォルトの名無しさん mailto:sage [2012/05/27(日) 18:27:28.45 ]
>>481
それVBA使う必要ないけど・・・

488 名前:デフォルトの名無しさん mailto:sage [2012/05/27(日) 18:32:12.66 ]
妊娠は受精した日からじゃなくて
排卵した日から数えるんだっけ

489 名前:デフォルトの名無しさん mailto:sage [2012/05/27(日) 18:37:31.24 ]
>>488
生でInsertメソッドを使ったのか?



490 名前:デフォルトの名無しさん mailto:sage [2012/05/27(日) 18:39:05.78 ]
>>481
Excel総合相談所 102
toro.2ch.net/test/read.cgi/bsoft/1334818676/

491 名前:デフォルトの名無しさん mailto:sage [2012/05/27(日) 18:42:43.44 ]
>>489
Insertより前だ

492 名前:デフォルトの名無しさん mailto:sage [2012/05/27(日) 19:23:45.81 ]
>>475
「VBA 初心者」でぐぐってここにたどり着きました。

493 名前:デフォルトの名無しさん mailto:sage [2012/05/27(日) 19:24:30.29 ]
>>480
ということは1500円で買えるというのはかなりお買い得ということですね。

494 名前:デフォルトの名無しさん mailto:sage [2012/05/27(日) 19:35:03.81 ]
>>492
「教えて君」でくぐってから出直そうか

495 名前:デフォルトの名無しさん mailto:sage [2012/05/27(日) 19:44:41.38 ]
>>492
試しに「VBA 初心者」でググったけどこのスレは少なくとも1ページ目には出てこなかったし、もっと分かりやすいのがいっぱい出てきた訳だが、さてと(ビキビキ

496 名前:デフォルトの名無しさん mailto:sage [2012/05/27(日) 19:45:05.50 ]
>>493
「猫に小判」でぐぐってから出直そうか

497 名前:デフォルトの名無しさん mailto:sage [2012/05/27(日) 19:51:09.80 ]
というか、結局質問まだあんのか?

498 名前:デフォルトの名無しさん mailto:sage [2012/05/27(日) 19:58:07.10 ]
>>495
私の環境だと上から2番目に出ますが?
ttps://www.google.co.jp/search?q=VBA+%E5%88%9D%E5%BF%83%E8%80%85+site%3A2ch.net

>>496
値打ちのわからない者には何の役にもたたないということ。
たしかに・・・使えない物に1500円は高いですね・・・。

499 名前:デフォルトの名無しさん mailto:sage [2012/05/27(日) 20:01:19.18 ]
>>498
2chがおまえの世界か!w



500 名前:デフォルトの名無しさん mailto:sage [2012/05/27(日) 20:02:11.06 ]
>>498
はあ?環境?
2ちゃん内でググるバカがどこにいんだよ、人に聞くことを大前提に調べてんのか。くれくれ君の極みだな。しねよ。

501 名前:デフォルトの名無しさん mailto:sage [2012/05/27(日) 20:08:03.61 ]
くれくれ君二重の極み!

502 名前:デフォルトの名無しさん mailto:sage [2012/05/27(日) 21:01:31.84 ]
>>499 >>500
すみません。
ぐぐれと言われたので2チャンネルのスレッドを探せという意味にとらえてしまいました・・・。
しにたくないです。

503 名前:デフォルトの名無しさん mailto:sage [2012/05/27(日) 21:06:28.04 ]
たどり着いたっつってたのと時系列が合わないな。つまんねえ後釣り宣言すんなら今のうちに消えな。

504 名前:デフォルトの名無しさん mailto:sage [2012/05/27(日) 21:09:19.92 ]
>>503
いえ、最初からぐぐってここにたどり着いたんです。
初心者用のスレッドがあるからぐぐれという意味かと。
なので>>492はぐぐってたどり着きました。という意味です。

505 名前:デフォルトの名無しさん mailto:sage [2012/05/27(日) 21:12:31.41 ]
>>504
ぐぐらなくていいから教えてgooで聞けよカス

506 名前:デフォルトの名無しさん mailto:sage [2012/05/27(日) 23:23:49.25 ]
今年大学に入ったばかりのいとこも同じようなこと言ってた
大学でOfficeがめっちゃ安く買えるって
ボリュームライセンスのバラ売りしてんじゃない?

507 名前:デフォルトの名無しさん mailto:sage [2012/05/28(月) 19:05:47.71 ]
WindowsXP
Excel2002

ホストのプログラムが起点になって
ネットワークドライブからワークシートを手元にコピー
という処理を一連で行い使用しています
ですが
Sheets.Copyでコピーすると
ファイル名がBook1となってしまうので
これを固定名+年月日に変えたいです

調べて、SaveAsをつかえばファイル名を変えて保存できることがわかりましたが
保存する前、ファイルをコピーした時点で名前を変えることはできますか?

508 名前:デフォルトの名無しさん mailto:sage [2012/05/28(月) 19:24:14.84 ]
>>507
FileSystemObjectのCopyFileメソッドを使う。

509 名前:507 mailto:sage [2012/05/28(月) 19:39:37.58 ]
ありがとうございます
手元にコピーというのが悪かったですね

そのメソッドだと結局保存されたのを開いて使っているイメージになりますよね?
そうではなく、新規でbookを開いた状態で名前をつけたい
ということがしたいのですが



510 名前:デフォルトの名無しさん mailto:sage [2012/05/28(月) 19:45:48.92 ]
>>509
何故そうしたいのか?

511 名前:507 mailto:sage [2012/05/28(月) 20:17:15.06 ]
わかりません
仕様です

512 名前:デフォルトの名無しさん mailto:sage [2012/05/28(月) 20:36:29.09 ]
>>511
何故BooK1のままだとだめなのか?

513 名前:507 mailto:sage [2012/05/28(月) 20:40:38.36 ]
結局保存するかブック名つきで印刷するかくらいだと思いますが不明です
保存するならこれまで出てきたのでやればいいじゃないかと言われそうですが
保存場所は指定できないので、やはり保存せずに名前を変えられるとベストです

514 名前:デフォルトの名無しさん mailto:sage [2012/05/28(月) 20:45:47.47 ]
>>513
・マクロを実行した時点では新たにファイルは作成したくない。
・でもブック名(ファイル名)は設定したい。
ということ?

515 名前:507 mailto:sage [2012/05/28(月) 20:49:38.18 ]
その通りです

516 名前:デフォルトの名無しさん mailto:sage [2012/05/28(月) 20:55:21.89 ]
>>515
ファイル名=ブック名なのでファイルが存在しないのにファイル名を作ることはできない。
ので、%TEMP%の下などにファイル作るとかで回避するしかないかと。

517 名前:507 mailto:sage [2012/05/28(月) 21:10:50.63 ]
そうなんですか
不可能なら仕方ありませんね
ではそのように説明してみます

長くなってしまいましたが付き合ってくれてありがとうございました

518 名前:デフォルトの名無しさん mailto:sage [2012/05/28(月) 22:44:59.34 ]
こいつ前いた奴だろ
まだ解決できてなかったのか

519 名前:507 mailto:sage [2012/05/28(月) 23:01:07.34 ]
その方のために言いますが
私は初めてですよ



520 名前:デフォルトの名無しさん mailto:sage [2012/05/28(月) 23:06:26.20 ]
>>519
一時的に保存しておいて、最後に削除するのでは何か問題あるの?

521 名前:507 mailto:sage [2012/05/28(月) 23:34:35.29 ]
一度ユーザーの手に渡ったら完結で
その後一時的に保存したところのを削除するかどうか制御できるんですか?

あまり複雑なことは考えずに
できないと言うかc:\直下に保存するか選んでもらうことにしようと思います

522 名前:デフォルトの名無しさん mailto:sage [2012/05/28(月) 23:37:06.69 ]
>>521
マクロの最後でKillすればいいじゃん

523 名前:デフォルトの名無しさん mailto:sage [2012/05/28(月) 23:47:59.43 ]
kill?

524 名前:デフォルトの名無しさん mailto:sage [2012/05/29(火) 03:13:37.58 ]
新規ブックどうやって作ってるか解らんが

テンプレートで保存したブックを開いたら
そのブック名はテンプレートのファイル名+数字になった気がする

525 名前:デフォルトの名無しさん mailto:sage [2012/05/29(火) 13:18:21.54 ]
フォルダにファイルを作成してから開けばいいじゃん


じゃん

526 名前:デフォルトの名無しさん mailto:sage [2012/05/29(火) 23:40:15.58 ]
4つのセルを統合したところにソースコードで
オートシェイプの円を表示させようとしたところ
一番左端のセルにだけ円が表示されてしまいます
番地指定ではなくアクティブセルを基準に、
セル内に余白を残しつつ4セル分の中心部にオートシェイプを表示したいのですが
どういったコードを使えばよろしいでしょうか?



527 名前:デフォルトの名無しさん mailto:sage [2012/05/30(水) 00:06:33.11 ]
アクティブセルがどこか確認したかい?

528 名前:デフォルトの名無しさん mailto:sage [2012/05/30(水) 08:08:19.74 ]
>>526
4セルの状態がわからん

□□
□□

□□□□

長くなるから縦一列は省略
どれも4セルの結合

529 名前:デフォルトの名無しさん mailto:sage [2012/05/30(水) 10:44:18.84 ]
>>526
4つのセルの中心に1つだけ円を表示してみた
もし4つのセルに4つの円を表示したいって質問ならループを回せばいい
(For Each セル In Selection)

Dim セル As Range
Set セル = Selection
Dim 円 As Shape
Set 円 = ActiveSheet.Shapes(1)
Dim 余白 As Long
余白 = 20
Dim 円サイズ As Long
円サイズ = IIf(セル.Width > セル.Height, セル.Height, セル.Width) - (余白 * 2)
円.Width = 円サイズ
円.Height = 円サイズ
円.Top = セル.Top + ((セル.Height - 円サイズ) / 2)
円.Left = セル.Left + ((セル.Width - 円サイズ) / 2)



530 名前:デフォルトの名無しさん [2012/05/30(水) 11:16:53.13 ]
こんなセルだよ

 □
□□□



□□□□

531 名前:デフォルトの名無しさん mailto:sage [2012/05/30(水) 11:56:27.73 ]
学校の課題でN進数を10に直せって課題が出たんだが、助言を頂けないだろうか
要求されたことは、
While
int
四則演算
Application.InputBox
のみで2〜9進数を10進数に変換しなさい
って奴なんだ
とりあえず、Application.InputBoxで何進数か判別して、要求する値をまた入力って流れで組んだんだがそこからが分からないorz
WhileとIntと四則演算を組み合わせて解くのだと思うけど、俺の頭じゃさっぱりだ
どなたか助言お願いします

532 名前:デフォルトの名無しさん mailto:sage [2012/05/30(水) 12:13:10.03 ]
使っちゃだめな関数あるの?

533 名前:デフォルトの名無しさん mailto:sage [2012/05/30(水) 12:13:14.15 ]
>>530
こうなりました

 □
□□
 □
□□




534 名前:デフォルトの名無しさん mailto:sage [2012/05/30(水) 12:17:57.09 ]
>>532
上に載ってる関数以外使っちゃダメって言われた
ググってもHEXとかを使うと良いとかで、この問題には使えなかったんだ…

535 名前:デフォルトの名無しさん [2012/05/30(水) 12:25:05.50 ]
>>553
下手糞。
こうしろ。
 
   □
□□□□
□□□□

536 名前:デフォルトの名無しさん mailto:sage [2012/05/30(水) 12:39:35.19 ]
ああ、桁抜き出しの代わりにint使うのか
ただそれでどうやって最上位桁を判定するんだろ

537 名前:デフォルトの名無しさん mailto:sage [2012/05/30(水) 14:41:51.89 ]
>>531
何進数かってのと対象の数値の2回入れるんだよな?
Modとか%もだめなのか

10で割ってIntで切り捨てた物をもとの数字から引くと下一桁が取り出せるから
それを基数の階乗に掛けるとかかかなあ

4進数の312の場合

2 * 3 ^ 0
+
1 * 4 ^ 1
+
3 * 4 ^ 2

で答えが54みたいな

あまりいい課題ではないな

538 名前:デフォルトの名無しさん mailto:sage [2012/05/30(水) 14:42:56.87 ]
>>537
「10で割ってIntで切り捨てた物を再度10倍したもの」だった。
すまん

539 名前:デフォルトの名無しさん mailto:sage [2012/05/30(水) 14:51:22.94 ]
>531
Excel VBAの質問ではないなこれは



540 名前:デフォルトの名無しさん mailto:sage [2012/05/30(水) 20:31:54.09 ]
>>536
設問から、
最上位の数値は、必ず10より小さい。



541 名前:デフォルトの名無しさん mailto:sage [2012/05/30(水) 21:45:51.97 ]
>>531
やってみたが、違ってるかもしれん。

Sub test()
Dim n As Long, myNum As Long, cnt As Long
Dim tmp1 As Long, tmp2 As Long, tmp3 As Long, tmp4 As Long, tmp5 As Long

n = Application.InputBox("何進数ですか")
myNum = Application.InputBox("変換したい数字を入力してください")

cnt = myNum
tmp1 = 1
tmp5 = 1

While cnt > 0
cnt = Int(cnt / 10)
tmp1 = tmp1 * 10
tmp2 = (myNum - Int(myNum / tmp1) * tmp1 - tmp3) / tmp1 * 10
tmp3 = tmp3 + tmp2 * tmp1 / 10
tmp4 = tmp4 + tmp2 * tmp5
tmp5 = tmp5 * n
Wend

MsgBox n & "進数の" & myNum & "は、10進数で" & tmp4 & "です"

End Sub

542 名前:デフォルトの名無しさん mailto:sage [2012/05/30(水) 22:28:41.60 ]
何故か出来ているように見えるので一応投げてみる。
進数の違いで多過ぎた分を後から引いていく感じ。
筆算では合っているっぽいけど、自分でも実は良く解らん(おぃ
Dim src As Long, radix As Long
src = 53423
radix = 7
Dim v1 As Long, v2 As Long, v3 As Long
v1 = src
v2 = src
v3 = 10 - radix
While v2 > 0
v2 = Int(v2 / 10)
v1 = v1 - v2 * v3
v3 = v3 * radix
Wend
Debug.Print v1


543 名前:デフォルトの名無しさん mailto:sage [2012/05/30(水) 22:39:02.30 ]
>>542
おおー、理屈はよくわからんが、すごいな。

544 名前:デフォルトの名無しさん [2012/05/31(木) 16:49:59.55 ]
Excel2010で同じシートのマクロで、
別のマクロを実行させたいのですが。

Sub FVB()
Application.OnTime TimeValue("16:42:00"), "mm"
End Sub

このように時間になったらmmマクロを呼び出して

Sub mm()
Range("H92").Select
End Sub

このように実行させたいのですが、
時間になると実行できませんとエラーがでます、
他のマクロは普通に実行できてるのですが、
どこか問題あるでしょうか?

545 名前:544 [2012/05/31(木) 19:57:39.14 ]
標準モジュールというところに書き直したら、
なぜか実行できました、
なんでうまくいったか分からないけどとりあえず自己解決。

546 名前:デフォルトの名無しさん mailto:sage [2012/05/31(木) 20:02:52.98 ]
>>544
マクロ名が微妙に異なっているとか?

547 名前:デフォルトの名無しさん mailto:sage [2012/05/31(木) 20:03:37.37 ]
あら解決したのね

548 名前:デフォルトの名無しさん [2012/05/31(木) 21:18:36.27 ]
毎日、取引先にエクセルのブックをメール添付で送ってます。
マクロボタンをクリックすると、特定のシート(例えばSheet1)だけを
添付して送信することはできますか?
ついでにテンプレートとなる本文と件名と、とくていの部分(日付とか)だけはその日用に変えておくることはExcelVBAできますか?
メールはOutlookで下書きを書いて、送信ボタンを押す直前までが希望です。

549 名前:デフォルトの名無しさん mailto:sage [2012/05/31(木) 21:23:30.05 ]
出来る……ハズだが、やったことない
OutlookもVBAを使ってるから、送信までを行うならOutlook側で制御したほうがいいと思う



550 名前:デフォルトの名無しさん mailto:sage [2012/05/31(木) 21:30:27.93 ]
>>548
Outlooknのヘルプにサンプルがあるから頑張れ。
添付ファイルを付けるときは
MailItemを作成してAttachmentをつけるとかコードが結構増える。

下書きまでは単純にmailto:のリンクを起動するだけでできるから
シート1だけコピーして新規ブックを作成してどこかに保存と
mailto起動だけやって添付は手動とかでもいいと思う


551 名前:デフォルトの名無しさん mailto:sage [2012/06/01(金) 19:55:33.46 ]
最近、毎日ですが、エクセルで、VBAで、プログラムを、組んでます。
どうやったらプログラマにまれますか?
プログラムーに、なりたい、です。
ので、誰か、教えてください。

552 名前:デフォルトの名無しさん mailto:sage [2012/06/01(金) 20:05:19.01 ]
>>551
プログラム、組んでるなら、既に、プログラマ、じゃん
かっこいい、な

553 名前:デフォルトの名無しさん mailto:sage [2012/06/01(金) 20:08:41.14 ]
>>551
C++やRubyの本を読んで挑戦すればいいじゃん


554 名前:デフォルトの名無しさん mailto:sage [2012/06/01(金) 20:21:18.47 ]
>>552
かっこいいなど、そんなことは、ありません。
プログラマとは、仕事の、ことを、いってます。
ぼくは、まだ、家でしか、やったことが、ないです。

>>553
まずは、C++とか、Rubyというの、本を読んだ方が、いいんでしょうか?
ぼくはばかなので、友達にも、ばかだ、といわれています。
まだ、パソコンを、恥またばかりで、よく分からなくて、ごめんなさい。

555 名前:デフォルトの名無しさん mailto:sage [2012/06/01(金) 20:26:33.99 ]
>>554
まず日本語勉強して会話できるようになれよ

556 名前:デフォルトの名無しさん mailto:sage [2012/06/01(金) 20:28:12.80 ]
句読点きもい

557 名前:デフォルトの名無しさん mailto:sage [2012/06/01(金) 20:37:20.31 ]
>>555 >>556
すいません、タイプングミスばかりして。
国語は、3です。
急いで打つと間違いやすい正確なんです。

558 名前: 【豚】 mailto:sage [2012/06/01(金) 20:50:29.34 ]
偏差値40以下ですね判ります

559 名前:デフォルトの名無しさん mailto:sage [2012/06/01(金) 21:01:04.25 ]
>>558
エスパー、ですか?
国語の、偏差値は、38です。
でも、数学の偏差値は60、くらいです。
プラグラマに、なるには、国語を、偏差値が、高くないと、無理でしょうか?



560 名前:デフォルトの名無しさん mailto:sage [2012/06/01(金) 21:07:14.87 ]
>>559
プログラマだからこそ、国語ができないと。
お客の意思疎通ができずにとんでもないもん作っちまうぞ。w


561 名前:デフォルトの名無しさん mailto:sage [2012/06/01(金) 21:14:26.39 ]
>>560
ぼくは、まだ、プログラマ入級者なので、よくわかっていないのですが、
システムエンジニアは、国語が、必要で、
プログラマーは、国語は、あまり重要じゃ無い、と考えていたのですが、
違うのでしょうか。

562 名前:デフォルトの名無しさん mailto:sage [2012/06/01(金) 21:39:48.32 ]
まあ別にいいとして
どんなプログラム組んでるんだ?
VBAである程度なれてるなら、VSオヌヌメするが

563 名前:デフォルトの名無しさん [2012/06/01(金) 22:11:52.01 ]
超初心者です。
オブジェクト、メソッド、プロパティが何かわかる解説付きの一覧表とかあるのでしょうか?

564 名前:デフォルトの名無しさん mailto:sage [2012/06/01(金) 22:19:47.53 ]
入門編とか応用なんちゃらとかいう本には載ってる
機能からイベントやら探すのも本ある
ネットでも探せるし、MSDN見るようにすればおk

565 名前:デフォルトの名無しさん mailto:sage [2012/06/01(金) 22:53:44.71 ]
超初心者にMSDNなんか薦めんな
あんなクソ判りにくいもん読めっか

566 名前:デフォルトの名無しさん mailto:sage [2012/06/01(金) 22:59:32.19 ]
でもいつかは通る道


まぁVBAでmsdnガン見する必要はないと思うけど。

とりあえずこれ如何?
home.att.ne.jp/zeta/gen/excel/c04p21.htm

567 名前:デフォルトの名無しさん mailto:sage [2012/06/01(金) 23:03:16.62 ]
なんでこのレベルの奴がこの板にいんだよ年々レベル下がってるじゃねーか死ね

568 名前:566 mailto:sage [2012/06/01(金) 23:10:07.35 ]
あ・・・・微妙にまちがえたなりん

home.att.ne.jp/zeta/gen/excel/c03p09.htm

569 名前:デフォルトの名無しさん mailto:sage [2012/06/02(土) 01:23:02.06 ]
レベル高いやつはこんなとこ来なくなるんだろ
なんでお前まだいるの?



570 名前:デフォルトの名無しさん [2012/06/02(土) 06:13:20.08 ]
なんでこのレベルの奴がこの板にいんだよ年々レベル下がってるじゃねーか死ね

571 名前:デフォルトの名無しさん mailto:sage [2012/06/02(土) 07:33:23.63 ]
>>569
そうだよな。ところで、
レベル高いやつはこんなとこ来なくなるんだろ
なんでお前まだいるの?

572 名前:デフォルトの名無しさん mailto:sage [2012/06/02(土) 10:39:30.90 ]
>>563
allabout.co.jp/gm/gc/297719/

573 名前:デフォルトの名無しさん [2012/06/02(土) 20:53:31.78 ]
>>563  ですが、みなさん返信ありがとうございます。

知りたいのは構成ではなく、個々のやつの意味が知りたいです。
たとえばプロパティは一杯ありますが、それの個々が何かを知りたいです。

574 名前:デフォルトの名無しさん mailto:sage [2012/06/02(土) 21:10:24.63 ]
>>573
[F1]キーを押したらヘルプが開くでしょ?

575 名前:デフォルトの名無しさん [2012/06/02(土) 21:25:25.06 ]
>>574 HPのPCですが、HPのヘルプが開きます

576 名前:デフォルトの名無しさん mailto:sage [2012/06/02(土) 21:34:43.56 ]
なにそれこわい
っていうかそんなPCうざいな・・・

577 名前:デフォルトの名無しさん mailto:sage [2012/06/02(土) 21:39:32.77 ]
>>575
それはExcelのVBAに全く関係ないのでここで質問してもスルーされるよ

578 名前:デフォルトの名無しさん mailto:sage [2012/06/03(日) 13:10:01.26 ]
>>575
www.relief.jp/itnote/archives/001208.php

579 名前:デフォルトの名無しさん mailto:sage [2012/06/03(日) 20:08:49.99 ]
「コンパイル エラー:
If ブロックに対応する End If がありません。」

なんで↑がでますか?
aaの一個目のEnd Subで抜けるとEnd Ifを通らないからですか?

----------------
Sub aa(x As Integer)
 If x = 1 Then
 MsgBox x
  End Sub
 End If
End Sub
----------------
----------------
Sub aaa()
Dim x As Integer
Call aa(x)
End Sub
----------------



580 名前:デフォルトの名無しさん mailto:sage [2012/06/03(日) 20:12:21.75 ]
>>579
exit subにする

581 名前:デフォルトの名無しさん mailto:sage [2012/06/03(日) 20:28:40.21 ]
>>580
おおお!ありがとうございます。

582 名前:デフォルトの名無しさん [2012/06/03(日) 23:31:39.47 ]
Sub aa(x As Integer)
 If x = 1 Then MsgBox "ナマポ朝鮮人を排除しよう"
End Sub

583 名前:デフォルトの名無しさん mailto:sage [2012/06/04(月) 12:01:34.93 ]
どこで聞いたらいいかわからないのですが、
VBEの特殊性(?ないとは思いますが…)、も考えて
こちらでお聞きします。
(スレ違いとは思いますので誘導していただけたら助かります)

VBEで書いたコードを、備忘録としてブログに貼ると
インデントが全くなくなってしまいますが、
これを解決する方法はないでしょうか?

たしか、貼ったコードを実行する?ようなサイトがあって
それを利用すると、インデントが当初のままに
なるとかいう話は聞いたことがあるのですが、
探せませんでした。

上記のようなサイト利用に限らず、インデントを
崩さないで、ブログに貼る方法を教えて頂けませんか?
よろしくお願いします。

584 名前:デフォルトの名無しさん mailto:sage [2012/06/04(月) 12:35:11.61 ]
<pre></pre>あるいは<code></code>で囲む

585 名前:デフォルトの名無しさん mailto:sage [2012/06/04(月) 13:14:00.24 ]
>>583
その程度の知識の人のソースコードなんて誰も見たくないんだから
ブログになんて貼らないでもらいたいのですが
よろしくお願いします

586 名前:デフォルトの名無しさん mailto:sage [2012/06/04(月) 13:49:22.92 ]
Evernoteにでも貼っとけよ

587 名前:デフォルトの名無しさん mailto:sage [2012/06/04(月) 14:56:34.06 ]
>>583
ソースコードをHTMLにコンバートするツールとかサービスとかググったらいっぱいヒットするけど
ホントに探せなかったんだよね?
VBA限定なら少ないかもしれないけどVBとかVBScriptなら結構見つかると思うよ

588 名前:デフォルトの名無しさん mailto:sage [2012/06/04(月) 15:43:42.13 ]
>>584
全く知りませんでした。ありがとうございます。

>>585-586
すみませんでした。少しでもご迷惑にならないよう
パスワードはかけてあります。

>>587
キーワードが全然ダメでした。
お陰様で見つかりました、ありがとうございます。


スレ違いのところをレス頂いて感謝しております。
ありがとうございました。

589 名前:デフォルトの名無しさん [2012/06/04(月) 21:19:55.91 ]
エクセルの表のデータベースで、この日付とこの日付のあいだのものを
ピックアップして別のシートに貼り付けるというマクロを組みたいのですが、
この時の日付はシリアル値にしないとだめでしょうか?



590 名前:デフォルトの名無しさん mailto:sage [2012/06/04(月) 21:24:21.93 ]
自分で加工しやすい値にするのがベスト
シリアル値じゃなくても変換すればいいし

591 名前:デフォルトの名無しさん [2012/06/04(月) 21:39:17.63 ]
>>590 ふむふむ。
いまDATEVALUE関数を使ってみたのですが、A1に2012/6/4と入力して、
B1に=DATEVALUE(A1)と入れてみたのですが、#VALUE!のエラーが出ました。なぜでしょうか?

592 名前:デフォルトの名無しさん mailto:sage [2012/06/04(月) 22:08:26.71 ]
>>591
A1セルの表示形式が「文字列」になってないとか?
まぁVBAに関係ない質問なら↓こっち行けって話だけど
toro.2ch.net/test/read.cgi/bsoft/1334818676/

593 名前:デフォルトの名無しさん [2012/06/05(火) 22:14:51.73 ]
行を選んで、別のシートにコピーをしたいのですが、

Do Until Cells(n + 1, 1).Value = ""
Cells(n + 1, 10).Value = Cells(n + 1, 1).Value
If Cells(n + 1, 1).Value > startdate Then
If Cells(n + 1, 1).Value < enddate Then
Cells(n + 1, 11).Value = Cells(n + 1, 2).Value
Rows(n + 1).Copy
Rows(n + 500).PasteSpecial ←ここまでは動いて、ちゃんとコピペした。

Worksheets("sheet3").Select
Do Until Cells(m + 1, 1).Value = ""
If Cells(m + 1, 1).Value = "" Then
Worksheets(1).Select
Rows(n + 1).Copy
Worksheets(3).Select
Rows(m + 1, 1).PasteSpecial  ← ワークシート3にコピペしてくれない(´・д・`)  どこが悪い?
End If
m = m + 1
Loop
End If
End If
n = n + 1
Worksheets(1).Select
Loop

594 名前:デフォルトの名無しさん mailto:sage [2012/06/05(火) 22:21:20.69 ]
Rows(m + 1, 1)

595 名前:デフォルトの名無しさん [2012/06/05(火) 22:27:29.67 ]
Rows(m + 1).PasteSpecial

596 名前:デフォルトの名無しさん [2012/06/05(火) 22:36:53.69 ]
Worksheets(1).Rows(n + 1).Copy Worksheets(3).Rows(m + 1)

597 名前:デフォルトの名無しさん [2012/06/06(水) 06:30:49.38 ]
>>594-596  指摘あり!(><) 行だったよ・・・・

598 名前:デフォルトの名無しさん [2012/06/06(水) 06:35:06.01 ]
>>594-596  速攻なおしてみてやってみたけどダメでした・・・(><)・・・

599 名前:デフォルトの名無しさん mailto:sage [2012/06/06(水) 07:43:09.07 ]
ステップ実行で確認



600 名前:デフォルトの名無しさん [2012/06/06(水) 07:48:58.93 ]
ここおかしくない?
>Do Until Cells(m + 1, 1).Value = ""

601 名前:デフォルトの名無しさん mailto:sage [2012/06/06(水) 19:21:39.64 ]
>>593
やりたいことは、こうじゃないの

With Worksheets(1)
Do Until .Cells(n + 1, 1).Value = ""
.Cells(n + 1, 10).Value = .Cells(n + 1, 1).Value
If .Cells(n + 1, 1).Value > startdate Then
If .Cells(n + 1, 1).Value < enddate Then
.Cells(n + 1, 11).Value = .Cells(n + 1, 2).Value
.Rows(n + 1).Copy .Rows(n + 500)

Do Until Worksheets("sheet3").Cells(m + 1, 1).Value = ""
m = m + 1
Loop
.Rows(n + 1).Copy Worksheets(3).Rows(m + 1)
End If
End If
n = n + 1
Loop
End With


602 名前:デフォルトの名無しさん [2012/06/06(水) 23:03:47.49 ]
>>593です。みなさんありがとう。快尻しました (*´∀`*)

603 名前:デフォルトの名無しさん mailto:sage [2012/06/08(金) 19:54:23.76 ]
こんばんは。
私の尻も快尻してほしいです。

604 名前:デフォルトの名無しさん mailto:sage [2012/06/09(土) 02:02:21.96 ]
嫌です

605 名前:デフォルトの名無しさん mailto:sage [2012/06/09(土) 12:25:52.47 ]
ExcelVBAで作ったシステムを保守することになりました。
モジュール、Excel側のフォーマットとの連携、ブックの定義など、
設計、構造レベルの話を厚く書いている書籍はないでしょうか。

エクステンドで開発していた経緯が見え隠れし、
非常に保守しづらい状況です。

606 名前:デフォルトの名無しさん [2012/06/09(土) 12:26:13.95 ]
失礼age忘れました。

607 名前:デフォルトの名無しさん mailto:sage [2012/06/09(土) 12:56:15.66 ]
手にしたことないけど、dotNetのexcel連携専用本ならそこらへんをカバーしてるのありそうだな

608 名前:デフォルトの名無しさん mailto:sage [2012/06/09(土) 14:06:39.59 ]
>>605
まずはヘルプのオブジェクト構造図を眺めるかな


609 名前:デフォルトの名無しさん mailto:sage [2012/06/09(土) 14:08:49.59 ]
無料でもいいならMSDNライブラリとか



610 名前:デフォルトの名無しさん [2012/06/09(土) 14:53:49.04 ]
出社したため携帯から失礼します。

コメントありがとうございます。チェックしてみます。

前任者が20くらいのマクロでシステムを作り上げていて。。。マクロ組めますレベルで大丈夫だよとは聞いてたけど。。。

ざっとシステムとソース舐めてみたところ、フォーマットと機能とデータががっかり結合しているのがシステム肥大化の原因みたいです。
将来的に運用回らないことも想定できるので、早めに提案したいのですが、VBAをシステムとして扱うとなると知識が不足していまして。。。
よろしくお願いします。

611 名前:デフォルトの名無しさん mailto:sage [2012/06/09(土) 18:08:51.51 ]
出来ない事は出来ないってハッキリ言ったほうが良くない?
手を付けてから出来ませんでしたじゃ余計迷惑だと思うよ。
システム設計とかそういうレベルの話だと
いまからなにかしても付け焼刃で何の役にも立たないはず。

612 名前:デフォルトの名無しさん mailto:sage [2012/06/09(土) 18:25:16.51 ]
こんなところに質問してくる程度のスキルなんだろうし
こんなところに質問してなんとかなる程度のシステムなんだろうよ
本人がやる気になってるんだからいいじゃない

613 名前:デフォルトの名無しさん mailto:sage [2012/06/09(土) 20:20:44.29 ]
こんなところに質問してくる程度のスキルだから
こんなところに質問してなんとかなる程度のシステムかどうかすら
判断できて無いんじゃないか?

アドバイスすることは不可能ではないけど、>>611の言う通り
付け焼き刃で弄っても害の方大きいだろうから、
向こうの説明不足&自分の能力不足を告げた方が良いと思う

事前にご説明いただいた内容であれば対応出来ると思っておりましたが
実際に要求されているのはもっと高いレベルであり、今の私にはそれをこなす能力はありません、と

614 名前:デフォルトの名無しさん mailto:sage [2012/06/09(土) 20:36:18.50 ]
見た感じだけどシステムの概要やらは理解してるっぽいから、VBA挙動に慣れれば問題ないんじゃね
調査や習熟に時間がかかる可能性がある
その上で修正が可能かは今の段階でわからない
そのまま使用して問題なかったとしても、将来的にどういう形に出来るかわからない
みたいな形で報告をしておいて、どの程度なら許容範囲なのかを上司と相談してからタッチすべきだな

615 名前: 忍法帖【Lv=40,xxxPT】 mailto:sage [2012/06/09(土) 22:39:29.00 ]
ボケ老人、知的障害者、馬鹿で幼稚な奴。
この三者に共通する特徴の一つは、繰り返しを好み、しかもその自覚(病識)がないこと。

616 名前:デフォルトの名無しさん mailto:sage [2012/06/09(土) 23:14:50.33 ]
通常のシートでデータの並べ替えを行うとき
キーは3つ設定できるわけだけど
これをVBで4つ設定するようにすることはできない?

617 名前:デフォルトの名無しさん mailto:sage [2012/06/09(土) 23:31:29.53 ]
4つどころかいくらでも
というか、安定ソートの場合
第一優先:A列、第二優先:B列、第三優先:C列、第四優先:D列
でソートするのと
D列でソート、C列でソート、B列でソート、A列でソート
とするのは同じだぞ

というかExcelの3つのキーが指定できる並べ替え機能は、内部で、
第三優先キーでソート、第二優先キーでソート、第一優先キーでソート
をやってるだけだろうし

それを踏まえればVBAはもちろん、VBA使わなくても出来る

618 名前:610 mailto:sage [2012/06/09(土) 23:37:21.29 ]
コメントありがとうございます。
×がっかり結合→がっつり結合

>>611-613
小手先でなんとかなってしまう程度なんですよねー、これが。
今々は小手先でなんとかしなきゃいけない背景もあり。。。

>>614さんを一旦の落とし所にさせていただきます。

619 名前:デフォルトの名無しさん mailto:sage [2012/06/09(土) 23:42:44.75 ]
Sub sample()
'
 Selection.Sort _
  Key1:=Range("A2"), Order1:=xlAscending, _
  Key2:=Range("B2"), Order2:=xlAscending, _
  Key3:=Range("C2"), Order3:=xlAscending, _
  Key4:=Range("D2"), Order4:=xlAscending, _
  Header:=xlGuess, OrderCustom:=1, MatchCase:=False, _
  Orientation:=xlTopToBottom, SortMethod:=xlPinYin, _
  DataOption1:=xlSortNormal, _
  DataOption2:=xlSortNormal, _
  DataOption3:=xlSortNormal, _
  DataOption4:=xlSortNormal

End Sub

マクロで、3つのキーでソートするサンプルを作って、上記のように単純にKey4を追加して
みたんだけど、エラーになる。何で?



620 名前:デフォルトの名無しさん mailto:sage [2012/06/09(土) 23:50:02.37 ]
>>619
そりゃ三つまでの指定にしか対応していないからだろ。
というか、エラーの内容書けよ。

621 名前:デフォルトの名無しさん mailto:sage [2012/06/09(土) 23:53:50.36 ]
>>620
ダイアログ
Microsoft Visual Basic
実行時エラー '1004':
アプリケーション定義またはオブジェクト定義のエラーです。

ヘルプ
アプリケーション定義またはオブジェク
ト定義のエラーです。

622 名前:デフォルトの名無しさん mailto:sage [2012/06/09(土) 23:55:44.42 ]
>>619
あのさ、回答付いてるんだから読んだら?
それとも読んだ上でそういうことやらかすお馬鹿さんなの?

623 名前:デフォルトの名無しさん mailto:sage [2012/06/10(日) 00:01:06.51 ]
>>617
理解できたトンクス

624 名前:620 mailto:sage [2012/06/10(日) 00:04:08.13 ]
まあ、これじゃエラーの内容を省略したくなっても仕様が無いなw
JavaScript程じゃないが、VBAも大概意味不明なエラーメッセージ出すし。

625 名前:デフォルトの名無しさん mailto:sage [2012/06/10(日) 00:06:26.33 ]
>>624
>>619のコードでエラーのメッセージを見ないと回答できないレベルならハナから黙ってろよ

626 名前:デフォルトの名無しさん [2012/06/10(日) 02:04:20.44 ]
"hayabusa3.open*2ch.net/livemarket1/"
という文字列があったとします
"*"をヌル文字に置換すると結果はどうなるのですか?

627 名前:デフォルトの名無しさん mailto:sage [2012/06/10(日) 03:29:08.24 ]
どうなるって、普通に置換されるだけだろ

但し、ヌル文字ってもは可視文字ではなく制御文字なので
置換したものを表示させたときにどう表示されるか、
つまり置換の結果ではなく表示結果は表示先次第

というか、そのくらい自分の目で確かめたら良くね?

628 名前:デフォルトの名無しさん mailto:sage [2012/06/10(日) 04:53:10.26 ]
VBAと関係ないし

629 名前:デフォルトの名無しさん [2012/06/10(日) 10:05:48.00 ]
やっぱ誰も判らないんだ



630 名前:デフォルトの名無しさん mailto:sage [2012/06/10(日) 10:08:46.19 ]
置換なんて高等テクだれもわからないぜ〜
バイバイ

631 名前:デフォルトの名無しさん mailto:sage [2012/06/10(日) 10:26:45.60 ]
置換は良くわからないですが
痴漢は良くしってます。

632 名前:デフォルトの名無しさん mailto:sage [2012/06/10(日) 10:42:07.90 ]
実践してるから?

633 名前:デフォルトの名無しさん mailto:sage [2012/06/10(日) 11:04:20.04 ]
台所やコタツなどで揉んだりすると
置換だ編隊だ偏執者だと言われます

634 名前:デフォルトの名無しさん mailto:sage [2012/06/10(日) 12:11:19.44 ]
>>626 ヌル文字なら削除
"aabb*cddef"
という文字列があったとします
"*"をヌル文字に置換すると結果はどうなるのですか?
"aabbcddef"

635 名前:デフォルトの名無しさん mailto:sage [2012/06/10(日) 13:14:11.54 ]
>>634
ヌルヌルになるよ
ぬるぽ

636 名前:デフォルトの名無しさん [2012/06/10(日) 14:43:34.81 ]
Excelのセルを正方形にして100x100のマスの迷路をつくりたいのですが
スタートと出口をそれぞれ左上、右下にし、
必ず出口に行けるルートは一つだけで、
その他は壁をつくり、その壁は罫線で表したいです。

こういうプログラムをつくるにあたり、アルゴリズムはどうすればいいでしょうか?
できるだけくわしく教えてください

637 名前:デフォルトの名無しさん mailto:sage [2012/06/10(日) 14:56:01.54 ]
>>636
「迷路 アルゴリズム」で検索

できるだけくわしくって...
労力考えろよ

638 名前:デフォルトの名無しさん mailto:sage [2012/06/10(日) 15:56:37.53 ]
>>636
Excelの質問でもVBAの質問でもない

639 名前:デフォルトの名無しさん [2012/06/10(日) 16:17:07.83 ]
>>636
まず二次元配列を作り中身は0が通路1が壁とします
次に左上から右下へ斜めの通路を通路を作ります
これは最短距離のルートですよね
これを初期値として通路をうねうねとうねらせます
それには乱数を使います
それは適当なところで止めて、次に騙し用の通路を付け足します
池田は、「ハッ、ハッ」と荒い息を吐き掛けながら、「下着は一枚だね」
と言って、私の下着の中に手を入れてきました。
ものすごい力で押さえつけられた上に、恐怖で声も出せないでいる私に、
池田は後ろからグッと突いてきたのです。



640 名前:デフォルトの名無しさん mailto:sage [2012/06/10(日) 16:57:57.92 ]
#100x100 は時間かかりそうなので試していないことにしておく
import os, win32com.client
TITLE = u'迷路'
HEIGHT, WIDTH, OFFSET_ROW, OFFSET_COL = 10, 10, 2, 2
MAX_ROW, MAX_COL = OFFSET_ROW + HEIGHT - 1, OFFSET_COL + WIDTH - 1
xl = win32com.client.Dispatch('Excel.Application')
xl.Visible = True
book = xl.Workbooks.Add()
sheet = book.Worksheets(1)
sheet.Name = TITLE
sheet.Cells(1, 2).Value = TITLE
sheet.Rows('%d:%d' % (OFFSET_ROW, MAX_ROW)).Select()
xl.Selection.RowHeight = 8
sheet.Columns('%c:%c' % (chr(ord('@') + OFFSET_COL), chr(ord('@') + MAX_COL))).Select()
xl.Selection.ColumnWidth = 1
for r in xrange(HEIGHT):
  for c in xrange(WIDTH):
    sheet.Cells(OFFSET_ROW + r, OFFSET_COL + c).Interior.ColorIndex = 4
    for d in xrange(4):
      if (d == 0 and r == 0 and c >= 1): continue
      if (d == 1 and r == 0 and c < WIDTH - 1): continue
      if (d == 2 and r >= 1 and c == WIDTH - 1): continue
      if (d == 3 and r < HEIGHT - 1 and c == WIDTH - 1): continue
      sheet.Cells(OFFSET_ROW + r, OFFSET_COL + c).Borders(1 + d).Weight = 2
sheet.Cells(OFFSET_ROW, OFFSET_COL).Value = u'スタート'
sheet.Cells(MAX_ROW, MAX_COL).Value = u'出口'
book.SaveAs(os.path.abspath(u'./%s.xls' % TITLE))
xl.Workbooks.Close()
xl.Quit()

641 名前:デフォルトの名無しさん mailto:sage [2012/06/10(日) 18:15:17.55 ]
>>626,627,634
まずヌル文字の定義をはっきりさせてから話しろよ

642 名前:デフォルトの名無しさん mailto:sage [2012/06/10(日) 18:17:29.36 ]
>>641
VBAでヌル文字って言ったら長さゼロの文字列である「""」の事に決まってるだろ

643 名前:デフォルトの名無しさん mailto:sage [2012/06/10(日) 18:30:21.72 ]
>>642
それは空文字だ禿。もしくはフサフサ。それかバーコード。

644 名前:デフォルトの名無しさん mailto:sage [2012/06/10(日) 18:38:06.13 ]
>>642
ヌル文字列、っていうならその解釈で良いと思うがな
ヌル文字、って言うと、Chr(0)な文字か、vbNullStringなのかもしれん


645 名前:デフォルトの名無しさん mailto:sage [2012/06/10(日) 19:41:23.90 ]
テキスト表示で "" ってなるだけで、null属性の答えにならんだろ
オブジェクト.text が "" だったとしてもそれはオブジェクトの説明にはならん

646 名前:デフォルトの名無しさん mailto:sage [2012/06/10(日) 19:45:58.60 ]
誰もそんなこと聞いてない

647 名前:デフォルトの名無しさん mailto:sage [2012/06/10(日) 19:51:30.67 ]
・・・?

648 名前:デフォルトの名無しさん [2012/06/10(日) 20:04:19.72 ]
>>640
エラーしかでんがな

649 名前:デフォルトの名無しさん mailto:sage [2012/06/10(日) 23:36:41.43 ]
見たところVB.NETのコードだもん



650 名前:デフォルトの名無しさん mailto:sage [2012/06/10(日) 23:53:57.84 ]
あ、ほんとだ


651 名前:デフォルトの名無しさん mailto:sage [2012/06/11(月) 00:33:27.52 ]
VB.NETにも見えんが。C#じゃないのか

652 名前:デフォルトの名無しさん mailto:sage [2012/06/11(月) 00:34:55.67 ]
C#ならusingつかう
import使ってるのはVB

653 名前:デフォルトの名無しさん mailto:sage [2012/06/11(月) 00:56:38.42 ]
VB で == なんて使わないだろ。

俺の知ってる中だと、Python あたりだと思うが。

654 名前:デフォルトの名無しさん mailto:sage [2012/06/11(月) 02:08:34.33 ]
ほんとだ。Pythonだった。
まあ移植しろってつもりで貼ったんだろうな

655 名前:デフォルトの名無しさん [2012/06/11(月) 02:14:06.27 ]
>>641
VbNullまたはChr(0)または""のどれでも良いです
>>626の予想される結果をお願いします

ま、これに答えられる人はこのスレにはいません
無理言ってごめんなさい

656 名前:640 mailto:sage [2012/06/11(月) 02:51:12.70 ]
>>636
とりあえず完成したので貼っときます
ttp://codepad.org/Cbvr8wyx
久しぶりに頭の体操になったよ
ありがとう

657 名前:デフォルトの名無しさん mailto:sage [2012/06/11(月) 04:36:19.60 ]
>>655
VbNullは文字ではない
vbNullStringかchr(0)なら>>627
""なら>>634
どちらも答えもらってるんだが、何を煽る必要あるんだろうね
まあ、答えられる人がいないと思うなら二度と来るなよ

658 名前:デフォルトの名無しさん mailto:sage [2012/06/11(月) 07:57:29.11 ]
韓国、ノーベル賞の夢消える! 米国 「ソウル大学で多くの論文捏造が判明した、24時間以内に回答せよ」
engawa.2ch.net/test/read.cgi/poverty/1339342300/


ソウル大でまた幹細胞研究の論文捏造か―論文14本

韓国のソウル大教授が学術誌に投稿した幹細胞研究の論文14本に捏造(ねつぞう)の疑いが浮上し、
波紋を呼んでいる。教授は「単純ミス」と釈明している。

韓国では2005年、ノーベル賞も期待されていた別のソウル大教授が発表した胚性幹細胞(ES細胞)関連論文で
捏造が発覚、社会に衝撃を与えた。同じ大学で同分野の論文が問題となっていることから、韓国メディアは「悪夢の再来か」などと報じている。

教授が4本の論文を投稿した米学術誌は24時間以内の釈明を要求したが、教授は「(釈明のための)時間が十分でない」とした上で、論文を取り下げた。

以下詳細 日経 2012/6/3
www.nikkei.com/article/DGXNASGM0300G_T00C12A6FF2000/


659 名前:デフォルトの名無しさん mailto:sage [2012/06/11(月) 11:51:47.33 ]
>>636 >>656
数ヶ所改良したバージョン
ttp://codepad.org/g5QwMAWF
※ 100 x 100 のときは maximum recursion depth exceeded に達するので limit 変更
入口(左上)から掘ると迷路が簡単になる傾向があるので出口(右下)から掘るように修正
罫線描画のタイミングを変更することで無駄を減らし高速化



660 名前:デフォルトの名無しさん [2012/06/11(月) 12:34:31.57 ]
>>659
ついでに、その迷路を解くアルゴリズムはどうすればいいでしょうか?
できるだけくわしく教えてください。
おながいしまつ。

661 名前:デフォルトの名無しさん mailto:sage [2012/06/11(月) 12:54:22.32 ]
>>659-660
アルゴリズムのスレに池よ
邪魔だよお前ら

662 名前:デフォルトの名無しさん mailto:sage [2012/06/11(月) 16:35:30.53 ]
Vista、Excel2007を使用しています
行数不定、列幅2の範囲の値をListboxに表示させたく

Private Sub UserForm_Initialize()

Set Ws = Worksheets("sheet1")
Dim n As Integer
Dim Data1()
n = Ws.Cells(31, 1).End(xlUp).Row
ReDim Data1(1 To n)
Dim Data2(1)

For i = 1 To n Step 1
Data2(0) = Ws.Cells(i, 2)
Data2(1) = Ws.Cells(i, 1)
Data1(i) = Data2
Next i

With ListBox1
.ColumnCount = 2
.ColumnWidths = "50;50"
.List = Data1
End With

End Sub

で試したところ、配列自体はできている(Data1(i)を適当にとってセルに書き込むと反映される)ようなのですが
ListBoxにはn個の空白行が表示されるだけで、Data1をセルに書き込んだ場合も値は反映されませんでした

配列には手を出し始めたばかりなのですが、そもそも配列の作り方からしておかしいのでしょうか?


663 名前:デフォルトの名無しさん mailto:sage [2012/06/11(月) 17:00:06.38 ]
>>662
こういうこと?

ReDim Data1(1 To n,1)
dim i as Long
For i = 1 To n Step 1
Data1(i,0) = Ws.Cells(i, 2).text
Data1(i,1) = Ws.Cells(i, 1).text
Next i

664 名前:デフォルトの名無しさん mailto:sage [2012/06/11(月) 17:51:54.44 ]
>>663
希望通りに表示できました、ありがとうございます

2次元配列でRedimを用いる場合行最後の次元しか変更できないと思い込んでData2なんて作ってしまいましたが
よくよくヘルプ読むとPreserveある場合の話だったのですね・・・orz

665 名前:デフォルトの名無しさん mailto:sage [2012/06/11(月) 21:19:04.09 ]
異常者だろうな。私の知る限り彼はこのスレで誰ともコミュニケーション成立したことがない。

666 名前:デフォルトの名無しさん [2012/06/11(月) 21:19:24.55 ]
666

667 名前: 忍法帖【Lv=40,xxxPT】 mailto:sage [2012/06/11(月) 23:59:55.35 ]
すみません。ワードVBAのスレが無いようなので…

ワードのVBAなんですが、セル内で位置指定で垂直方向はすぐ見つかったのですが

Selection.Cells.VerticalAlignment = wdCellAlignVerticalCenter

水平方向の指定の仕方を教えてくださいm(__)m


668 名前:デフォルトの名無しさん mailto:sage [2012/06/12(火) 00:11:17.42 ]
>>667
ワードVBAのスレがあるかどうかに関係なく、
ここはExcelVBAのスレなのでスレチです

669 名前: 忍法帖【Lv=40,xxxPT】 mailto:sage [2012/06/12(火) 00:21:58.90 ]
>>668
申し訳ないです。

マクロを記録して自己解決しました。
Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter



670 名前:デフォルトの名無しさん mailto:sage [2012/06/12(火) 00:26:22.01 ]
>>668
いちいちウザイ

671 名前:デフォルトの名無しさん mailto:sage [2012/06/12(火) 00:30:08.00 ]
>>670
じゃあNGに入れろよ
お前みたいな何の役にも立たないレスが一番うざいわ

672 名前:デフォルトの名無しさん mailto:sage [2012/06/12(火) 00:34:21.62 ]
横からスマンが
ID無しの板で、固有コテハン名乗ってるわけでもない奴をNGに入れろってのも
何の役にも立たないアドバイスな気が、、、

673 名前:デフォルトの名無しさん mailto:sage [2012/06/12(火) 00:39:39.79 ]
>>672
ID無しの板で個人を特定してウザイなんて言うわけないじゃん
スレチってキーワードがうざいって事なんじゃないの?

674 名前:デフォルトの名無しさん mailto:sage [2012/06/12(火) 01:00:06.19 ]
スレチなのに書き込むバカが全面的に悪い

675 名前:デフォルトの名無しさん mailto:sage [2012/06/12(火) 02:44:18.43 ]
ビル・ゲイツ「反原発派の政治家や国民はもう少し科学的知識を持った方がいい」
ikedanobuo.livedoor.biz/archives/51740658.html

きょうシアトルで、西和彦さんと一緒にビル・ゲイツにインタビューした。
彼は福島事故について驚くほどくわしく知っていて、
「合理的な日本人が非合理的な反応をしているのは残念だ」と言っていた。
特に原発や放射線のリスクについての科学的知識が政治家や一般国民に知られていないことが問題を必要以上に混乱させている、と語った。

印象的だったのは、中国がウェスティングハウスのAP1000を60基発注するという話だ。
中国は世界中からエンジニアを集め、国家プロジェクトとして原子力開発を進めている。
先月、第1号機が納品された。これは1基115万kWだから、合計6900万kW。
これだけで日本の原発の合計をはるかに上回る。設計はすべて同じだから、コストも非常に安い。

重要なのは安全性だが、AP1000のような第3世代の原子炉には、
炉心溶融を物理的に防ぐ受動的安全装置がついており、巨大地震が起きても大丈夫だ。
福島第一原発は古いマークTで、30年前から技術者が危険だと警告していた。
日本も「脱原発か否か」といった不毛な論争ではなく、古い原発を新しい原発に代えて
安全性を高めることも必要ではないか。

エネルギー産業は、情報通信産業の次の大きなフロンティアだ。
古い地域独占の電力会社が残っているおかげで、イノベーションの余地は非常に大きい。
新興国は安くて効率的なエネルギーを求めている。環境問題を考えても、きわめて危険な
石炭を減らすために原子力は重要だ。風力エネルギーも有望だが、フィードインタリフは
イノベーションを殺してしまう。

大事なのは、かつての通信と同じく、電力を全面的に自由化して競争を促進することだ。
エネルギー産業でも、かつてマイクロソフトがIBMを倒したように、巨大な電力会社を倒す
ベンチャーが出てくる可能性がある。そのためには不合理な規制を徹底的に見直すことが必要だ。
アメリカにはシェールガスもクリーンコールも第4世代原子力技術もあり、イノベーターも多い。
足りないのは合理的な政府だけだ。


676 名前:デフォルトの名無しさん [2012/06/12(火) 03:17:34.15 ]
>>671
スレチの指摘だって
何の役にも立ってないうえに
>>670みたいな書き込みの呼び水になるから
結局は一番迷惑
スレチも荒しも放置に限る

677 名前:デフォルトの名無しさん [2012/06/12(火) 03:57:58.74 ]
>>667
バーチカルときたらホリゾンタルちゃうかー

678 名前:デフォルトの名無しさん mailto:sage [2012/06/12(火) 11:12:41.21 ]
>>676
大して迷惑でもないだろ・・・

679 名前:デフォルトの名無しさん [2012/06/12(火) 14:10:36.96 ]
detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1488984684
わからないのでお願いします



680 名前:デフォルトの名無しさん [2012/06/12(火) 15:35:56.71 ]
>>676はかなり頭逝ってる

681 名前:デフォルトの名無しさん mailto:sage [2012/06/12(火) 21:33:07.30 ]
>>679
質問文をコピペするのではなく、横着してURLだけ貼って
回答者にわざわざリンク先の質問読みにいけと?

最悪なマルチの仕方だな
とりあえず3回くらい氏ねよ

682 名前:デフォルトの名無しさん [2012/06/13(水) 16:30:32.22 ]
おまえのレスはスレ違い
俺のレスは問題外
他人のレスは全部気違い
みんな概出痴的障碍
青貝馬鹿貝想定外

683 名前:デフォルトの名無しさん mailto:sage [2012/06/13(水) 18:03:00.56 ]
このガチのコミュ障は他人に構ってもらうためにSICPを使ってるだけだろ
ただし構ってもコミュニケーションは成立しない
頭がおかしいし、もう一生なおらない、一生な、絶対。病院に言っても無駄
まともなレスを一度も出来ずに死ぬ

684 名前:デフォルトの名無しさん mailto:sage [2012/06/14(木) 10:36:23.07 ]
痛い子にさわるならアンカー付けてレスしてくれないかな。
連鎖あぼーんできないじゃないか。

685 名前:デフォルトの名無しさん mailto:sage [2012/06/14(木) 10:51:58.63 ]
そこまで一生懸命見る価値はないぞこのスレは
早く卒業しなさい

686 名前:デフォルトの名無しさん mailto:sage [2012/06/14(木) 11:02:02.78 ]
流し読みするのに邪魔なんだよ。

687 名前:デフォルトの名無しさん mailto:sage [2012/06/14(木) 12:01:06.06 ]
流し読みの価値すらないことに気付け

688 名前:デフォルトの名無しさん mailto:sage [2012/06/14(木) 12:44:58.20 ]
流し読みの価値すらないということにしないと困るようです

689 名前:デフォルトの名無しさん mailto:sage [2012/06/14(木) 13:02:58.24 ]
最近は質問自体が少ないからなあ
質問者が減っているのか、おまいらがオイダシテるのかわからんが



690 名前:デフォルトの名無しさん mailto:sage [2012/06/14(木) 13:04:47.86 ]
ググれば解決することが殆どだしねー
質問が減るのはいいことだ

691 名前:デフォルトの名無しさん mailto:sage [2012/06/14(木) 13:59:34.76 ]
VBAがオワコンだから質問もされない

692 名前:デフォルトの名無しさん mailto:sage [2012/06/14(木) 16:02:10.96 ]
初心者は常に素人質問をするもの
素人だからググルポイントが解らないとか、結果を読んでも解らないとか
だからここで素人質問をする

オレもプロではないので全般的に理解できているわけじゃなくて
やりたいことを試してエラーが出て、大抵そのエラーの意味はつかみ所がない
ググって原因は解っても回避方法がわからないこともある

それで質問をすると、即答してくれる人が居て非常に助かる
(たまにバカにしたレスが付くけど)
回答するのがウザイならググルキーワードとかヒントだけ出せばいいと思う

過疎化しているのはオワコンだからなのかな?
Excel人口は多く、その何%かがVBAをかじるだろうからこのスレの存在は有りがたい
オマエラに感謝!

693 名前:デフォルトの名無しさん mailto:sage [2012/06/14(木) 16:39:15.63 ]
>>692
初心者は質問もないのにわざわざこんなスレに来てこんなこと書かないよ
いつもごくろうさま

694 名前:デフォルトの名無しさん mailto:sage [2012/06/14(木) 16:58:12.90 ]
>>693
お前邪魔

695 名前:デフォルトの名無しさん mailto:sage [2012/06/15(金) 08:35:31.86 ]
馬鹿には無理

696 名前:デフォルトの名無しさん mailto:sage [2012/06/16(土) 17:18:02.56 ]
初歩的な質問ですみません
For ii = 0 To 2
sn = Array("1月", "2月", "3月")
Set ws = Worksheets(sn(ii))
ws.Columns("A:A").Select ’@
Selection.AutoFilter
.
.
Next ii

@のところで
実行時エラー 1004
RangeクラスのSelectメソッドが失敗しました。
のエラーが出ます。
どう修正したらいいでしょうか?

697 名前:デフォルトの名無しさん mailto:sage [2012/06/16(土) 17:24:27.10 ]
>>696
sn = Array("1月", "2月", "3月")
For ii = 0 To 2
Set ws = Worksheets(sn(ii))
ws.Columns("A").AutoFilter

698 名前:デフォルトの名無しさん mailto:sage [2012/06/16(土) 18:37:57.91 ]
マクロを登録したボタンの名前を取得したいのですが

Sub テスト()
Dim Button_Name As String

'どのボタンが押されたか判断する
Button_Name = Application.Caller

MsgBox Button_Name

End Sub
このように記述すると
>Button_Name = Application.Caller
のところで
型が一致しないエラーがでるのですがどうすればいいのでしょうか

699 名前:デフォルトの名無しさん mailto:sage [2012/06/16(土) 18:58:04.33 ]
>>698
型を確認してみたら?
Debug.Print TypeName(Application.Caller)



700 名前:デフォルトの名無しさん mailto:sage [2012/06/16(土) 19:06:57.96 ]
>>698
フォームのボタンなら問題ないけど

701 名前:デフォルトの名無しさん mailto:sage [2012/06/16(土) 19:23:18.25 ]
>>699
オブジェクトが必要ですと出ます

702 名前:デフォルトの名無しさん mailto:sage [2012/06/16(土) 21:47:49.56 ]
>>701
「出る」ってのは具体的にどういう状態なのだ?

703 名前:デフォルトの名無しさん mailto:sage [2012/06/16(土) 22:19:54.80 ]
Application.Caller が返すのはオブジェクト型
それをString型で受けようとするから型が一致しないと出るのは当然

704 名前:デフォルトの名無しさん mailto:sage [2012/06/16(土) 22:50:01.00 ]
>>703
それで、どうすればエラーがでなくなるの

705 名前:デフォルトの名無しさん mailto:sage [2012/06/16(土) 22:57:09.25 ]
>>704
Application.Callerのヘルプ見たら答えが載ってるから見てみて
ヘルプ見て分からなければヘルプのどの部分が分からないのか質問し直して

706 名前:デフォルトの名無しさん mailto:sage [2012/06/16(土) 23:05:53.77 ]
>>704
エラーなんてでないよ

707 名前:デフォルトの名無しさん mailto:sage [2012/06/16(土) 23:55:05.42 ]
そもそも常にオブジェクト型が返るわけじゃないから。

708 名前:デフォルトの名無しさん mailto:sage [2012/06/17(日) 00:56:38.28 ]
>>698のものです
よく分かりませんが解決しました

709 名前:デフォルトの名無しさん mailto:sage [2012/06/17(日) 05:15:01.80 ]
>>707
いや常にオブジェクト型だろ
VBAに戻り値のオーバーライドはないぞ
ただその実体が違うだけだ





710 名前:デフォルトの名無しさん mailto:sage [2012/06/17(日) 08:37:57.82 ]
>>709
>VBAに戻り値のオーバーライドはないぞ

Variant って知ってる?

711 名前:デフォルトの名無しさん mailto:sage [2012/06/17(日) 09:13:10.66 ]
どんな時にVariantが返る?

712 名前:デフォルトの名無しさん [2012/06/17(日) 09:43:05.78 ]
今からOffice買うなら2010と2007どっちがいい?

713 名前:デフォルトの名無しさん mailto:sage [2012/06/17(日) 10:54:13.67 ]
>>699
Stringでした

714 名前:デフォルトの名無しさん mailto:sage [2012/06/17(日) 11:24:34.45 ]
>>712
VBAは大差ないと思うけど2010の方が速い

715 名前:デフォルトの名無しさん mailto:sage [2012/06/17(日) 13:47:11.41 ]
>>711
常時。

>>713
ホントに TypeName( ) から "String" が返ってきてるのに、String 型の変数に
代入するとエラーになるの?

スマン、俺の知識の範囲を超えてるわ。

716 名前:デフォルトの名無しさん mailto:sage [2012/06/17(日) 14:32:47.38 ]
>>715
いや、stringなので、エラーはでない。
なので、>>703の意味がわからない。

717 名前:デフォルトの名無しさん mailto:sage [2012/06/17(日) 14:47:21.28 ]
>>703 は、スルーでいいと思う。

718 名前:デフォルトの名無しさん mailto:sage [2012/06/17(日) 16:46:29.32 ]
>>712
乗せてるCPU次第だけど
2010は64bitに対応している(VBA7.x)ので
そちらの方が良いかな?

あと、リボンUIって2010からだったっけ?

719 名前:デフォルトの名無しさん mailto:sage [2012/06/17(日) 16:50:15.18 ]
>>718
>あと、リボンUIって2010からだったっけ?

2007 から。



720 名前:デフォルトの名無しさん [2012/06/17(日) 16:52:50.25 ]
>>714>>718
PCのスペックはBF3をヌルヌルできるくらい高スペックなので問題ないです。
VBAを勉強した買ったから、情報量が多い2007が良いと思ってたけど、2010の方がUIとかの評判良さげですね
2010にします

721 名前:デフォルトの名無しさん [2012/06/17(日) 16:57:22.50 ]
ちなみに皆さんVBAは独学?
こうやって、わからないところはネットだけで学んだ?
それとも最初は参考書に手をつけたりした?
もし初心者鉄板のVBA参考書とかあったら教えて下さいな

722 名前:デフォルトの名無しさん mailto:sage [2012/06/17(日) 17:47:52.44 ]
>>721
ヘルプとMSDNライブラリがあれば事足りると思うよ
ヘルプとMSDNライブラリで事足りなく感じれば書籍に手を出せばいい

723 名前:デフォルトの名無しさん mailto:sage [2012/06/17(日) 20:07:34.90 ]
Sheets("Sheet1").Range("A1").Select
↑がエラー起こすのはどうしてですか?selectもメソッドだからいけると思ったんだがいけない

724 名前:デフォルトの名無しさん mailto:sage [2012/06/17(日) 20:25:00.61 ]
>>723
Sheet1がないとか、あってもアクチブでないとか

725 名前:デフォルトの名無しさん [2012/06/17(日) 21:35:48.28 ]
UserFormにシート上の画像を表示させたい

www.asahi-net.or.jp/~zn3y-ngi/YNxv9d92.html
グラフなら、ここみたいにやり方を探せたんですがこれをグラフでなく画像で出来ますか?

2003です、お願いします

726 名前:デフォルトの名無しさん mailto:sage [2012/06/17(日) 22:11:52.58 ]
普通にやればいいだけじゃないの?

727 名前:デフォルトの名無しさん mailto:sage [2012/06/17(日) 22:16:47.77 ]
>>725
シート上の画像をイメージコントロールに貼り付ける
でググれ

728 名前:デフォルトの名無しさん mailto:sage [2012/06/17(日) 23:56:12.56 ]
おまえらmsdn見てないのかよ
だったら俺も見ないで適当に答えるけど

オブジェクトが複数あって、あるいは別マクロ経由しててApplication.Callerの対象オブジェクトが特定されてない
というかそのコードだと帰ってくる型はrangeかerrorになると思うんだがどっか省略かまちがってね


variantに格納して内部情報見てみたらいいんじゃね

729 名前:デフォルトの名無しさん [2012/06/18(月) 00:00:37.45 ]
MSDNはどうやって見れるの?



730 名前:デフォルトの名無しさん mailto:sage [2012/06/18(月) 00:03:27.98 ]
PCをモニタにつなげる


あ、電源入れろよ

731 名前:デフォルトの名無しさん [2012/06/18(月) 00:08:57.00 ]
つなげたよ。
電源も入れた。

732 名前:デフォルトの名無しさん mailto:sage [2012/06/18(月) 00:51:28.29 ]
まじか、すげえな


733 名前:デフォルトの名無しさん mailto:sage [2012/06/18(月) 01:11:20.86 ]
>>723
エラーの内容くらい書けよ

734 名前:デフォルトの名無しさん mailto:sage [2012/06/18(月) 07:55:15.46 ]
>>728
ボタンに↓を登録したんだが間違ってるの?
Sub テスト()
Debug.Print TypeName(Application.Caller)
End Sub

735 名前:デフォルトの名無しさん mailto:sage [2012/06/18(月) 08:22:18.37 ]
>>734
それであってるよ

736 名前:デフォルトの名無しさん mailto:sage [2012/06/18(月) 08:36:57.24 ]
ボタン直下ならstring だわな
>>698の書き方の時点でボタン特定出来てないだろ
その時はstring じゃないんじゃね
作ったコードと同じ状況で確認しろよ

737 名前:デフォルトの名無しさん mailto:sage [2012/06/18(月) 09:00:14.85 ]
やってみたけど
文字列返らないんだが
バージョンいくつでやってんだ、95か?

738 名前:デフォルトの名無しさん mailto:sage [2012/06/18(月) 09:54:22.70 ]
あってるっていってんじゃん

739 名前:デフォルトの名無しさん mailto:sage [2012/06/18(月) 10:04:32.37 ]
>>724
アクティブシートになってなきゃ出来ないのでしたらシートを対象にした意味がない気がしますがそういう仕様でしょうか
>>766
RangeクラスのSelectメソッドが失敗しましたと表示されます



740 名前:デフォルトの名無しさん mailto:sage [2012/06/18(月) 10:07:47.94 ]
↑安価ミス
>>766でなく>>733宛てです

741 名前:デフォルトの名無しさん mailto:sage [2012/06/18(月) 10:08:57.17 ]
っとすまん、コマンドボタンじゃなくてマクロボタンか
普通のstring と名前が戻って来るがなあ


742 名前:デフォルトの名無しさん mailto:sage [2012/06/18(月) 10:10:55.83 ]
>>740
SheetsってActiveWorkbooksに対してじゃなかったか?
実行してる箇所(スコープ外)だとこけるぞ
完全参照でやるなら
Application.Worksbooks(n).Workshees(n).
とかだぞ
VBとかからCOMでアクセスしててても使えない
ちなみにSheetはチャートシート(使ってるのみたことないが)
込みだからWorksSheesのほうがいいぞ

743 名前:デフォルトの名無しさん mailto:sage [2012/06/18(月) 10:21:15.19 ]
>>739
セルのSelectってのはアクティブシートのみに有効なメソッドだ

但し言語仕様としては、SelectメソッドをRangeオブジェクトのメンバにしなくてはならず
Rangeオブジェクトのメンバである以上、親がアクティブシートでも非アクティブシートでも
構文としては全てのRangeオブジェクトに対してSelectメソッドが有効になってしまうというだけ

744 名前:デフォルトの名無しさん mailto:sage [2012/06/18(月) 12:31:01.45 ]
キチガイは
>結局どんなものが出てきても文句言ってるっていう気がする。
だよな。
もう、自分や自分の会社で文句でないの作れだよな

745 名前:デフォルトの名無しさん mailto:sage [2012/06/18(月) 19:53:55.81 ]
>>739
セルをSelectするってことは、そのセルをアクティブにする事と同じだと思えばいい
Selectされているセル≒アクティブになってるいるセル

746 名前:デフォルトの名無しさん mailto:sage [2012/06/18(月) 20:07:50.05 ]
アクティブセル:単一セルのみに有効な処理の対象となるセル
セレクトセル:複数セルに有効な処理の対象となるセル

747 名前:デフォルトの名無しさん mailto:sage [2012/06/19(火) 09:57:26.89 ]
どうしてもわからないのでよろしくお願いします
シート1でボタンを配置してシート2のA10:D20範囲にあるオートシェイプを消したいのですが
↓のコードだと一度シート2をselectしてアクティブシートにしなければエラーになってしまいます
画面が切り替わらず(selectせず)にシート1からシート2のA10:D20範囲にあるオートシェイプを消すコードを教えてもらえないでしょうか?

Dim MyShape As Shape
Sheets("sheet2").Select
For Each MyShape In Sheets("sheet2").Shapes
If Not Intersect(Range("A10:D20"), MyShape.TopLeftCell) Is Nothing And _
Not Intersect(Range("A10:D20"), MyShape.BottomRightCell) Is Nothing Then
MyShape.Delete
End If
Next

748 名前:デフォルトの名無しさん mailto:sage [2012/06/19(火) 11:18:02.89 ]
シートの切り替え自体はやらないと処理できないと思うが
見た目上の切り替えを見えなくするってことなら可能

Sheets(2).Select
の前に
Application.ScreenUpdating = False
を入れて
Next
の後に
Sheets(1).Select
Application.ScreenUpdating = True
を入れると、
画面上は切り替わらない。(実際には切り替わってるけど画面の描画はされない)


749 名前:748 mailto:sage [2012/06/19(火) 11:21:25.54 ]
ごめん
Sheets(2).Select
じゃなくて
Sheets("sheet2").Select
だったね
Sheets(1).Select
も同様に読み替えてください



750 名前:デフォルトの名無しさん mailto:sage [2012/06/19(火) 11:46:08.91 ]
>>747
シートをSelectしなくても動いたよ?

Dim MyShape As Shape
For Each MyShape In Worksheets("sheet2").Shapes
If Not Intersect(Worksheets("sheet2").Range("A10:D20"), MyShape.TopLeftCell) Is Nothing And _
Not Intersect(Worksheets("sheet2").Range("A10:D20"), MyShape.BottomRightCell) Is Nothing Then
MyShape.Delete
End If
Next

751 名前:デフォルトの名無しさん mailto:sage [2012/06/19(火) 15:20:50.46 ]
selectする奴はド素人の法則

752 名前:747 [2012/06/19(火) 15:26:43.75 ]
>>750
それはあなたがもともとシート2をアクティブにした状態でマクロを動かしてるからでしょ。

753 名前:デフォルトの名無しさん mailto:sage [2012/06/19(火) 15:55:11.12 ]
>>752
誰だよお前w

754 名前:デフォルトの名無しさん mailto:sage [2012/06/19(火) 16:03:29.74 ]
>>752
ド素人は黙っとけ

755 名前:747 [2012/06/19(火) 16:25:23.00 ]
>>753
オレのものはオレのもの。
キミのものもオレのもの。
ノモのものはノモのもの。

756 名前:747 mailto:sage [2012/06/19(火) 16:50:03.62 ]
>>752
誰だよお前

関係ないと思って書いてませんでしたがすみません
通常シート2は非表示にさせておりこのマクロを実行すると表示されるようにしていますので全文はこうなります↓

Dim MyShape As Shape
Worksheets(sheet2).Visible = True
For Each MyShape In Sheets(sheet2).Shapes
If Not Intersect(Range(A10:D20), MyShape.TopLeftCell) Is Nothing And _
Not Intersect(Range(A10:D20), MyShape.BottomRightCell) Is Nothing Then
MyShape.Delete
End If
Next

このコードでシート2が非表示の時に実行すると「Intersect'メソッドは失敗しました'_Global'オブジェクト」とエラーメッセージがでます
>>750さんの言うみたいに通常通り最初からシート2が表示されてる時はエラーメッセージが出ないことに気付きませんでした

757 名前:デフォルトの名無しさん mailto:sage [2012/06/19(火) 17:16:25.65 ]
>>756
マジレスすると>>750のコードはSheet2を非表示にしたまま問題なく動くよ

758 名前:デフォルトの名無しさん mailto:sage [2012/06/19(火) 17:22:26.68 ]
>>756
マジでお前うざいわ
もうExcel使うな

759 名前:747 mailto:sage [2012/06/19(火) 17:23:09.99 ]
>>757
なにを言っておるのだ
非表示だと動かないと言っておるのだ
バカボンのパパなのだ



760 名前:デフォルトの名無しさん mailto:sage [2012/06/19(火) 17:23:47.07 ]
>>750のどこをどう読んだら「通常通り最初からシート2が表示されてる時」の話だと勘違いするのだろうか。

761 名前:747 mailto:sage [2012/06/19(火) 17:24:09.23 ]
>>758
なんだとこの野郎

762 名前:デフォルトの名無しさん mailto:sage [2012/06/19(火) 17:25:47.68 ]
なにこいつ

763 名前:747 mailto:sage [2012/06/19(火) 17:25:57.25 ]
>>757
すみません>>750さんはコードを直して書いてくれてことに気付きませんでした
ありがとうごさいます無事解決しました

764 名前:デフォルトの名無しさん mailto:sage [2012/06/19(火) 17:51:47.35 ]
ここって何でID表示ないの?

765 名前:デフォルトの名無しさん mailto:sage [2012/06/19(火) 18:19:54.08 ]
>>764
スレ違いな質問です

自治スレ、もしくは運営関係の板で聞いてください

766 名前:デフォルトの名無しさん mailto:sage [2012/06/19(火) 18:21:10.16 ]
ID無いとなりすまして煽ってるやつが多いんだな

767 名前:デフォルトの名無しさん mailto:sage [2012/06/19(火) 18:26:02.99 ]
火曜は大体こんなもん

768 名前:デフォルトの名無しさん mailto:sage [2012/06/19(火) 18:28:34.16 ]
自演できねえだろ

769 名前:デフォルトの名無しさん mailto:sage [2012/06/19(火) 19:21:49.38 ]
IDあると自演にコスト(手間および●費)が掛かるだけで
自演出来なくなるわけじゃないじゃん



770 名前:デフォルトの名無しさん mailto:sage [2012/06/20(水) 07:55:20.69 ]
>ID無いとなりすまして煽ってるやつが多いんだな

最近の2chは特にひどい

771 名前:デフォルトの名無しさん mailto:sage [2012/06/20(水) 13:44:15.47 ]
自己解決しました厨と、質問者になりすまして煽る厨はマジでいらんわ。

772 名前:デフォルトの名無しさん mailto:sage [2012/06/20(水) 13:56:47.68 ]
> 最近の2chは特にひどい
そうか?

2ch創設から見てきているが、どんどんマシになっていく一方に見えるけど

773 名前:デフォルトの名無しさん mailto:sage [2012/06/20(水) 17:16:13.47 ]
俺は牛の屠殺場を見たことがあるが、そこでは牛達が銃で眉間を撃ち抜かれて
殺されている。
日頃従順に人間に従っていた温和な牛たちも、順番を待って並ばされている時に
そこではじめて自分の運命に気付くのだろう、日頃聞かないような悲痛な甲高い
鳴き声を絶えず出し続けている。俺は今でもその鳴き声が耳を離れない。
人間は斯くも残酷な行為を毎日何千、何万という動物達に行っているのだ。
せめてその肉を頂く時には少しぐらい感謝の気持ちをもってもいいだろう。

【屠殺場の怖さは異常】
ttp://2.ldblog.jp/archives/1058482.html

774 名前:デフォルトの名無しさん mailto:sage [2012/06/20(水) 17:59:57.10 ]
口に入れるものなのに、銃で撃つとかあたま狂ってるだろ
重金属や火薬なんかくわせんじゃねえよ

775 名前:デフォルトの名無しさん mailto:sage [2012/06/21(木) 01:34:23.03 ]
ちょっと聞きたいんですが、TextBoxに何もデータが入ってない場合、値はvbNullStringなの?
それともEmpty?

776 名前:デフォルトの名無しさん mailto:sage [2012/06/21(木) 01:47:49.35 ]
1分とかからず確かめられることを、何故確かめずにここで聞く?

777 名前:デフォルトの名無しさん mailto:sage [2012/06/21(木) 01:57:29.44 ]
>>776
どうやって確かめたらいいんですか?

778 名前:デフォルトの名無しさん mailto:sage [2012/06/21(木) 02:41:47.19 ]
TypeName使えば、Emptyは"Empty"が返り、vbNullStringは"String"が返るし
VarType使えば、EmptyはvbEmptyが返り、vbNullStringはvbStringが返る

779 名前:デフォルトの名無しさん mailto:sage [2012/06/21(木) 08:02:13.64 ]
EmptyでないことはIsEmptyなどでもすぐに分かるよな。
ただvbNullStringじゃなく長さ0の文字列の""ということも考えられるから、そのときはStrPtrを使って調べればよい。
MsgBox StrPtr(TextBox1.Text)などとすれば"0"が返るから""じゃなくvbNullStringということになる。
ちなみにTextBoxにEmptyを代入しても""を代入しても中身はvbNullStringとなる。
TextBoxをクリアーするときは厳密にはvbNullStringをいれるのがベスト。



780 名前:775 mailto:sage [2012/06/21(木) 09:47:11.63 ]
モーグ見てきたら関連するスレッドがあるけど、まともな回答者が珍しく間違ってるな。


781 名前:デフォルトの名無しさん mailto:sage [2012/06/21(木) 09:51:11.59 ]
>>780
775ってどういうこと?

782 名前:デフォルトの名無しさん mailto:sage [2012/06/21(木) 09:53:01.67 ]
釣り質問だったんだろうか?

783 名前:デフォルトの名無しさん [2012/06/21(木) 22:01:51.25 ]
EXCELでマクロを使い
IEobjectの操作をしてクリック証券の発注を自動化しようと思っています

株価の入力や株数の入力は ソース内の株価の近くにある
<div class="torihiki_area"><input type="text" name="jyuchuuSuuryo" maxlength="11" size="14" tabindex="8" value="" id="jyuchuuSuuryo" class="torihiki"> 株 </div>
のid jyuchuuSuuryoに対して
bjIE.Document.forms(1).Item("jyuchuuSuuryo").Value = VOLUME '株数
のようにすればよかったのですが

注文確定をクリックしたい場合 注文確定の文字列はソース内には無く
<span id="orderButtonBlock" class="button_area_section">
<input type="image" name="" src="https://kabu.click-sec.com/sec1-6/images/orderpanel_3/order.gif" tabindex="19" id="orderButton">
</span>
近くに画像のリンクがあり
objIE.Document.forms(1).Item(”orderButton").Click
clickやcheckedをやってみたのですがエラーがかえってきてしまい躓いてしまいました
type=imageのクリックを実行する方法を教えていただけないでしょうか

submitで強引に注文できるかなと思ったのですが上の方に銘柄コード検索がありそちらの検索結果を実行してしまいました

784 名前:デフォルトの名無しさん mailto:sage [2012/06/21(木) 22:27:15.80 ]
>>783
その質問は一切Excel関係ないよ

785 名前:デフォルトの名無しさん [2012/06/21(木) 22:36:17.79 ]
>>784
そうなんですか
エクセルで実行しているので
EXCEL VBAでいいのかと思ってしまいました
申し訳ありません

786 名前:デフォルトの名無しさん mailto:sage [2012/06/21(木) 22:55:48.81 ]
>>785
ググる時の検索キーワードから「Excel」を外した方がいいと思うよ
例えば「ie 自動化 画像 クリック」とか

787 名前:デフォルトの名無しさん mailto:sage [2012/06/22(金) 04:38:56.27 ]
>>785
Excelでやっているとしても、それはExcelのVBAに汎用開発環境としての機能があるからVBAでも実現可能ってだけで
Excel固有の機能を必要としている訳じゃない限り、それはExcelVBAの質問ではなくスレ違い

788 名前:デフォルトの名無しさん mailto:sage [2012/06/22(金) 04:42:43.20 ]
>>783
そのページをよく観察して、tabキーで目的の場所に移動できるかどうかを調べて見ませう

789 名前:デフォルトの名無しさん [2012/06/22(金) 07:29:57.00 ]
★2 ExcelのVBA以外の部分に関する質問はNGです。
   但し、VBA無しでも出来ることだが、あえてVBAでやりたいって物に関してはOK。

あえてVBAでやりたいって物に関してはOK。




790 名前:デフォルトの名無しさん mailto:sage [2012/06/22(金) 07:39:51.46 ]
それ、条件付き書式や入力規則みたいなのの使い方聞くのはNGだが
VBA無しでExcelの機能で出来る条件付き書式や入力規則でも
柔軟性や拡張性からあえてVBAでやりたいというような場合はOKって話であって
Excelに関係ないものを許容するって話じゃないぞ

791 名前:デフォルトの名無しさん mailto:sage [2012/06/22(金) 08:47:16.20 ]
そのレベルの自分で作ったプログラムで自動で証券を買うなんて、そんな恐ろしいことようやるわ
破産フラグ確定

792 名前:デフォルトの名無しさん [2012/06/22(金) 10:29:03.25 ]
>>786
ありがとうございます
目的のものが見つかりそうです

>>787
大変申し訳ないです

>>791
ご発注二関しては朝の寄付の注文をするだけなので
注文履歴の確認は目視で行っています

理論的には
ここ5年間手入力でやってきまて問題なく利益を出していたのですが
年齢が上がってきたせいか1日40銘柄の注文をぽちぽちキーボードとマウス操作するのがめんどくさくて、、、、、

793 名前:デフォルトの名無しさん [2012/06/22(金) 11:26:59.75 ]
obj = GetObject("fuga.xls")
obj.BuiltinDocumentProperties('Author').Value = "hoge"
obj.Save()
obj.Close()

エクセルのファイルの場合、これで作成者は換わるのですが、
ワードのファイルの場合、
obj = GetObject("fuga.doc")
と変えても作成者が書き換わらないです。
どうしたらワードの方も換えられますか?

794 名前:デフォルトの名無しさん [2012/06/22(金) 11:43:04.82 ]
Wordも
obj.BuiltinDocumentProperties('Author').Value = "hoge"
を付け加えたまえ。

795 名前:デフォルトの名無しさん mailto:sage [2012/06/22(金) 13:03:13.53 ]
やってますよw

796 名前:デフォルトの名無しさん mailto:sage [2012/06/23(土) 11:25:51.84 ]
かけるかな

797 名前:デフォルトの名無しさん mailto:sage [2012/06/23(土) 11:35:30.89 ]
すみません質問お願いします。

フォームにマルチページを配置して、その中にフレームやボタンを配置しています。
さらにそのマルチページの下(外)にOKとキャンセルみたいなボタンを配置しています。

このときにタブを押していくと、マルチページ内のボタン>マルチページのタブの部分(Page1みたいなとこ)
>マルチページの外のボタン(OKとキャンセル)>マルチページ内のボタン>繰り返し

というようなタブオーダーになるんですが、このときにタブ部分に行かずに、
マルチページ内のボタン>マルチページの外のボタン>マルチページ内のボタン
というようなタブオーダーにしたいとおもっているんですが、現在はマルチページのタブのCycleを2にして
マルチページ内のボタンの最後のボタンでタブが押されたら、マルチページの外のボタンにフォーカスを
移動するようにしています。

ただ、個人的にこのやり方が正しいとは思えなくて、もっと普通のやり方があるような気がするんですが
どうかそのあたりを教えていただけないでしょうか。

よろしくお願いします。



798 名前:デフォルトの名無しさん mailto:sage [2012/06/23(土) 17:41:53.22 ]
>>797
こんなのはどうかな
Private Sub マルチページ内のボタン_KeyDown(ByVal KeyCode As ****)
KeyCodeがTABならマルチページの外のボタン.SetFocus

799 名前:デフォルトの名無しさん mailto:sage [2012/06/23(土) 17:55:27.56 ]
クラスモジュールって、そんなにいいものなの?

あんまり、良さを感じないんだけど。



800 名前:デフォルトの名無しさん mailto:sage [2012/06/23(土) 19:22:41.38 ]
>>798
レスありがとうございます。

分かりにくくてすみません。
今はそういう風にしています。

801 名前:デフォルトの名無しさん mailto:sage [2012/06/23(土) 19:37:04.23 ]
タブの部分にフォーカス当てたくないってことか?
マルチページはそんな風に設計されてないっぽい
普通じゃない使いかたに「普通の方法」なんてないな

802 名前:デフォルトの名無しさん mailto:sage [2012/06/23(土) 21:30:39.26 ]
>>799
中途半端だからねぇ。

よく知らないなら、今からわざわざ覚えるようなものではないと思うよ。

803 名前:デフォルトの名無しさん mailto:sage [2012/06/23(土) 23:16:28.11 ]
>>801
レスありがとうございます。

たしかにおっしゃるとおり、マルチページの設計に沿っていない使い方でした。その点を理解しました。

そこで質問の内容を変えさせてください。
タブオーダーの順番を、マルチページ内のボタンを巡った後に、マルチページの外のボタン、
その後にマルチページのタブ、そしてマルチページ内のボタン、外のボタンという風に
コントロールすることは可能でしょうか。

現在は、マルチページ内のボタン>タブ>外のボタンという順番で移動してしまいます。

どうかよろしくお願いします。

804 名前:デフォルトの名無しさん [2012/06/23(土) 23:17:47.02 ]
Excelファイルを開いたら
指定したメールアドレスに開いた人のIPアドレスとかを
送信するようなプログラムって作れるのですかね?
ちょっとわけありで、こんなのができるといいんですが…

805 名前:デフォルトの名無しさん mailto:sage [2012/06/23(土) 23:37:56.02 ]
>>804
メール送信マクロが組み込まれたExcelファイルを開いたタイミングでメールを送信したいのか
常駐してファイルオープンを常に監視していてExcelファイルが開かれたタイミングでメールを送信したいのか

前者ならマクロを作るのは簡単だけど確実にマクロを実行させる手段がない
後者ならExcelVBAで作るべきものじゃない

806 名前:デフォルトの名無しさん mailto:sage [2012/06/24(日) 00:06:22.55 ]
>>804
技術的には可能だけど
同意なしならめっちゃマルウェアやん
犯罪に加担しろと?

アンチウイルスソフトにブロックされてしまえ

807 名前:デフォルトの名無しさん mailto:sage [2012/06/24(日) 00:46:14.54 ]
大半の人は、実は釣り質問。
単に馬鹿な回答者がいればそれでいい。

808 名前:デフォルトの名無しさん mailto:sage [2012/06/24(日) 02:51:59.24 ]
>>804
質問「作れるか?」
回答「作れる」

809 名前:デフォルトの名無しさん mailto:sage [2012/06/24(日) 02:56:03.50 ]
メール送信というかネット関係は微妙にハードル高いよ
ネットに接続されてなかった場合、外に出られなかった場合とかやり始めるときりがない
ログを保存しといて、ネットに接続されたらまとめて送信とかやりたいならVBA以外でやった方がいい



810 名前:デフォルトの名無しさん mailto:sage [2012/06/24(日) 05:38:17.48 ]
>>804
それだけならVBSかバッチでも使ってろ
会社のPC全台調査しなくちゃいけなくなったとき、ファイル作って配布したなあ

811 名前:デフォルトの名無しさん mailto:sage [2012/06/24(日) 06:52:50.55 ]
>>802
 やっぱりそうですか!レスありがとう。

まあ、たまにはクラスの1つも作ってみます。

812 名前:デフォルトの名無しさん mailto:sage [2012/06/24(日) 09:03:01.68 ]
>>811
データクラスにたいしてJavaでいうインターフェースで
メソッド実装を強制する使い方とかロジックの隠蔽とかもするけど
実はVB系だと↓のコントロールに共通処理させるのが多いと思う
www.excellenceweb.net/vba/class/text_filter.html

813 名前:デフォルトの名無しさん mailto:sage [2012/06/24(日) 12:52:51.19 ]
Excelで競馬のソフト作ろうと思ってるんだけど
疑問は
1、webから取り込んだ馬やレースなどにコメントなどつけて編集して、それを出力保存して、セル内に同じ馬名や日付とレース番号を入れたら、それを読込事みたいなことができるか?
2、例えばA1:J5の計50のセル内に色々な数値を表示しているが、ボタン一つでセルを結合して一つの表示を見せる。またボタンを押すと50の表示に戻るなんてことができるのか?

Excel VBAで上のような2つのような操作ができるのかアドバイスください

814 名前:デフォルトの名無しさん mailto:sage [2012/06/24(日) 12:55:56.13 ]
>>813
できるよ

815 名前:デフォルトの名無しさん mailto:sage [2012/06/24(日) 12:56:36.83 ]
マルチ

816 名前:デフォルトの名無しさん mailto:sage [2012/06/24(日) 13:01:22.19 ]
>>813
 うん。出来る。

 どこのサイトから引っ張るのか知らないけど、まあ、素直に組んであれば、
どのタグで引っ張るか、多少悩めば桶。

 何をアドバイスすれば、いいの?コード全部は、カンベン。

817 名前:デフォルトの名無しさん mailto:sage [2012/06/24(日) 13:08:00.46 ]
>>814
出来るのね。ありがと

>>816
webクリエを駆使してwebから読み込むのは出来ている。
2の方法が悩み中。例えばこの画像の上のA1:F3には、Sheet2のA1:F3を表示しているとする。
んで、切り替えボタンを押すと、セルの結合してSheet2のA5を表示する。
んで、またボタンを押すと最初の表示に戻る。というのがやりたい場合はどうすればいいのか
iup.2ch-library.com/i/i0670448-1340510590.png


818 名前:デフォルトの名無しさん mailto:sage [2012/06/24(日) 13:14:21.04 ]
>>817
セルの結合も解除もVBAで1行で書ける
あとは結合や解除するたびにデータをいちいちコピーするだけ

819 名前:デフォルトの名無しさん mailto:sage [2012/06/24(日) 13:22:55.56 ]
>>818
競馬の出馬表で上の画像みたいなのが18列あるから、セル結合解除後のコピーもVBAでしたい
要するに、上をA、下をBとすると、Aを表示するAボタン、Bを表示するBボタンの二つを用意しないといけないってことかな?



820 名前:デフォルトの名無しさん mailto:sage [2012/06/24(日) 13:31:08.76 ]
大半の人は、実は釣り質問。
単に馬鹿な回答者がいればそれでいい。

821 名前:デフォルトの名無しさん mailto:sage [2012/06/24(日) 13:34:13.35 ]
詳しくいうなら、こんな感じ
表の1〜8の行には各セルに色々なデーターを読み込ませてあるが、
ボタン一つでセルを結合して違う表示をさせる。んでまたボタンを押すと最初の各データの表示に戻る。
そういうのがやりたいんだ。VBAなら出来るかなと思って
iup.2ch-library.com/i/i0670464-1340512301.png

822 名前:デフォルトの名無しさん mailto:sage [2012/06/24(日) 14:06:41.57 ]
まさに底辺同士

823 名前:デフォルトの名無しさん mailto:sage [2012/06/24(日) 14:20:11.26 ]
>>821
「マクロの記録」でセルの結合や解除してコード吐き出させてみたら?
競馬のソフトって育成ゲームか?

824 名前:デフォルトの名無しさん mailto:sage [2012/06/24(日) 16:50:54.89 ]
>>823
んやw予想ソフトw

825 名前:デフォルトの名無しさん mailto:sage [2012/06/24(日) 17:23:44.56 ]
>>821
結合するくらいならシート単位で分割して、二画面表示にすればいいと思うが

826 名前:デフォルトの名無しさん mailto:sage [2012/06/24(日) 17:49:02.90 ]
予想なんて時間の無駄だからよそうぜぇ




ナンチッテ

827 名前:デフォルトの名無しさん mailto:sage [2012/06/24(日) 17:57:35.86 ]
何法を使って予想するのか知らんが
プログラムの間違いと予想の外れの見分けはつくんだろうか
質問のレベルからちょっと思ったりした

828 名前:デフォルトの名無しさん mailto:sage [2012/06/24(日) 23:46:47.61 ]
若かろうがオッサンだろうが、
「これ出来ないとお金払いませんよ、
 あなたの生活がどうなろうと私には関係有りませんし。」
と言うとみんなちゃんと新しい技術をマスターしてくる。
努力しないってっことは努力する必要が無いからなんだと思う。
追い詰められていないんだろうね。
幸せなんじゃないか?
どうでもいいけど。

829 名前:デフォルトの名無しさん mailto:sage [2012/06/25(月) 00:05:16.06 ]
>>828
その内いいことがあるさ
負けずに頑張れよ



830 名前:デフォルトの名無しさん mailto:sage [2012/06/25(月) 00:07:07.23 ]
「会議」がアイデアを潰す

若手や中堅がイノベーションを生み出す新しいアイデアを出す時
立ちはだかるのがジジイどもの支配する「会議」という壁だ

・ジジイどもに理解できる企画でなくてはならない
・ジジイどもの好みに合う企画でなければならない
・既に成功した事例がなくてはならない
・ジジイどもに気に入られている人物が提案者でなくてはならない
・ジジイどもに気に入れられていない人物が関わっていてはならない
・ジジイどもの支援が不要な企画でなくてはならない
・にもかかわらずジジイどもにも活躍の場を与えねばならない
・ジジイどもの気まぐれな口出しにいつでも応じなければならない
・失敗してもジジイどもが責任をとらなくてよい企画でなくてはならない
・成功したらジジイどもの業績になる企画でなくてはならない

若い頃は前世代のおかげで繁栄したくせに、自分らの時代には経済を衰退させ
そのツケを後世代に回す団塊ジジイ、バブルジジイどもが日本の病巣

831 名前:デフォルトの名無しさん mailto:sage [2012/06/25(月) 16:32:43.67 ]
excel2000以降ですが

実行させた時に保存するのに

ActiveWorkbook.SaveAs Filename:="D:\仕切書PG\\kanriヘッダ挿入後ファイル.xls", FileFormat:=xlNormal

とした時にファイル名が"02B90000"とか"73D4B100"とかになり"kanriヘッダ挿入後ファイル"と保存出来ない場合があるのは何故でしょう。
ググってみたんですが出てこないので申し訳ありませんが教えて頂けませんか?

832 名前:デフォルトの名無しさん mailto:sage [2012/06/25(月) 16:38:57.18 ]
>>831
ググったらこんなん出てきたけど関係ないかな?
esupport.trendmicro.co.jp/Pages/JP-2064267.aspx

あと、「\\」は「\」が正しいのでは?

833 名前:デフォルトの名無しさん mailto:sage [2012/06/25(月) 16:52:20.44 ]
>>831
サーバー上とかネットワークドライブに対してやってると
Tempフォルダとか権限周りでそんなことがあったな

834 名前:デフォルトの名無しさん mailto:sage [2012/06/25(月) 16:52:40.98 ]
>>832
\\ではなく\です。ごめんなさい。
出力されたファイルは不明なファイルの種類って出てまして、開くと一応内部は変わらず開けます。
駆除ソフトはウイルスバスターでは無かったです。

835 名前:デフォルトの名無しさん mailto:sage [2012/06/25(月) 16:55:46.39 ]
>>833
ネットワークではなく個人のpcのみでDドライブ上のフォルダに保存させてます。


836 名前:デフォルトの名無しさん mailto:sage [2012/06/25(月) 17:13:20.35 ]
質問
excelのシートに貼り付けてあるpictureを、bmp形式の独立ファイルとして生成する方法が知りたいです

importメソッドはpictureオブジェクトには使えないし、dotNetのbitmapオブジェクトを使うのが楽かなあって思うんですが
いいアイデアありますか?

837 名前:デフォルトの名無しさん mailto:sage [2012/06/25(月) 18:13:27.44 ]
ありますね

838 名前:デフォルトの名無しさん mailto:sage [2012/06/25(月) 19:24:27.14 ]
あるのか?
想像できんな・・・

839 名前:デフォルトの名無しさん mailto:sage [2012/06/25(月) 19:41:26.68 ]
emf wmf を参照せよ



840 名前:デフォルトの名無しさん mailto:sage [2012/06/25(月) 19:42:47.35 ]
>>836
Web形式で保存すれば画像データになるよ。
目的の物かは知らんけど一括で取り出したいだけなら便利

841 名前:デフォルトの名無しさん mailto:sage [2012/06/25(月) 19:44:36.89 ]
msdn.microsoft.com/en-us/library/dd183479%28VS.85%29.aspx

842 名前:デフォルトの名無しさん [2012/06/25(月) 20:00:43.24 ]
ありがとうございました

843 名前:デフォルトの名無しさん mailto:sage [2012/06/25(月) 21:02:04.85 ]
馬鹿には無理

844 名前:デフォルトの名無しさん mailto:sage [2012/06/26(火) 01:53:46.51 ]
自己解決した問題があったので勝手に忘備録としてかきこ

VBAでスペース入力すると勝手に消去されてしまうor全角文字入力すると勝手に確定されてしまう。

原因:Visual studio 2012インスコして追加されるCOMアドインの「Visual Studio Tools for Office Design-Time Adaptor for Excel」
対処:上記のアドインを削除

すでにあったらごめんなさい

845 名前:デフォルトの名無しさん [2012/06/26(火) 22:10:42.87 ]
作品名    全巻数
サザエさん 全4巻
アンパンマン 全5巻

作品数が1000ぐらいあって処理に困っています。
上を下記のようにしたいのですが、どうすればいいですか?
よろしくおねがいします。

作品名   全巻数  巻数
サザエさん 全4巻  第1巻
サザエさん 全4巻  第2巻
サザエさん 全4巻  第3巻
サザエさん 全4巻  第4巻
アンパンマン 全5巻 第1巻
アンパンマン 全5巻 第2巻
アンパンマン 全5巻 第3巻
アンパンマン 全5巻 第4巻
アンパンマン 全5巻 第5巻



846 名前:デフォルトの名無しさん mailto:sage [2012/06/26(火) 22:13:01.14 ]
ごめん、意味がわかんない

847 名前:デフォルトの名無しさん mailto:sage [2012/06/26(火) 22:24:31.89 ]
>>845
ループ回すだけじゃないの?
具体的に何がわからないの?

848 名前:デフォルトの名無しさん mailto:sage [2012/06/26(火) 22:25:53.67 ]
>>845
for文って知ってる?
VBAは使える?

849 名前:デフォルトの名無しさん mailto:sage [2012/06/26(火) 22:43:57.68 ]
全n巻の数値部分を切り出してループ回せば良いだけだよな
俺も何が解らないのかが解らない

まさか丸投げでコード書いてくれとか言わないよな?
まあその場合は>>1★5だが



850 名前:845 [2012/06/26(火) 23:39:51.27 ]
ありがとう、解決しました。

851 名前:デフォルトの名無しさん [2012/06/28(木) 09:49:45.56 ]
過疎

852 名前:デフォルトの名無しさん mailto:sage [2012/06/28(木) 16:47:49.64 ]
質問すればスレ違いだのなんだので拒否るくせに w

853 名前:デフォルトの名無しさん mailto:sage [2012/06/28(木) 17:37:37.85 ]
スレ違いが拒否されるのは当然じゃね?

854 名前:デフォルトの名無しさん [2012/06/28(木) 19:27:08.73 ]
スレ違いの質問だと思うならスルーすればすむのに
馬鹿の一つ覚えでスレ違いスレ違い言うから
スレの勢いもとまるし雰囲気も悪くなるってことでしょ



855 名前:デフォルトの名無しさん mailto:sage [2012/06/28(木) 20:26:52.48 ]
スレ違いな質問に、スレ違いだと指摘を入れないでくれってのは
スレ違いな質問するお馬鹿さんの自己厨な言い分でしょ

でも、社会に出ればわかると思うが、世の中それではまかり通らない

856 名前:デフォルトの名無しさん mailto:sage [2012/06/28(木) 22:14:23.55 ]
スルーしたら、誰からスレ違い指摘するまで無駄な催促が
続くだけだよ。VBAの質問に回答できるレベルの奴なら、
スレ違い質問に回答することの弊害くらい解ってるから、
スレ違い指摘が無くなったからと言って、スレ違いな質問に
回答が付くようになるわけではない。

857 名前:デフォルトの名無しさん mailto:sage [2012/06/28(木) 22:29:06.77 ]
スルー無視で催促質問するような連中はスレ違いを指摘したところでどうにもならんと思うんだ。
ちょうどつい最近もExcel総合質問スレでおかしな馬鹿が粘着して暴れたところだが、
ああいう連中は何言っても無駄だから結局スルーが一番ってことだと思う。

858 名前:デフォルトの名無しさん mailto:sage [2012/06/29(金) 00:14:59.12 ]
Excel2000での質問です。

ワークシート上に配置したチェックボックスの内容をOLEObjectプロパティで取得して集計するというマクロを組んだのですが、
チェックボックスの数が1200個を越えたところでオートメーションエラーが発生しマクロが動作しなくなりました。

チェックボックスの追加自体は可能なのですが、それらをVBAで操作することができません。
ワークシート上のコントロールの数には上限があるのでしょうか?

また、回避する手段はありますか?

859 名前:デフォルトの名無しさん mailto:sage [2012/06/29(金) 00:26:34.49 ]
>>858
仕様に関することはMSに問い合わせないとわかんないと思うよ
他の人に試してもらいたいんだったらせめてブックをアップしないと



860 名前:デフォルトの名無しさん mailto:sage [2012/06/29(金) 00:57:10.74 ]
>>858
わからんけど、分割してみたら?

861 名前:デフォルトの名無しさん mailto:sage [2012/06/29(金) 00:57:38.36 ]
>>859
ファイルは会社なのでアップは出来ないです。

コントロールを1000個以上配置するような状況は見たことが無かったのでさすがに無理ですかね
やはり仕様ですか・・・

何か別の手段を考えてみます。

レスどうもでした。

862 名前:858 mailto:sage [2012/06/29(金) 01:08:34.33 ]
>>860
恐らく上限はシート毎だと思うので分割すればいけると思います。
それしかなさそうですね

863 名前:デフォルトの名無しさん mailto:sage [2012/06/29(金) 02:46:39.85 ]
>>858
2003で確認してみたけど、1208個以上になるとエラーになるね
でも他の人の指摘通り、別シートにすればまた1200個は作れるから
分散すればどうにでもなる


どうしても分散したくないなら、おそらく行単位でチェックボックス作ってるとかだろうから
Aに列挿入して、A列の書式を「"☑";;"□"」にして
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  If Target.Column <> 1 Then Exit Sub
  ActiveCell.Value = IIf(ActiveCell.Value = 0, 1, 0)
  ActiveCell.Offset(, 1).Activate
End Sub
なんてコードを入れてやると、擬似的なチェックボックスみたいになる

仕様としては、A列に1(というか正数)が入力されると「☑」が表示され
0だと「□」、その「1 <-> 0」「☑ <-> □」をセルをクリックする度に上記マクロが
切り替えてくれる

あとは
For i = 1 To 5000
  If Cells(i, 1).Value <> 0 Then '・・・・・
Next i
って感じで、チェック入ってる行の取得や操作ができる

864 名前:デフォルトの名無しさん mailto:sage [2012/06/29(金) 18:13:53.18 ]
>>854
良く見ると「スレ違い」って言ってる奴は一人も居ない

その心は、皆単に「>>1嫁」って言ってるだけなんだよ

>>1にスレの趣旨とスレ違いの定義が書かれており、
それを読んでない奴に当然の指摘をしているだけで
個人の尺度で勝手にスレ違いを定義してスレ違いだ
なんだと言ってる奴は見あたらない

ついでに言うと、その当然の指摘がなされたことによって
勢いや雰囲気が害された感は全く無いね
見なよ、スレ違いじゃない質問への迅速で真摯な対応

865 名前:デフォルトの名無しさん mailto:sage [2012/06/29(金) 22:12:13.82 ]
まだ続けるのかww

866 名前:デフォルトの名無しさん mailto:sage [2012/06/30(土) 06:50:06.87 ]
ヒマだし

867 名前:デフォルトの名無しさん mailto:sage [2012/07/01(日) 04:29:13.72 ]
でもそんな1000個以上あるチェックボックス見るのも嫌だな
どんな嫌がらせだ

868 名前:デフォルトの名無しさん mailto:sage [2012/07/01(日) 11:32:20.19 ]
チェックボックスってマウスが上空を通り過ぎるときに
誤動作で勝手にクリックされたことになってチェックされたり外れたりするよね
ヒューマンインターフェースとしては最悪な部類だと思う


869 名前:デフォルトの名無しさん mailto:sage [2012/07/01(日) 11:43:58.14 ]
誤動作までチェックボックスのせいなのか、色々大変だな。

て言うか、そんな誤動作見たことないが。



870 名前:デフォルトの名無しさん mailto:sage [2012/07/01(日) 12:18:46.57 ]
誤動作じゃなくて誤操作なwww






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<223KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef