1 名前:デフォルトの名無しさん mailto:sage [2012/11/25(日) 20:19:47.50 ] 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 質問スレ Part26 toro.2ch.net/test/read.cgi/tech/1345363310/
76 名前:デフォルトの名無しさん mailto:sage [2012/12/01(土) 08:06:00.76 ] セルに入力させるにあたって、1又は9以外を入力させたくないんですが、そういうことって出来ますか?
77 名前:デフォルトの名無しさん mailto:sage [2012/12/01(土) 08:17:19.22 ] >>76 VBAではないが セルに入力規則を設定して マウスで候補を選ばせるのはどう?
78 名前:デフォルトの名無しさん mailto:sage [2012/12/01(土) 09:06:41.20 ] >>77 入力規則のこと忘れてました^^; それが良いですね。ありがとです
79 名前:デフォルトの名無しさん mailto:sage [2012/12/01(土) 09:11:06.92 ] >>76 >>77 の方法が一番簡単だけど、 どうしてもVBAでやりたかったら対象のシートにこんなマクロを設定してみる。 特定のセルのみの設定なら修正が必要。 Private Sub Worksheet_Change(ByVal Target As Range) Dim tmpRange As Range For Each tmpRange In Target If tmpRange.Value <> 1 And tmpRange.Value <> 9 Then tmpRange.Value = "" End If Next End Sub
80 名前:デフォルトの名無しさん mailto:sage [2012/12/01(土) 09:34:57.53 ] >>79 ありがとう。今やってんのはC3セルのみなんで Private Sub Worksheet_Change(ByVal Target As Range) Application.EnableEvents = False If Target.Address = "$C$3" Then If Range("c3").Value <> 1 And Range("c3").Value <> 9 Then MsgBox "値は1,9のいずれかのみ 訂正!", vbOKOnly End If End If Application.EnableEvents = True End Sub という事にしました。入力規則も簡単で良いんですが、VBAの勉強も兼ねて^^;
81 名前:デフォルトの名無しさん mailto:sage [2012/12/01(土) 11:28:36.00 ] そりゃだめだC3を含んだ複数セルをコピペした場合そのチェックは動かない targetをFor EachしてC3セルだった場合にだけチェックするように書き換えないと これはVBA以前の問題で全てのケースを洗い出す想像力大切よ
82 名前:デフォルトの名無しさん mailto:sage [2012/12/01(土) 12:17:58.08 ] チェンジ かつ 固定セルなら V = Range("$C$3").Value If V <> 1 And V <> 9 Then MsgBox "$C$3 is 1 or 9 only.", vbOKOnly でいいじゃん入力規則でいいじゃん
83 名前:デフォルトの名無しさん mailto:sage [2012/12/01(土) 12:28:30.43 ] 入力規則の方が高速でいいよな
84 名前:デフォルトの名無しさん mailto:sage [2012/12/01(土) 13:52:56.94 ] 人間が介在する作業で高速もクソもないだろ どうがんばっても人間の指の方が遅いんだから
85 名前:デフォルトの名無しさん mailto:sage [2012/12/01(土) 20:37:23.52 ] スループットは確かに人間が介在したらそこがネックになるけど 操作する人間に対するレスポンスが早いか遅いかって話で、操作性の問題だな 人間の感覚でとらえられないぐらいの差ならどうでもいい
86 名前:デフォルトの名無しさん [2012/12/01(土) 21:08:25.23 ] VBA で c:\test\ を c:\test という具合に末尾の \ を削除したいのですがどうすれば末尾の特定文字を削除する事が出来ますか?
87 名前:デフォルトの名無しさん [2012/12/01(土) 21:13:58.31 ] 自己解決 left でいけた。いkぅぅう
88 名前:デフォルトの名無しさん mailto:sage [2012/12/01(土) 21:51:02.08 ] >>80 それだけのためにマクロ入れたらxlsmにするとかマクロ有効にするとかで嫌がられないか?
89 名前:デフォルトの名無しさん mailto:sage [2012/12/01(土) 21:51:36.03 ] leftってまさか、なんでもかんでも一文字削ってるんじゃ…
90 名前:デフォルトの名無しさん mailto:sage [2012/12/02(日) 14:47:52.43 ] HTTP/HTTPSで通信を行い、JSONPのデータをデコードして セルに書き出すようなExcelVBAのサンプルなどはございますでしょうか? よろしくお願いいたします。
91 名前:デフォルトの名無しさん mailto:sage [2012/12/02(日) 15:03:44.97 ] そんなCOMはねえな
92 名前:デフォルトの名無しさん mailto:sage [2012/12/02(日) 15:06:15.54 ] と思ったらJScript使えばそのままいけるのか 「vba HTTP/HTTPSで通信を行い、JSONP」でぐぐれ
93 名前:デフォルトの名無しさん mailto:sage [2012/12/02(日) 15:49:07.67 ] >>92 ありがとうございmす、さっそくググってきます!