Excel VBA質問スレ Part6

このエントリーをはてなブックマークに追加
952デフォルトの名無しさん:2008/05/28(水) 21:47:53
>>951
それって、100%ExcelVBAのような気がするけど・・・
953デフォルトの名無しさん:2008/05/29(木) 09:23:10
共有されていないブックを、"読み取り専用"で開いているメンバーを
VBAで調べるのは不可能ですか。
954デフォルトの名無しさん:2008/05/29(木) 09:59:49
VBAにCで言うDefineのようなものはないのでしょうか。
StaticステートメントをDefineのように使うのはおかしくないですか?
955デフォルトの名無しさん: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デフォルトの名無しさん:2008/05/29(木) 20:44:31
いろいろと検索してもわからなかったので質問させていただきます。
CSVファイルをエクセルファイルに変換したいのですが、特定の列だけを
文字列として処理を行いたいのです。
また、変換元のCSVファイルの指定をBATファイルを利用したいのですが、
よい手段がわかりませんでした。
なにかいい方法はありませんか??
959デフォルトの名無しさん:2008/05/29(木) 21:15:00
960デフォルトの名無しさん:2008/05/29(木) 22:26:56
VB Editor じゃなくて、自分の好きなエディタでマクロを書きたいのんですが、
何かいい方法ありますか?
今はエディタから全コピーしてVBA側に全ペーストしてます;;
961デフォルトの名無しさん:2008/05/29(木) 22:52:06
俺は秀丸派でCもJAVAも書いてたんだけど
VBA使ってみてビビった。あれはVBAが
元始にして究極のエディタだと思うんだが。
関数の保管とかしてくれるしもう最高。
962デフォルトの名無しさん:2008/05/29(木) 22:52:26
×保管
○補完
963デフォルトの名無しさん: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デフォルトの名無しさん:2008/05/30(金) 00:51:28
すみません。2重カキ子しちゃいました。。>>963は無視してね
966デフォルトの名無しさん:2008/05/30(金) 00:53:35
すみません。2重カキ子しちゃいました。。>>963は無視してね
967デフォルトの名無しさん:2008/05/30(金) 00:54:08
>>964
UserFormにOKプロパティを作る
又は、手軽に標準モジュールにPublic変数を宣言する
968デフォルトの名無しさん:2008/05/30(金) 00:54:10
すみません。2重カキ子しちゃいました。。>>964は無視してね
969デフォルトの名無しさん:2008/05/30(金) 00:56:33
>>967
ありがとうございます。

OKプロパティーというのがあるのですね。勉強になります。


#今日は書き込みがやたらエラーになる(:_:)。スレ汚しすみません。
970デフォルトの名無しさん:2008/05/30(金) 00:59:35
>>969
ごめん、UserFormにOKプロパティ作っても、UserFormが閉じたら変数破棄されるからダメだね
Public変数でどうぞ
971デフォルトの名無しさん: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デフォルトの名無しさん:2008/05/30(金) 14:46:15
>>971
つ環境変数
973デフォルトの名無しさん:2008/05/31(土) 10:10:45
セルに挿入されているハイパーリンクを普通にクリックして、ページ先に飛ぶようなことを
VBAから実行することは可能でしょうか。

あと、ユーザーフォームにハイパーリンクを張ることは可能ですか?
974デフォルトの名無しさん:2008/06/01(日) 01:36:15
例えば、PC起動時にあるソフトをアップデートしたいとき、VBAできたりするんですか?
975デフォルトの名無しさん:2008/06/01(日) 01:46:21
そんなもんメールで告知しろ。

内部的なソフトで、アップデート(上書き)したいだけなら
バッチファイルとスタートアップのショートカットを駆使すりゃいいやん
976デフォルトの名無しさん: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デフォルトの名無しさん: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デフォルトの名無しさん:2008/06/02(月) 10:24:47
ビジュアル ベーシック フォー 哀川翔
983デフォルトの名無しさん:2008/06/02(月) 15:11:45
>>980
普通に読めますが?
984側近中の側近 ◆0351148456 :2008/06/02(月) 20:44:29
>>983
(っ´▽`)っ
Jan 1 2007とかにならんかね?
985デフォルトの名無しさん:2008/06/02(月) 20:51:41
>>984
文字化け?
986側近中の側近 ◆0351148456 :2008/06/02(月) 20:54:18
>>985
(っ´▽`)っ
これは文字化けじゃないか。
細かいことは気にするな☆
987デフォルトの名無しさん: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デフォルトの名無しさん:2008/06/03(火) 13:02:37
ここは手直しスレじゃないんだが。
せめてどんなエラーになったか位書こうよ。
あー、シート名が変数i(不適当な名前だw)に入っているのなら、文字列を組み立てないとダメだね。
>988では"i"と言う名前のシートを探そうとしてしまう。
990デフォルトの名無しさん:2008/06/03(火) 13:03:52
×ご教授
○ご教示
991デフォルトの名無しさん:2008/06/03(火) 14:55:10
>989、990
文字列を組み立てるというアドバイスの元見直しをして、無事完成しました。
スレ違い失礼しました、「ご教示」ありがとうございました。
992デフォルトの名無しさん:2008/06/03(火) 15:38:51
質問したいけど構文ここに書くの面どくせえ
993デフォルトの名無しさん: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デフォルトの名無しさん: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デフォルトの名無しさん:2008/06/04(水) 10:34:25
VBAを使用して作成したExcelファイルを立ち上げようとすると、
「問題が発生したため、Microsoft Excel for Windows を終了します。 ご不便をおかけして申し訳ありません。」
というMicrosoftのエラーになり、Excelが開かなくなってしまいました。
中のモジュールを何とか見る方法はないでしょうか?
997デフォルトの名無しさん:2008/06/04(水) 20:06:50
あるセルにある文字列が入っています。特定の文字列では無いのですが、
この文字列から、条件を満たす物を抽出したく考えております。

具体的には、「*」 で囲まれた文字列を抜き出したく考えております。
(「」で囲まれた物以外を削除)

調べてみたのですが、このような処理は可能でしょうか。
可能でありましたらば、教えてくださいませ。よろしくお願いします。 
998デフォルトの名無しさん:2008/06/04(水) 21:23:50
regexp
999デフォルトの名無しさん:2008/06/04(水) 22:58:25
1000デフォルトの名無しさん:2008/06/04(水) 23:08:39
10000ならオマエラの人生幸せ
それ以外なら一生不幸

10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。