1 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 19:31:39 ] ExcelのVBAに関する質問スレです 質問前に 【 >>2-3 】 あたりを良く読むこと 前スレ pc11.2ch.net/test/read.cgi/tech/1197448064/ ★1 質問テンプレ(雛形)は用意しませんが、OSとExcelのバージョンは必ず書きましょう。 ★2 ExcelのVBA以外の部分に関する質問はNGです。 但し、VBA無しでも出来ることだが、あえてVBAでやりたいって物に関してはOK。 ★3 ExcelのVBE(Visual Basic Editor)を使うとしても、VBAの分野以外に関してはスレ違いです。 VBAとは、『Visual Basic for Application』の略で Application ├Workbooks |└Workbook | ├Worksheets | |└Worksheet というApplication以下のオブジェクトを、VB言語で操作するものを指します。 例えExcel付属のVBE(Visual Basic Editor)を利用しようとも、このApplication以下のブックやシート、 セルやオブジェクト等を操作するもの以外はVBA分野の話ではないので、ここでは聞かないでください。 ★4 とりあえず、Excelのインスタンスを作らずにVB6で出来ることは全てスレ違いだと思ってください。 ★5 レベルはどうあれ、ここはプログラマ用の板スレです。プログラマとは、自分でプログラムを組み コードを書く人の事なので、自分でやるきは全く無く、丸投げしようって人はお断りです。 ヒントを貰えばあとは自力でなんとかしますって人のみどうぞ。
930 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 16:02:04 ] ネタでも「変わらんくて」と言う奴が死ぬほど嫌いだから絶対教えない。 ら抜き言葉でもブチ切れそうなのにさぁ、どうしてわざわざ”な”を”ん”に 置き換えるんだよ最近のゆとりどもは。書いてて違和感ねーのか糞が。
931 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 16:06:07 ] >>930 基地外乙w 単にローマ字入力でAが抜けたTypoだろ
932 名前:930 mailto:sage [2008/05/27(火) 17:00:52 ] >>931 いや、「分からんくて」「変わらんくて」「倒せんくて」 とか書き込む奴はかなり多いぞ。 そういう言い回しが流行ってんのか?ってほど。 年齢層の低いスレ覗いていないと分からんくても 仕方ないけど… >>932 >分からんくても 死ね
933 名前:913 mailto:sage [2008/05/27(火) 17:11:05 ] ユーザーフォームの更新の件、DoEventsでいけました ありがとうございました >>932 それは関西弁っていう日本ではメジャーな言語
934 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 18:43:46 ] 35才の関西人だが「…くて」は割と使う。 >>930 はもう少し視野を広げてみてはどう?
935 名前:デフォルトの名無しさん [2008/05/27(火) 19:56:10 ] テンプレみたらNG質問のようだが、適当なスレが見付からないので教えてください。 ExcelBVAのテクニックは大体わかります。 しかし、「Excelを起動するとVB?が起動し、ユーザーフォームとExcelが分離している状態」 のプログラム技術を身につけたいと思っています。 これを会得するには、やっぱりVBの知識と多大なる努力が必要なんでしょうか?
936 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 20:19:11 ] 24歳の関西人の俺はつかわない だがそんなことにマジ切れすとか、情緒不安定なんじゃね?
937 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 20:49:46 ] >>935 VBAでできる。 どれくらいの努力が必要かは、君のセンスと知力に依存するので誰も答えられない。
938 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 20:54:29 ] >>935 できない私が言うのもなんだが、そんなことできて何がいいの?
939 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 20:55:50 ] ユーザーフォームって、マウスホイールに対応してないとか 使いづらいんじゃないすか。 >>936 「マジ切れす」?また怒られるぞ!
940 名前:デフォルトの名無しさん [2008/05/27(火) 22:31:35 ] >>937 うおお、マジですか、VBAでできるの? 怒られそうだがさらに質問。 どうやんの?メニューバーとかどーみてもVBっぽかったけど。
941 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 22:34:41 ] >ExcelBVAのテクニックは大体わかります。 >ExcelBVAのテクニックは >ExcelBVA ExcelVBAを知らないんだからしょうがないよな
942 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 22:39:26 ] エクセルを隠すだけなら ' Excel本体は隠す Private Sub UserForm_Initialize() Application.Visible = False End Sub やりたいのはこういう事?
943 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 22:51:25 ] そうじゃなくて、エクセルを使わずに、フォームだけで何かを 構築したいという事でしょ。
944 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 22:53:16 ] >>930 関西人を馬鹿にしとるんかわれぃ!
945 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 23:06:59 ] 関西人なら「変わらんで」「変わらんかって」だと思うが
946 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 23:07:23 ] 河内のぉ〜○っさんの歌ぁ〜
947 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 15:57:23 ] はじめまして。 リストボックスで選択した項目を任意のアクティブセルに反映させる時、 反映させたくないセルに反映させないようにするにはどうしたら良いでしょうか? 例えば、セル"A1"には反映させたくないけど、"A1"をアクティブにしたまま リストボックスにて項目を選択して反映させてしまうのを防ぎたいのですが。
948 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 16:26:21 ] >>947 オフセットかなんか使って条件分岐するしかないのでは? B1に何か入力がある時は、A1には入れないみたいな感じで。 Sub nnn() If Trim(ActiveCell.Offset(0, 1).Value) = "" Then ActiveCell.Value = Userform1.ListBox1.value Else: Exit Sub End If End Sub
949 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 20:07:47 ] ありがとうございます 試したけどなかなか理想した感じにできなかったので、 ロック設定で我慢します・・
950 名前:デフォルトの名無しさん [2008/05/28(水) 20:27:42 ] >>943 そうです。今の考えでは、 @フォームにあるボタンを押すとExcelが起動して、 A入力用のフォームに値を入力すると、 Bクチャクチャっと値が返されて、(大量の関数的な部分があるので、慣れたExcelのセルでやりたい。) CCSV形式で出力されて、 D違うソフトにそれを読み込ませる、またはVBだったらそのソフトを外部から操作してやってみたい。 (そのソフトの仕様は全然わからんのだが。) Dが無ければVBAでやれると思うんだが、Aの時に、ExcelVBAだと俺の知識ではマクロ実行中は 任意のセル編集ができない。 やっぱVBじゃないとダメ??
951 名前:デフォルトの名無しさん [2008/05/28(水) 20:28:23 ] >>943 そうです。今の考えでは、 @フォームにあるボタンを押すとExcelが起動して、 A入力用のフォームに値を入力すると、 Bクチャクチャっと値が返されて、(大量の関数的な部分があるので、慣れたExcelのセルでやりたい。) CCSV形式で出力されて、 D違うソフトにそれを読み込ませる、またはVBだったらそのソフトを外部から操作してやってみたい。 (そのソフトの仕様は全然わからんのだが。) Dが無ければVBAでやれると思うんだが、Aの時に、ExcelVBAだと俺の知識ではマクロ実行中は 任意のセル編集ができない。 やっぱVBじゃないとダメ??
952 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 21:47:53 ] >>951 それって、100%ExcelVBAのような気がするけど・・・
953 名前:デフォルトの名無しさん [2008/05/29(木) 09:23:10 ] 共有されていないブックを、"読み取り専用"で開いているメンバーを VBAで調べるのは不可能ですか。
954 名前:デフォルトの名無しさん mailto:sage [2008/05/29(木) 09:59:49 ] VBAにCで言うDefineのようなものはないのでしょうか。 StaticステートメントをDefineのように使うのはおかしくないですか?
955 名前:デフォルトの名無しさん mailto:sage [2008/05/29(木) 11:02:16 ] 自分の家でつくったユーザーフォームが友達のPCで開いたら 背景色が変わってたんだけどなんで? 俺excel2000 友excel2002
956 名前:デフォルトの名無しさん [2008/05/29(木) 14:31:16 ] ユーザーフォームの色は、絶対指定と、OSの設定にあわせる方法と 二種類あって、おそらく後者を適用しているのでしょう。
957 名前:デフォルトの名無しさん [2008/05/29(木) 17:38:31 ] VBAに日本語化パッチを当てるにはどうすればいいのでしょうか
958 名前:デフォルトの名無しさん mailto:sage [2008/05/29(木) 20:44:31 ] いろいろと検索してもわからなかったので質問させていただきます。 CSVファイルをエクセルファイルに変換したいのですが、特定の列だけを 文字列として処理を行いたいのです。 また、変換元のCSVファイルの指定をBATファイルを利用したいのですが、 よい手段がわかりませんでした。 なにかいい方法はありませんか??
959 名前:デフォルトの名無しさん mailto:sage [2008/05/29(木) 21:15:00 ] Excel総合相談所 69 pc11.2ch.net/test/read.cgi/bsoft/1211605143/
960 名前:デフォルトの名無しさん mailto:sage [2008/05/29(木) 22:26:56 ] VB Editor じゃなくて、自分の好きなエディタでマクロを書きたいのんですが、 何かいい方法ありますか? 今はエディタから全コピーしてVBA側に全ペーストしてます;;
961 名前:デフォルトの名無しさん mailto:sage [2008/05/29(木) 22:52:06 ] 俺は秀丸派でCもJAVAも書いてたんだけど VBA使ってみてビビった。あれはVBAが 元始にして究極のエディタだと思うんだが。 関数の保管とかしてくれるしもう最高。
962 名前:デフォルトの名無しさん mailto:sage [2008/05/29(木) 22:52:26 ] ×保管 ○補完
963 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 00:49:04 ] UserFormで変数を持つにはどうすれば良いですか? UserFormにTextBoxを貼り付けてTextBox1を変数として使うのもよいのですが 内部で使う変数なので表示はしたくないです。 何をやりたいかというと、このUserFormでOKボタンを押されたことをBOOL変数に記録し、 そして呼び出し元で、OKが押されたかどうか判断したいです。 つまりMFCで言えば CDialog dlg; if(dlg.DoModal() == IDOK) { UserFormObj.Show IF UserFormObj.bOk = TRUE THEN 処理 END IF 見たいな事をしたいです。
964 名前:デフォルトの名無しさん [2008/05/30(金) 00:50:38 ] UserFormで変数を持つにはどうすれば良いですか? UserFormにTextBoxを貼り付けてTextBox1を変数として使うのもよいのですが 内部で使う変数なので表示はしたくないです。 何をやりたいかというと、このUserFormでOKボタンを押されたことをBOOL変数に記録し、 そして呼び出し元で、OKが押されたかどうか判断したいです。 つまりMFCで言えば CDialog dlg; if(dlg.DoModal() == IDOK) 処理 みたいな。 VBAだと UserFormObj.Show IF UserFormObj.bOk = TRUE THEN 処理 END IF って感じだと思ってます。
965 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 00:51:28 ] すみません。2重カキ子しちゃいました。。>>963 は無視してね
966 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 00:53:35 ] すみません。2重カキ子しちゃいました。。>>963 は無視してね
967 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 00:54:08 ] >>964 UserFormにOKプロパティを作る 又は、手軽に標準モジュールにPublic変数を宣言する
968 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 00:54:10 ] すみません。2重カキ子しちゃいました。。>>964 は無視してね
969 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 00:56:33 ] >>967 ありがとうございます。 OKプロパティーというのがあるのですね。勉強になります。 #今日は書き込みがやたらエラーになる(:_:)。スレ汚しすみません。
970 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 00:59:35 ] >>969 ごめん、UserFormにOKプロパティ作っても、UserFormが閉じたら変数破棄されるからダメだね Public変数でどうぞ
971 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 14:30:19 ] VCで作成したDLLを使用してVBAでプログラマしてます。 Private Declare Function DataRead Lib "ExcelVBA.dll" Alias "_CareerDataRead@4" (strFileName As String) As String・・・@ だと「DLLが見つかりません」と出てきます。そんで、Dllのパスをフルパスにしてやると動作するんですが、そすると他のPCで パスがないので「Dllが見つかりません。」と出てきちゃいます。 できれば、ブックのあるフォルダにDLLをおいて@のように呼び出したいのですが、無理なのでしょうか?
972 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 14:46:15 ] >>971 つ環境変数
973 名前:デフォルトの名無しさん [2008/05/31(土) 10:10:45 ] セルに挿入されているハイパーリンクを普通にクリックして、ページ先に飛ぶようなことを VBAから実行することは可能でしょうか。 あと、ユーザーフォームにハイパーリンクを張ることは可能ですか?
974 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 01:36:15 ] 例えば、PC起動時にあるソフトをアップデートしたいとき、VBAできたりするんですか?
975 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 01:46:21 ] そんなもんメールで告知しろ。 内部的なソフトで、アップデート(上書き)したいだけなら バッチファイルとスタートアップのショートカットを駆使すりゃいいやん
976 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 15:16:33 ] VBAからSystem.Text.StringBuilderを使うとき、 オーバロードがどのAppend_数字に対応しているか調べるには どうすればよい?
977 名前:デフォルトの名無しさん [2008/06/01(日) 18:51:45 ] エクセル2000で 指定した名前で CSVファイルで保存する方法ってわかりますか?
978 名前:デフォルトの名無しさん [2008/06/01(日) 19:29:10 ] >>977 マクロの記録で出てこないか?
979 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 19:37:44 ] >>977 使ったことないけど、getsaveasfilename でいいんじゃない?
980 名前:側近中の側近 ◆0351148456 [2008/06/01(日) 20:32:46 ] >>977 (っ´▽`)っ Excel2000のVBAでCSV保存すると、 日付型はことごとく文字化けするけどなー☆
981 名前:デフォルトの名無しさん [2008/06/01(日) 20:44:27 ] >>978 >>977 サンクス
982 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 10:24:47 ] ビジュアル ベーシック フォー 哀川翔
983 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 15:11:45 ] >>980 普通に読めますが?
984 名前:側近中の側近 ◆0351148456 [2008/06/02(月) 20:44:29 ] >>983 (っ´▽`)っ Jan 1 2007とかにならんかね?
985 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 20:51:41 ] >>984 文字化け?
986 名前:側近中の側近 ◆0351148456 [2008/06/02(月) 20:54:18 ] >>985 (っ´▽`)っ これは文字化けじゃないか。 細かいことは気にするな☆
987 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 00:06:08 ] いわゆるマクロウイルスとかいうやつのコードの書き方教えて。 ウイルスチェックで引っかかるところを見てみたいだけです。
988 名前:デフォルトの名無しさん [2008/06/03(火) 12:49:33 ] 携帯からたどり着きました。スレ違いだったらすみません。 よかったらご教授願います。多分とても簡単な事だと思うのですが…超初心者です。 OSはXP、Excel2003です。 ファイルAの内容を、カメラ機能を使って、ファイルBに取り込もうとしています。 ファイルAのシート名は1〜31までの整数です。(1日1シート) ファイルB上でマクロを実行した時、実行日に相当するシートの範囲を読むようにしたいのですが、以下のマクロでは、エラーになってしまいます。手直しして頂けないでしょうか。宜しくお願いします。 Sub カメラのリンクを編集() Dim i As String i = Day(Date) ActiveSheet.Shapes("camera").Select Selection.Formula "='G:\平成20年\[ファイルA.xls]i'!$A$1:$K$60" End Sub
989 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 13:02:37 ] ここは手直しスレじゃないんだが。 せめてどんなエラーになったか位書こうよ。 あー、シート名が変数i(不適当な名前だw)に入っているのなら、文字列を組み立てないとダメだね。 >988では"i"と言う名前のシートを探そうとしてしまう。
990 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 13:03:52 ] ×ご教授 ○ご教示
991 名前:デフォルトの名無しさん [2008/06/03(火) 14:55:10 ] >989、990 文字列を組み立てるというアドバイスの元見直しをして、無事完成しました。 スレ違い失礼しました、「ご教示」ありがとうございました。
992 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 15:38:51 ] 質問したいけど構文ここに書くの面どくせえ
993 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 18:52:12 ] ・・・ If ActiveCell.Column = 6 Then Range("A1:A10").Copy ActiveCell Else MsgBox "ここは駄目" End If ・・・ これだと6列目を先頭としてA1〜A10のセルをコピーでき、 6列目以外は入力不可でmsgboxが出るのですが、 例えば6列目〜10列目を入力可能にするにはどうしたら良いでしょうか?
994 名前:デフォルトの名無しさん [2008/06/03(火) 22:18:12 ] オートシェイプの始点やら終点ってどういう単位? Sheets(2).Shapes.AddLine(Xs, Ys, Xe, Ye).Select たとえば、こうやって変数で当てて500から520までかけ。次に520から540までかけ ってやっても線がつながらんのだが。
995 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 01:32:55 ] >>994 ちゃんとつながるぞ。単位はポイント Sheets(1).Shapes.AddLine(50, 100, 100, 50).Select Sheets(1).Shapes.AddLine(100, 50, 150, 100).Select Sheets(1).Shapes.AddLine(150, 100, 100, 150).Select Sheets(1).Shapes.AddLine(100, 150, 50, 100).Select
996 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 10:34:25 ] VBAを使用して作成したExcelファイルを立ち上げようとすると、 「問題が発生したため、Microsoft Excel for Windows を終了します。 ご不便をおかけして申し訳ありません。」 というMicrosoftのエラーになり、Excelが開かなくなってしまいました。 中のモジュールを何とか見る方法はないでしょうか?
997 名前:デフォルトの名無しさん [2008/06/04(水) 20:06:50 ] あるセルにある文字列が入っています。特定の文字列では無いのですが、 この文字列から、条件を満たす物を抽出したく考えております。 具体的には、「*」 で囲まれた文字列を抜き出したく考えております。 (「」で囲まれた物以外を削除) 調べてみたのですが、このような処理は可能でしょうか。 可能でありましたらば、教えてくださいませ。よろしくお願いします。
998 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 21:23:50 ] regexp
999 名前:デフォルトの名無しさん [2008/06/04(水) 22:58:25 ] 次 pc11.2ch.net/test/read.cgi/tech/1212587819/l50
1000 名前:デフォルトの名無しさん [2008/06/04(水) 23:08:39 ] 10000ならオマエラの人生幸せ それ以外なら一生不幸
1001 名前:1001 [Over 1000 Thread] このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。