Excel VBA 質問スレ Part32
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2013/10/07(月) 22:19:55.86★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 質問スレ Part31
http://toro.2ch.net/test/read.cgi/tech/1376371376/
関連スレ:VBAなんでも質問スレ
http://toro.2ch.net/test/read.cgi/tech/1342087380/
0237デフォルトの名無しさん
2013/12/20(金) 16:48:03.001 / 3 * 3を計算して下さい。
0238デフォルトの名無しさん
2013/12/20(金) 16:56:45.30もう冬休み入っちゃって。
あーもう単位落としそうで心配だよお
0239デフォルトの名無しさん
2013/12/20(金) 17:50:29.510240デフォルトの名無しさん
2013/12/20(金) 18:07:18.650241デフォルトの名無しさん
2013/12/20(金) 18:12:45.79その中から特定の日付を見つけたいんですが(実際は日付そのもの
ではなく、その日付のある行を知りたい)、Findの使い方を教えて
ください
Dim target As Range
Set target = Range("A3:A150").Find(What:="2012/3/01", LookIn:=xlValues, LookAt:=xlWhole)
MsgBox target.Row ←
とすると、実行時エラー:91
オブジェクト変数またはWithブロック変数が設定されていません
ってエラーが←のところで発生します。
0242デフォルトの名無しさん
2013/12/20(金) 18:14:17.26="2012/3/1"
0243241
2013/12/20(金) 18:20:00.05テスト用のシートではその日付はA80にあるんですがね
0244デフォルトの名無しさん
2013/12/20(金) 18:24:49.950245デフォルトの名無しさん
2013/12/20(金) 19:39:52.680247241
2013/12/20(金) 20:20:20.05日付を変数として先ほどのものに与えるのはどうするんでしょうか?
Dim dt as Date
として
dt = 日付
Set target = Range("A3:A150").Find(What:=#dt#, LookIn:=xlValues, LookAt:=xlWhole)
とすると構文エラーになるんですが。
0248デフォルトの名無しさん
2013/12/20(金) 20:35:51.50いつ切り捨てするのかよくわかりませんでした。
計算は1度計算したのをさらにかけたり割ったりします。
ここで、
最初にかけ算→小数点切り捨て→かけ算
なのか
かけ算→かけ算→割り算など全部した後いっきに切り捨てた方が良いのか
前者でやっていたんですがこの2つだと当然答えも違ってきますよね
普通どっちが正解なんですか?
0249デフォルトの名無しさん
2013/12/20(金) 20:57:48.50「#〜# で囲む」 と「"〜" で囲む」 の意味の違いが判っていないからその質問になる。
0250241
2013/12/20(金) 21:27:42.490251デフォルトの名無しさん
2013/12/20(金) 22:40:03.70日付リテラル って書いても分からないと思うにで少し解説しておく
VB(A)では#で囲まれた日付と時刻は日付型(Date)の定数になる。("で囲めば文字リテラル・・文字型の定数)
よってWhat:=#3/1/2012# は日付型(Date)をWhatに指定していることになる。
これは
Dim dt As Date
dt = "2012/3/1"
・・・・・What:=dt,・・・・
と同じことになる
ちょっと書きすぎた。ついでに数値リテラルなども勉強しておくのが吉と思う
0252デフォルトの名無しさん
2013/12/20(金) 22:55:40.45あ〜、なるほど〜
その辺りは全然勉強してませんでした
ありがとうございますm(__)m
0253デフォルトの名無しさん
2013/12/21(土) 12:12:08.22なにに処理時間がかかってるかを調べたいのですが
どうするのが得策ですか?
なにが原因かがわかればあとはこちらでコードを改良します。
なので原因の調べ方。
0254デフォルトの名無しさん
2013/12/21(土) 12:27:40.19質問があまりにもざっくりしすぎ
原因も対処法もたくさんありすぎる
まず最初にマシンスペックを確認する
CPUの速度やメモリの量など
0255デフォルトの名無しさん
2013/12/21(土) 12:35:51.56その前後に時間を表示するようにして見てみるとか
というか1分も我慢できないとかwだったらExcelでやるんでなく実行ファイル(exe)作ってそれでやるようにしたら?
0256デフォルトの名無しさん
2013/12/21(土) 12:55:19.70をあちこちに入れまくる
0257デフォルトの名無しさん
2013/12/21(土) 14:12:00.66Application.Calculation = xlManual
0258デフォルトの名無しさん
2013/12/21(土) 14:13:25.50アルゴリズムが悪い
質問のレベルから見てあきらか
0259デフォルトの名無しさん
2013/12/21(土) 14:30:17.09むずか死ね
0260デフォルトの名無しさん
2013/12/21(土) 14:56:17.82そのまま「せっせせっせ」とWordに貼り付けたいんですが
どういうコードを書けばいいですか?
Wordにはページの上から下へそのまんま東の順番で並べ、表と表の間は改行を1行だけ挿入します。
0261デフォルトの名無しさん
2013/12/21(土) 16:46:02.95★zipファイルの「阪神無」フォルダー以下
「平成25年10月」の数値未発表で一部合計値比較不可能の為
平成25年9月〜平成13年4月は以下の各駅を合計・増減から除外して再計算。
「阪神」─「本線」─「阪神梅田」〜「千船」
「阪神」─「なんば線」─「大阪難波」〜「出来島」
★zipファイルの「阪神有」フォルダー以下
除外せず、「平成25年10月」の未発表数値を前年同月(平成24年10月)と同一と仮定
※「Hnn(年度)」…平成(nn-1)年4月〜平成nn年3月
※「中之島」「渡辺橋」「大江橋」「なにわ橋」…「H21」10月の[総数]は日割り(13/31日) 。
※「大阪難波」「桜川」「ドーム前」「九条」…「H21」3月の[総数]は日割り(12/31日) 。
※「総数」…「H18」の7月以降及び年度平均はOTS線を除いた数値となっている。
平成24年4月〜平成25年10月
http://www.city.osaka.lg.jp/toshikeikaku/page/0000020916.html
[2013年12月20日]
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
0262デフォルトの名無しさん
2013/12/21(土) 16:58:15.50スクロールも選択もできなくはなるけど
リストはグレーアウトしないの?
コンボボックスはグレーアウトするのに
0263デフォルトの名無しさん
2013/12/21(土) 19:08:01.72そういうコードを書けばいい
何がわからないんだ
0264260
2013/12/21(土) 20:14:42.98具体的には?
Selection.Copyまではわかるが、そのあとはこんな感じか?
Selection.Copy Destination:=Word.Documents(1).ActiveCursor
0265デフォルトの名無しさん
2013/12/21(土) 21:18:08.98多分ワードに直接貼り付けとか出来ないと思う
一旦クリップボード経由させるのが楽なんじゃね
0267デフォルトの名無しさん
2013/12/23(月) 01:32:23.38ユーザーフォームにコマンドボタンAとBがあって
Aをクリックするとデータの抽出
Bをクリックするとデータを抽出した後、特定のデータに色をつける
この場合、BにAと同じ構文を書いた後、色付けしてるのですが
省略ってできないでしょうか?
あまりに長くなるのでなんとかしたいです
0268デフォルトの名無しさん
2013/12/23(月) 03:31:36.24「Sub 抽出」を用意しといて、Aからは抽出を呼び出すだけ
Bは抽出を呼んだあと色付けするようにプログラムを作ればいい
0269デフォルトの名無しさん
2013/12/23(月) 08:32:52.21データの抽出
End Sub
Private Sub btn_B_Click()
データの抽出
データに色付け
End Sub
Sub データの抽出()
End Sub
Sub データに色付け()
End Sub
0270デフォルトの名無しさん
2013/12/23(月) 10:39:37.720271デフォルトの名無しさん
2013/12/23(月) 14:10:40.000272デフォルトの名無しさん
2013/12/23(月) 16:33:14.05ありがとうございました。
全体がすっきりしました。教えてくれた方、素敵です。
0273デフォルトの名無しさん
2013/12/24(火) 12:07:04.760274デフォルトの名無しさん
2013/12/24(火) 12:08:07.16いつも中央に寄っています。
0275デフォルトの名無しさん
2013/12/24(火) 16:22:57.85VBAのフォームのコマンドボタンではTextAlignプロパティが公開されていないので無理です
テキストの後ろにスペースを足して、左に寄っているように見せかけるか、ボタンの上にラベルを貼るか
最初からラベルだけにしてボタン的な使い方をするかしてください
0276デフォルトの名無しさん
2013/12/24(火) 21:56:14.31ティでボタンに貼る。
「PicturePosition」プロパティで、「fmPicturePositionLeftCenter」を
指定すれば、「Picture」プロパティで指定した画像の幅だけテキストが
右に寄り、「fmPicturePositionRightCenter」を指定すれば、左に寄る。
これなら1ドット単位で指定できるが...。
0277デフォルトの名無しさん
2013/12/25(水) 16:13:28.240278デフォルトの名無しさん
2013/12/25(水) 16:14:03.220279デフォルトの名無しさん
2013/12/25(水) 16:32:51.190280デフォルトの名無しさん
2013/12/25(水) 17:22:19.39残業200時間までは働けるぞ、仕事くれ。
0281デフォルトの名無しさん
2013/12/25(水) 19:14:41.33トータルで350時間くらいか。
働き者だなぁ。
0282デフォルトの名無しさん
2013/12/26(木) 13:04:36.260283デフォルトの名無しさん
2013/12/26(木) 21:19:03.410284デフォルトの名無しさん
2013/12/27(金) 12:51:03.640285デフォルトの名無しさん
2013/12/27(金) 12:59:16.930286デフォルトの名無しさん
2013/12/29(日) 21:51:06.62なぜ標準モジュールに作らないとダメなんですか?
ThisWorkbookモジュールやSheet1モジュールじゃなぜ動かないんですか?
理由が知りたいです。
0287デフォルトの名無しさん
2013/12/29(日) 21:59:39.81>シートに自作関数を作るとき
どゆこと?
0288デフォルトの名無しさん
2013/12/29(日) 22:06:15.500289デフォルトの名無しさん
2013/12/29(日) 22:16:09.85(1) 関数、IsNumberとIsNumericの違いはなんですか?
(2) それはどうやって調べましたか? (記憶してた人は回答しないでね)
(2)のほうがすごく知りたいです。なぜなら調べる方法がちゃんとわかっていればこのことに限らずこんご自分で解決できるから。
GoogleというのはできればNGでお願い。
0290デフォルトの名無しさん
2013/12/29(日) 22:45:57.27Yahooならいいんか?
0291デフォルトの名無しさん
2013/12/29(日) 22:54:17.48Ahoo
0292デフォルトの名無しさん
2013/12/29(日) 22:57:57.90VBAの組み込み関数かEXCELのワークシート関数かとか
型チェックするか暗黙の変換するとかしないとか
とりあえず両方のヘルプみれば済む話
0293デフォルトの名無しさん
2013/12/29(日) 23:05:10.44マイクロソフトがそう言う風にEXCELを作ったから
それ以上はマイクロソフトに聞かないとわかりません
0294デフォルトの名無しさん
2013/12/29(日) 23:05:12.81簡単にヘルプとおっしゃいますが
どうやってヘルプを起動するかとか
そのあとどうやって知りたい機能の関数を検索するかとか
そういうのが知りたいのですが
0295デフォルトの名無しさん
2013/12/29(日) 23:06:26.77マイクロソフトがどう言う風にEXCELを作ったかを調べるほうほうを聞いているのですが
0296デフォルトの名無しさん
2013/12/29(日) 23:18:02.59ヘルプだしたことないのかよ?
VBEのメニューにあるし、普通は知りたいところでF1押すだけだ
0297デフォルトの名無しさん
2013/12/29(日) 23:19:47.85それはマイクロソフトに聞いてください
0298デフォルトの名無しさん
2013/12/30(月) 00:36:13.04つか簡単におっしゃいますがとか臭いな、行き遅れのキチガイババア的な臭いだ
0299デフォルトの名無しさん
2013/12/30(月) 01:13:49.38あなたはそれをマイクロソフトに聞いたのですか?
0300デフォルトの名無しさん
2013/12/30(月) 04:23:14.97第3者の解説等で十分じゃないですかね
必要があればマイクロソフトに問い合わせますがね
問い合わせが全部タダと言うわけでもないので
030118
2013/12/30(月) 09:37:31.590302デフォルトの名無しさん
2013/12/30(月) 09:42:45.56その公式や非公式のドキュメントは具体的になんなのか
PCのどこかにdocファイルとして存在してるのか
もしそうならそのPathはどこなのか
ヘルプ機能で見るものなのか
もしそうならその呼び出し方は
そういうのを質問者様は聞いてると思うぞ
抽象的なことではなくて
0303デフォルトの名無しさん
2013/12/30(月) 10:44:40.440304デフォルトの名無しさん
2013/12/30(月) 11:40:58.82CreateObject("InternetExplorer.Application")やCreateObject("Outlook.Application")のように
そのソフトをオブジェクト変数として扱うにはどのような呪文を唱えればいいでしょうか?
そしてそのソフトの機能を呼びだすためどのようなメソッドがあるかを調べる方法は?
0305デフォルトの名無しさん
2013/12/30(月) 11:45:39.16差し支えるよ
全然違うから
0306デフォルトの名無しさん
2013/12/30(月) 11:53:59.12部屋に鍵をかけずに買い物に行くのがDoEvents
鍵をかけて眠るのがSleep
0307デフォルトの名無しさん
2013/12/30(月) 13:28:00.33そのフリーソフトがCreateObjectできるように作られてるソフトじゃないと無理
普通はまずそのフリーソフトの作者側で公開された情報がないか調べるんだがな
そう言う風に作られてるなら、メソッドの調べ方は参照設定してオブジェクトブラウザで見るとか
0308303
2013/12/30(月) 13:30:08.67じゃあ鍵をかけずに眠るのはどんなステートメント/関数?
0309303
2013/12/30(月) 13:30:54.040310デフォルトの名無しさん
2013/12/30(月) 13:31:16.47その例えはおかしくないか
郵便物チェックするのがDoEvents
無視して寝るのがSleep
だろ
0311デフォルトの名無しさん
2013/12/30(月) 13:34:05.560312デフォルトの名無しさん
2013/12/30(月) 13:52:47.65Sleepはそのまんまの意味
DoEventsはイベント処理中に後続のイベントを割り込ませるもの。
なのでスリープ同様CPU使用率を下げるが全くの別物。
というかDoEventsはそんな認識で使われるとバクの元だし必要とする時点で設計ミスの可能性が高いので忘れた方がいいよ。
0313デフォルトの名無しさん
2013/12/30(月) 14:26:52.86「DoEvents関数を抜けて戻ってきたら船が無くなってていきなり海中に叩き込まれた」みたいな
愉快な体験がいくらでもできるよ やったねたえちゃん!
0314デフォルトの名無しさん
2013/12/30(月) 20:17:35.02Windowsに処理を明け渡すんじゃなくて?
0315デフォルトの名無しさん
2013/12/30(月) 22:06:05.570316デフォルトの名無しさん
2014/01/01(水) 11:16:42.52ようするに仕事の順序が変わるだけ
0317デフォルトの名無しさん
2014/01/01(水) 11:19:51.82やることは決まってんだよ
Sleepは溜まった仕事をそのままずっと先送りするだけ、DoEventsは順番が変わって急ぎの仕事を先にやるだけ
0318デフォルトの名無しさん
2014/01/01(水) 14:23:24.77会社のイントラWeb(?)から見れるデータベースを参照するためにすべきことはなんですか?
データベースにもURLとかサーバの名前みたいなのがあるんですよね?
どういうしくみか分かってないので、それも含めて質問できたらなと存じます。
0319デフォルトの名無しさん
2014/01/01(水) 15:37:21.51まず社内のシステム管理者に聞け
0320318
2014/01/04(土) 09:54:05.01教えてくれないんですよ。
空ファイルをつくり拡張子をudlにしてそれを開くと道は開けるみたいな情報を得ましたがそこから先がわかりません。
イントラWebのFormを使ってアクセスしてるDBをVBAで自由に扱うには
どうすればいいですか?
DBのサーバ名を調べればいいんですよね?
それはHTMLのソースのどこかに書いてるんでしょうか?
0322318
2014/01/04(土) 11:00:04.71でもやりたいんですよ。
0323デフォルトの名無しさん
2014/01/04(土) 11:26:36.290324デフォルトの名無しさん
2014/01/04(土) 11:32:17.50DB ? サーバ ? クライアント
こういうふうになっていて
HTMLはサーバとクライアント間のやりとりに使われるものだから
DBのアドレスはHTMLのソースに書かれてないはずよ。
DBに接続するときふつうはDBのアドレスとユーザIDとパスワードが必要。
システム管理者からそれを教えてもらえないのであれば、
システム管理者と一緒にお酒飲みにいって酔わせて聞き出したり、
ノーパンしゃぶしゃぶに接待して聞き出すしか手はないと思うよ。
ノーパンしゃぶしゃぶがおすすめかな。しゃぶしゃぶできるし。
0325318
2014/01/04(土) 11:55:05.29なにが危険ですか?
データを更新しないかぎり大丈夫じゃんと思いますが。
>>324
IDパスワードはそのサイトのログインと同じもので良さそうな気がしてますが。
DBのアドレスかホスト名がHTMLに書かれてなければどこに書かれているの?
黒画面からnetstatみたいなコマンドはダメですか?
しゃぶしゃぶのことは分からんがポン酢だれじゃなきゃイヤだ。ゴマだれは不味い。
0326デフォルトの名無しさん
2014/01/04(土) 12:02:56.72数値らしきものが入っているセルについての質問です。
これはIsnumeric関数ではTrueを返すのはやめてほしいです。
これは文字列なんだから。
このような処理をする必要に駆られたとき
みんなはどうしてますか?
0327326
2014/01/04(土) 12:05:05.32こんな機能は即廃止してほしい。
この機能を切る方法はない?
プログラミングでもvariant型みたいな中途半端な道具は即刻廃止してほしい。
数値らしきものも+や*で計算したら数値扱い、&や文字列とくっつける演算をしたら文字列扱いという機能もうざすぎる。
この機能も切る方法はない?
0328デフォルトの名無しさん
2014/01/04(土) 12:07:02.81文字列と判断させる方法はない?
これもIsnumeric関数ではTrueと返しくさる。
0331デフォルトの名無しさん
2014/01/04(土) 12:23:36.78まともな管理者ならDBの接続IDとサイトのログインIDを同じにするとは思えない。
>>325にDBの情報を教えなかったのならまともな管理者。ゆえにDBのIDとログインのIDは違うもの。
DBの接続に必要な情報はDBにアクセスするサーバ側のプログラムのソースコードに書かれているか、
またはサーバ側のプログラムから参照されてるはずよ。netstatで見えるのはサーバの状態。
DB <-> サーバ <-> クライアント
という形になるんでクライアントがやりとりするのはサーバ。
サーバの向こう側にあるDBはクライアントから見えない。
0332デフォルトの名無しさん
2014/01/04(土) 12:42:08.74年末のバッチ処理が管理外のセッションのロックでこけて大混乱になってクビにされた!!!
おまえらのせいだ!!! ぜったいにゆるさんぞ!!!!
0333デフォルトの名無しさん
2014/01/04(土) 15:04:35.092015年の1月まで、一年間何もしなかった怠慢の結果だろ、クビになって当然。
未来が予想できるなら、対策しろ。
0334デフォルトの名無しさん
2014/01/04(土) 15:10:01.15「こけて」ってなに?
こういうまぎらわしい言葉の使い方はやめなさい。
[正しい使い方] (マラソンで)コケちゃいました。
0335デフォルトの名無しさん
2014/01/04(土) 15:29:14.77別に紛らわしくはないよね。揚げ足どりやめようよ。
0336デフォルトの名無しさん
2014/01/04(土) 15:53:45.27これが正しい用法だ。
http://www.youtube.com/watch?v=z8PbFRV287c
0337デフォルトの名無しさん
2014/01/04(土) 16:12:51.03■ このスレッドは過去ログ倉庫に格納されています