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


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

Excel VBA質問スレ Part6



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を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。






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

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

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