トップページ⇒tech
347コメント112KB

Excel VBAについて Ver.2.0

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさんNGNG
前スレ
http://pc2.2ch.net/test/read.cgi/tech/1023755967/
0002デフォルトの名無しさんNGNG
>>前スレの994
>てかOption Explicitって先頭に追加したら赤くなったぞ
>いい加減なことばっか教えてんじゃねぇよ、死ねよ
激しくワラタ
0003デフォルトの名無しさんNGNG
なぜ誰も2ゲットしに来ない・・・・?
0004デフォルトの名無しさんNGNG
>>前スレの994
とりあえず、お前の読んでる本だかウェブだかは捨てだ
0005デフォルトの名無しさんNGNG
スレタイにExcelとか激しく不要なのに
0006デフォルトの名無しさんNGNG
こっちが本スレです。
http://pc.2ch.net/test/read.cgi/prog/1039685426/
0007前スレで騒いでた奴NGNG
てかもう俺のこと忘れてる?
0008デフォルトの名無しさんNGNG
だって解決済みだし
0009↑NGNG
してねぇよ、死ねよ
0010デフォルトの名無しさんNGNG
http://216.239.37.100/search?q=cache:lJ9diWCPWhsJ:www.gec.gifu.gifu.jp/kyoukaHP/kyoukajyouhou/textvol2/vba2.pdf+Dim+mt(12)+As+Integer+&hl=ja&lr=lang_ja&ie=UTF-8
0011デフォルトの名無しさんNGNG
どうやら、高校の課題のようですな
0012デフォルトの名無しさんNGNG
で、お前らはいったい何なわけ?
0013 NGNG
テンプレ

・質問する人は可能な限り具体的に書いてね。
・コード(プログラム)を晒すと、なおヨシ。
・質問を小出しにすると、大抵遠回りになります。
・Excelのバージョン、OSのバージョンも書くとレスが付きやすい。
・回答がなくてもキレないで。
・分かる人はできるだけ回答して下さいませ。
・書き込む前に推敲して、回答する人にわかりやすい文章に汁。
0014デフォルトの名無しさんNGNG
>>9
だから993が答えじゃん
0015デフォルトの名無しさんNGNG
だから995が答えじゃん。タイプミスなんかじゃねえって、まぢで。
ちなみにOffice 2002。てかまぢ困った。
0016デフォルトの名無しさんNGNG
宿題は自分でやろうよ
0017デフォルトの名無しさんNGNG
>>16
。゚(゚´Д`゚)゚。
もう来ません
0018デフォルトの名無しさんNGNG
>>15
もう一万回コード見直せw
>>10をみると少なくとも3箇所はタイプミスしてる。
0019デフォルトの名無しさんNGNG
。゚(゚´Д`゚)゚。。゚(゚´Д`゚)゚。。゚(゚´Д`゚)゚。。゚(゚´Д`゚)゚。。゚(゚´Д`゚)゚。。゚(゚´Д`゚)゚。。゚(゚´Д`゚)゚。。゚(゚´Д`゚)゚。。゚(゚´Д`゚)゚。。゚(゚´Д`゚)゚。
0020デフォルトの名無しさんNGNG
何のスレ?ここ
0021デフォルトの名無しさんNGNG
つか、参考書自体がタイプミスしてるんだな。

初心者イジメて楽しいのか藻前ら・・・
0022前スレの978NGNG
>>21
もとの「高校版情報活用テキスト」ではちゃんと動くコードです。
http://cscns.csc.gifu.gifu.jp/syozo/center/curriculum/kou_new/
リンクミスしているトホホなWebサイトだけど、
プログラミングを勉強するには良い課題もあるね。

イジメてはないと思うけど
0023デフォルトの名無しさんNGNG
訂正
前スレの978 → 前スレの982
0024前スレの993NGNG
>>15
解答はタイプミスのところじゃなくて、その下なんだが……

> というわけで、上で宣言している配列変数あたりが疑わしい。つかそれだ。
0025デフォルトの名無しさんNGNG
っていうか、エラーメッセージはコンパイルできんような状況だって言ってるんだ
から、タイプミスだろうがなんだろうがプログラムになってないってことだ。
0026デフォルトの名無しさんNGNG
つぅか、それくらいのことは自分の頭で考えろってことだ。
今からそんな調子ではプログラマなんて無理。
プログラマになる気もないのなら、課題も捨て単位も捨て進学も捨てて
土方にでもなってろ。
0027前スレで騒いでた奴NGNG
俺の書いたソース、少し改変していいからFixしろ
ただしなるべく俺が書いたものに忠実にな
早くしろよ
0028デフォルトの名無しさんNGNG
ありが�d
ぼくにもできたよ!
http://res9.7777.net/bbs/tiharu/20030610160718.1.gif
0029デフォルトの名無しさんNGNG
>>28
http://res9.7777.net/bbs/tiharu/
0030デフォルトの名無しさんNGNG
http://pc2.2ch.net/test/read.cgi/tech/1023755967/982を直してやったよ

Option Explicit
Private Sub CommandButton1_Click()
Dim strWeekday()
Dim strDate As String
strWeekday = Array("", "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday")
strDate = TextBox1.Text & "/" & TextBox2.Text & "/" & TextBox3.Text
If IsDate(strDate) = False Then
TextBox4.Text = "Error"
Exit Sub
Exit Sub
End If
If (strDate <> Format(strDate, "yyyy/mm/dd")) And _
(strDate <> Format(strDate, "yyyy/m/d")) Then
TextBox4.Text = "Error"
Exit Sub
End If
TextBox4.Text = strWeekday(Weekday(strDate))
End Sub
0031デフォルトの名無しさんNGNG
>>30
煽りに負けたな
0032無料動画直リンNGNG
http://homepage.mac.com/norika27/
0033情報課の教師NGNG
>>30
課題から外れた解答だから採点は0点です。
日付を計算して曜日を求めてください。
0034デフォルトの名無しさんNGNG
日付の入力チェックを皆さんはどのように行っていますか?
>>30の方法は良いやりかたなのかな
0035前スレで騒いでた奴NGNG
>>30をコピペったら動いた。正直、感動した。
まぁ、単に曜日が出ただけで別に何ともないと思ったけどね。てか俺のソースに忠実じゃねぇじゃねぇか
死ねよ
また何かあったら質問しに来てやるよ、じゃあな
お前ら死んでおけ☆
0036前スレで騒いでた奴NGNG
てかね、そのソースの各コマンドがどういう働きをしてるのか書いてみろ
たとえば
Private Sub CommandButton1_Click()  (サブルーチンがどうのこうの)
とかね
全部書いておけよ
0037デフォルトの名無しさんNGNG
このままでは先生に説明できないから大変だな
0038デフォルトの名無しさんNGNG
結局奴は何一つ理解しなかったわけだな
0039デフォルトの名無しさんNGNG
こういうやつが社会に出てくることが一番不安だ・・・
0040デフォルトの名無しさんNGNG
この程度の時点では社会に出てこないよ。少なくともプログラマとしては。
0041前スレで騒いでた奴NGNG
やあプログラマ気取りの諸君、今起きたよ
つーか俺は別にプログラマなんかになるつもりはねぇよ
ただちょっとVBAに手をつけてみてわかんないことがあったから聞いたまでだ
つーか最初のうちはわかんないことがあればなんでも聞きますよ
つーかゴミレス返してないでさっさと俺の言われたとおりのことをしろ
いいか、今日中に書いておけよ
0042デフォルトの名無しさんNGNG
存在がぬるぽ
0043デフォルトの名無しさんNGNG
前スレ見てないからお題が
分からんが、>>30を見る限り
strDate = TextBox1.Text & "/" & TextBox2.Text & "/" & TextBox3.Text
if IsDate(strDate) then
 TextBox4.Text = Format(strDate,"dddd") 
 'かTextBox4.Text = Format(strDate,"ddd")
else
 TextBox4.Text = "ちゃんと日付を入れろゴルァ"
end if
じゃだめか?
0044デフォルトの名無しさんNGNG
すいません、教えてください。

Excel2000のVBAで、ユーザーフォーム上でreeditコントロールを使用して、
ユーザーに数十個のセルを選択させたいのですが、試しにやってみたところ、
約20個ほどクリックしたところで、ポーンと音が鳴って、
選択したセルのアドレスがコントロール内から消えてしまいます。
恐らくコントロールに割り当てられているメモリによって、
取得できる最大文字数が制限されているのではないかと思うのですが、
何か良い解決方法がありましたらご教授くださいませ。

よろしくお願いします。
0045前スレで騒いでた奴NGNG
てかまだ俺の問題が解決してません。
>>44はすっこんでてください
0046デフォルトの名無しさんNGNG
>>45
Option Explicit
Private Sub CommandButton1_Click()
  Dim strDate As String
  strDate = TextBox1.Text & "/" & TextBox2.Text & "/" & TextBox3.Text
  If IsDate(strDate) Then
    TextBox1.Text = Year(strDate)
    TextBox4.Text = Format(strDate, "dddd")
  Else
    TextBox4.Text = "Error"
  End If
End Sub
0047あぼーんNGNG
あぼーん
0048デフォルトの名無しさんNGNG
ゴミレスしてないで早く書け
死ねよ
0049デフォルトの名無しさんNGNG
てかお前ら俺の言ってる意味わかってる?
お前ら低脳だから全然わかってないぽだけど・・・
0050デフォルトの名無しさんNGNG
てかお前ここのスレに書かれてることわかってる?
お前は荒らしてるだけだから全然頭使ってないぽだけど・・・
0051デフォルトの名無しさんNGNG
>>45
Option Explicit
Private Sub CommandButton1_Click()
  Dim strDate As String
  strDate = TextBox1.Text & "/" & TextBox2.Text & "/" & TextBox3.Text
  If IsDate(strDate) Then
    TextBox1.Text = Year(strDate)
    TextBox4.Text = Format(strDate, "dddd")
  Else
    TextBox4.Text = "Error"
  End If
End Sub
0052デフォルトの名無しさんNGNG
だからね、例えばそのOption Explicit っていうのはどういう意味があるんですか?
それを書いて欲しいわけですよ。わかる?とにかく書いて欲しい。それこそ全部書いて欲しい。
次のPrivate Sub CommandButton1_Click() っていうのはどういう意味があるんですか?
早く全部書け
0053デフォルトの名無しさんNGNG
http://www.google.co.jp/
0054デフォルトの名無しさんNGNG
Option Explicit
は、モジュール内で使用するすべての変数を明示的に宣言することを
強制するオプション

これをいれておくと宣言のし忘れなどがなくなるので
バグが入る可能性も減る
0055デフォルトの名無しさんNGNG
全
部
書
け
と
い
っ
て
る
だ
ろ
0056デフォルトの名無しさんNGNG
教科書読めばぁ?
0057デフォルトの名無しさんNGNG
教科書なんか無ぇって。てかまぢで早く書け。
てかそろそろ授業出てこなきゃな。帰ってくるまでに書いておけよ☆
0058デフォルトの名無しさんNGNG
質問するくせに態度がでかいな

Private は他のモジュールから参照できないプロシージャを宣言するときに使う
Sub はプロシージャの名前
プロシージャ:
   実行時に 1 つの単位として処理されるコードの集まり。
   プロシージャには、Function プロシージャ、Property プロシージャ、Sub プロシージャの
    3 種類があります。通常、プロシージャの名前は、モジュール レベルで定義します。
   実行可能なコードは、すべてプロシージャに含める必要があります。
   プロシージャを他のプロシージャ内にネストすることはできません。

CommandButton1_Click()
はプロシージャの名前

0059デフォルトの名無しさんNGNG
ほっとけ。あらしなら説明しても無駄だし、
そうでなくても十分ヒントが出ているからあとは調べられるはず。
どちらにしろもうレスする必要はない。
0060デフォルトの名無しさんNGNG
>>44
これは関係あるかな
http://support.microsoft.com/default.aspx?scid=kb;JA;320262
0061デフォルトの名無しさんNGNG
ここにいるやつらって、冷たいこともあるのに妙にやさしかったりもするのな。

Option Explicit なんて基本中の基本だし、例えばヘルプで Explicit を
検索すれば、こんな掲示板で聞かずともわかる範囲の話。

こんなことさえできない・しないやつがプログラムを組んだって
どうしようもないんだから、放置すりゃいいのに。
0062デフォルトの名無しさんNGNG
全部書けっていってるのがわかんないの?殺すよ、まぢで
てか俺は荒らしてるわけじゃなくて純粋に質問してるんだからな
お前らがわけのわかんないゴミレスしてないでさっさと質問に答えれば荒れずに済むのがどうしてわからないんだ
死ねよ低脳。
0063デフォルトの名無しさんNGNG
うーむ、調べもので検索してて、こんなの見つけた。
前スレでたくさんのシートを使ってた人がいたので、要注意ですな。

■ シートを増やす運用での問題点

 シート枚数が増えればそれだけメモリを消費する。計算式を多く設定してもメモリを多く消費する。
計算式を多く設定したシートで、枚数を増やす運用をした場合、ブックが開けなくなる事故が頻発している。
 また、フォントや罫線の設定の組み合わせを多く設定し、ブックが開けなくなる事故も多発している。
これは、表示形式(フォントや罫線の組み合わせ、Excelの表示形式の概念とちょっと異なる)が4,000という制限がある為。
 解決方法は、シートを増やす運用はなるべくさけて、ブックを分ける。
 シートの最大数は、メモリに依存する。計算式を多く設定すれば、それだけシートの作成可能な数は減る。
経験則から、簡単なシートで数十枚程度であれば運用可。ただ、ブックのバックアップ(世代や週間/日間)が最低必要。

ところで以後>>62は無視ね。
0064デフォルトの名無しさんNGNG
62は釣ってるつもりが実はかなりの釣られ野郎だな。ちょっとオモロイ。
0065 NGNG
>>62
この手の低級な屑にあらされてしまうにはもったいない良スレなんで、皆さん、黙殺しませう。
0066デフォルトの名無しさんNGNG
>>65
いやいや、>>62から伝わってくる必死さは近頃の若者には見られなくなってる。
その意味では却って好感さえ感じられるよ。
0067デフォルトの名無しさんNGNG
たのむからまぢで教えてくれ
そしたら大人しく消えてやるから、もう来ないから
0068デフォルトの名無しさんNGNG
>>67
うんうん、その必死さが好感を呼ぶのだよ。
0069デフォルトの名無しさんNGNG
                   _,,,,,.........,,,,__
                 /:;:;:;:;:;:;:;:;:;:;:;:;:;,丶
 早いとこ全部書けよ…  /:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;.,ヽ
                 i' ' ' ' ' ' ' ' 'i;:;:;:;:;:;:;:;:;.,|
    ,.-‐¬ ̄-、¨¬‐、  |\,. 、/  L:;:;:;:;:;:;.;.l
   ////""`'""''ヽソ-‐l=・= =・=  ヽ:;/¨iノヽ、
  //////」  -=== }  |         ,ノ./lllll/、
  i//ノソ,._______,.""'  '".i,  l `_       ./lllll/  ヽ
  ヽ彡i.6 ̄ ̄i.,__ノ⌒i.,_ノ ..::ゝ.,_____,,,...- /llllllll/    ヽ
  /ヽ ゝ'    ,rti.l.l.l.、)ゝノlllllllllゝ.,__,ノlllllllllllllソ     .}
⌒`ヽ、ヽ li       ./ヽllllllllllllllllllllllllllllllllllllllliゝ /    /
、   V ヽ ゝ  _,......__ ノノ  ヽllllllllllllllllllllllllllllllllli/    ./
丶、,.、,ヽ     ミ三   ` ¬ ‐‐---‐¬ ¨ ̄
        ((   ̄ ̄ ¨¬‐- ..,_
          l 川 |
0070デフォルトの名無しさんNGNG
もうあきたので直リン
http://cscns.csc.gifu.gifu.jp/syozo/center/curriculum/kou_new/vba2.pdf
0071デフォルトの名無しさんNGNG
明日からVBA生活の新人でつ。
これだけ教えて下さい。
可変長なリストオブジェクトの名前。
0072デフォルトの名無しさんNGNG
リストオブジェクトって固定長のあったっけ?
0073デフォルトの名無しさんNGNG
>>72
つぅかリストオブジェクトって存在するんですか?
Collectionオブジェクトも登録順で取り出せることが保証されるならそれで良いんですが。
0074デフォルトの名無しさんNGNG
死ねよ
0075デフォルトの名無しさんNGNG
Key に Str(coll.Count) でも入れておいて coll(Str(index)) するんじゃ駄目?
007644NGNG
>>60
レスありがとうございます。
読んでみましたが、残念なことに私のケースとは違うようです。
私の場合は、エラーが発生するのではなくて、
refeditコントロール内のセルアドレスが消えてしまうだけなんですね。

引き続き解決方法を募集してます。皆さん、よろしくお願いします。
0077デフォルトの名無しさんNGNG
>>75
それなら素直に整数型入れるよ。と、言うか重そう。
0078デフォルトの名無しさんNGNG
イメヌ経由なのに直リンとか言ってるバカってまだいるんだ・・・
0079デフォルトの名無しさんNGNG
頭のhをカットしないっつー意味で直リンて書いてるのに
杓子定規にしか捉えれないバカってまだいるんだ・・・

0080デフォルトの名無しさんNGNG
専用ブラウザ使ってないバカってまだいるんだ・・・
0081デフォルトの名無しさんNGNG
テスト厨参上!
0082デフォルトの名無しさんNGNG
直リンの意味がわかってないバカってまだいるんだ・・・・
きっと未だにホームページとかそういう言葉使ってるタイプだな・・・
0083デフォルトの名無しさんNGNG
ゴミレスしてないで早く書け
死ねよ
0084デフォルトの名無しさんNGNG
Excel2000のVBAを使い,SQL2000のテーブルを
Recordset取得するにはどうしたらよいでしょうか?
ちなみにこんなの書きましたけど全然でした

SQLNAME = SQLOpen("DSN= DataBaseName")

Set R = New ADODB.Recordset
R.Open "SELECT * FROM T_テスト", SQLNAME.Connection
0085デフォルトの名無しさんNGNG
ホームページという言葉はあまり使われなくなったが、別にホームページという
言葉自体が無くなったわけではない。

ホームページとはマイホームページの意味だ。ブラウザのアイコンにホームと
書いてあるアレだ。

だからIEをデフォルト設定で使っている人は、私のホームページはMSNのサイト
ですと言わなければならないので、ちょっとややこしい。
0086デフォルトの名無しさんNGNG
ていうか、正直どうでもいいよ
直リンだのホームページだの。

フツーの人は伝わればそれでいいと思われ。
0087デフォルトの名無しさんNGNG
むしろこのスレの存在自体がどうでもいいな

次スレ立てろなんて誰も書いてなかった筈なのに
0088デフォルトの名無しさんNGNG
すいません おねがいです 助けてください
2000でユーザフォーム上のテキストボックスに文字を表示させたいんですが
セルの文字を改行させて、連結したいんです。

txtbox.Text = ActiveCell.Offset(, 3) & vbCrLf & ActiveCell.Offset(, 4)
としても改行されないんです。
で、改行コードっていうのか「q」みたいなんが出るんです
VBCRLFを Chr(13) & Chr(10)としてもだめでした

どなたかよろしくお願いします。

008988NGNG
自己レスまことにもうしわけございません。
解決しました
MultiLineプロパティがfalseになってました
大変失礼いたしました
0090デフォルトの名無しさんNGNG
>>84
ADOを使うことを薦める。

「参照設定」で [Microsoft ActiveX Data Objects 2.X Library] を参照します。

' ADOのオブジェクト変数を宣言する
Dim cnn As New ADODB.Connection
Dim rec As New ADODB.Recordset
' 接続を確立する
cnn.Open "Provider=SQLOLEDB;" &
    "Data Source=(local);" & _
    "Initial Catalog=pubs;", "sa", ""
' SQLステートメントを指定してレコードセットを作成する
rec.Open "select * from publishers", cnn, _
    adOpenKeyset, adLockOptimistic
009184NGNG
>>90
レスありがとうございますた。
初心者ゆえcnn.open内のパラメータが理解できず四苦八苦しております
0092デフォルトの名無しさんNGNG
>次スレ立てろなんて誰も書いてなかった筈なのに

なんか典型的ダメ人間が混じり込んでるね
スレっていうのは立てたいから立てるんだよ、わかるかな?指示を待つだけの奴隷くん
0093デフォルトの名無しさんNGNG
質問させていただきます、どなたか教えていただけませんか
ユーザーフォームイメージコントロールを配置して、そこにイメージを読み込んでから
ユーザーフォームの大きさをイメージに合わせたいと思っています。

loadpicture関数でイメージを読み込むところまではいいんですが、
フォームのheightプロパティを、イメージのheightと合わせても、タイトルバーの
高さ分切れてしまいます。

VBだとScaleHeightが使えるようですが、ヘルプ見たところ、VBAではなんか違うメソッドに
なっているんですか?
このような場合、どうやってイメージの大きさとユーザーフォームの大きさを合わせればよいのか
どなたかよろしくおねがいいたします。
下手な文章で申し訳ないです
0094デフォルトの名無しさんNGNG
>>92
どう見ても前スレで騒いでた奴を釣る為に立てたとしか思えないんだが……
0095デフォルトの名無しさんNGNG
>>94
つーか1=前スレで騒いでた奴だろ

個人的な理由でスレ立てるな > 1
0096デフォルトの名無しさんNGNG
スレ立てるのって大多数が個人的な理由だと思うんですけど・・・・
0097デフォルトの名無しさんNGNG
てか釣られたのを素直に認められない人なんですね、皆さん
0098 NGNG
どーのこーの言って、投稿と回答が続いているからそれでええやん。
まったく廃れているんならともかく。

0099デフォルトの名無しさんNGNG
いや、回答は確かに続いてるが、解答はあまりされていないと思うんだが
0100デフォルトの名無しさんNGNG
要するに回答者がヘタレ揃いなわけだ
0101↑NGNG
いいこと言った!!
0102デフォルトの名無しさんNGNG
100自体はいいことでもなんでもない単なる事実認識だ。
0103>>100-101NGNG
てか自演なんですけどね
0104デフォルトの名無しさんNGNG
前スレ974について詳しく知ってる人はいないんですか?

アクティブシート以外のRangeにCopyFromRecordsetメソッドを実行しても、
アクティブシートのNumberFormatLocalが変わってしまうってやつ。

なんでこんな動作なのか私も知りたいです。
0105デフォルトの名無しさんNGNG
前スレ知らないんだが、Format系の関数・メソッドではよくあること。仕様を把握
しないで経験だけで使わないほうがいいよ。
0106デフォルトの名無しさんNGNG
>>77
たわけ。Collection のキーに整数型は入らん。
もしやと思って確認してしまったではないか。

Sub test3()
Dim val As Long
Dim col As New Collection
For val = 1 To 100000
col.Add val, val
Next
For val = 1 To col.Count
If val <> col(val) Then _
Debug.Print col(val)
Next
End Sub

>col.Add val, val
で実行時エラー'13'「型が一致しません」

コレクションの各メンバの処理をするときに、位置を表す数値の代わりに
使用できる重複しない文字列を文字列式で指定します。
ヘルプより
0107デフォルトの名無しさんNGNG
>>105
そうか、DAOではなくてFormat系の問題なのか。
・・・そう言われてみれば、Rangeのメソッドだものな。
0108デフォルトの名無しさんNGNG
VBAのフォームの内容を自動で書き換える(ラベルとか)方法って
ありますかね
0109デフォルトの名無しさんNGNG
VBAでwavファイルをならす方法を
教えてください
0110デフォルトの名無しさんNGNG
>>109
APIのsndPlaySoundを使用
0111デフォルトの名無しさんNGNG
>>108
何がしたいのだろう
0112デフォルトの名無しさんNGNG
>>109
Declare Function PlaySound Lib "winmm.dll" Alias "PlaySoundA" ( _
ByVal lpszName As String, _
ByVal hModule As Long, _
ByVal dwFlags As Long) As Long
Private Const SND_ASYNC = &H1 ' play asynchronously
Private Const SND_FILENAME = &H20000 ' name is a file name

で

PlaySound "C:\WinNT\Media\ringin.wav", 0, SND_FILENAME Or SND_ASYNC

なのだ。
0113デフォルトの名無しさんNGNG
VBでオナニしたいのですがどうすればいいですか
本当に困ってるのでお願いします
0114デフォルトの名無しさんNGNG
>>113 まずぐぐれ。
0115デフォルトの名無しさんNGNG
>>113
適当なツール類を作る。内容はなんでもいい。
  ↓
サポートサイトを立ち上げる。
  ↓
サイト内でそのツールがいかに有用か、説きたおす。
  ↓
そのツールとあなた自身のファンサイトも作る。
  ↓
ある程度コンテンツが充実したら、ここにurlを貼る。

カナーリ気持ちのいいオナニーができるでしょう。
俺はキャラ的にそういうのは無理です(´・ω・`)
0116デフォルトの名無しさんNGNG
教えてください・・・

Private Sub Worksheet_Change(ByVal Target As Range)
test(Target)
End Sub

Private Sub test(ByVal aaa As Range)
〜〜〜
End Sub

ってやると
実行時エラー’424’:
オブジェクトが必要ですって・・・
Target はオブジェクトじゃないの?
0117デフォルトの名無しさんNGNG
>>116
test Target
または
Call test(Target)
0118116NGNG
>117
あっ
Callが必要だった・・・

ありがとうございます。
0119デフォルトの名無しさんNGNG
As stringってどんな意味?
0120デフォルトの名無しさんNGNG
>>119
入門書から出直せ。
0121デフォルトの名無しさんNGNG
Dim 弦 as string

弦はストリングですよ〜、だ。
ストリングって何だ?となると、本来は Character String。
ひと続きの文字の並び。

んじゃDimは?とくれば、Dimensionの略。
昔のBasicでは配列の宣言にDimを使ってたけど、変数の宣言として統一された。
0122(=゚Д゚)NGNG
Hyper Dimension
0123デフォルトの名無しさんNGNG
>>120
こういうやつって最低だよね
放置するわけでもなく「検索しろ」。おぉ、嫌だ
おまえみたいなゴミはこのスレにいらないから消えろ。そして市ね
0124デフォルトの名無しさんNGNG
>>123
おまえもゴミ
0125デフォルトの名無しさんNGNG
おまえもゴミ
0126デフォルトの名無しさんNGNG
>>119
ヘルプでDimを調べろ
0127デフォルトの名無しさんNGNG
こういうやつって最低だよね
放置するわけでもなく「検索しろ」。おぉ、嫌だ
おまえみたいなゴミはこのスレにいらないから消えろ。そして市ね
0128デフォルトの名無しさんNGNG
>>123 >>127 は放置でおながいしまつ
0129デフォルトの名無しさんNGNG
これから質問攻めするけどいい?
0130デフォルトの名無しさんNGNG
何よ、報知なわけ?
0131デフォルトの名無しさんNGNG
いつもお世話になります。お尋ねしたいのですが
strWeekday = Array("", "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday")
とはどのような意味なのでしょうか?教えていただければこれ幸いでございます。
0132デフォルトの名無しさんNGNG
変数に配列を渡している
0133デフォルトの名無しさんNGNG
>>131
>>36
>>41
>>48
>>52
>>55
0134デフォルトの名無しさんNGNG
いつもお世話になります。お尋ねしたいのですが
strDate = TextBox1.Text & "/" & TextBox2.Text & "/" & TextBox3.Text
とはどのような意味なのでしょうか?教えていただければこれ幸いでございます。
0135デフォルトの名無しさんNGNG
>>134
TextBox1.Text と "/" と TextBox2.Text と "/" と TextBox3.Text を
結合して strDate に代入してる。
つまり 年月日 の間に / を入れてひとつの文字列にまとめたわけだ。

で、次はこう書いてくるのかな?

If IsDate(strDate) = False Then
TextBox4.Text = "Error"
とはどのような意味なのでしょうか?
0136デフォルトの名無しさんNGNG
いつもお世話になります。お尋ねしたいのですが
If (strDate <> Format(strDate, "yyyy/mm/dd")) And _ (strDate <> Format(strDate, "yyyy/m/d")) Then
とはどのような意味なのでしょうか?
0137デフォルトの名無しさんNGNG
チン  ☆  マチクタビレター  ☆ 
       チンチン           マチクタビレター ♪
           ♪   ☆ チチン
    ♪                .☆   マチクタビレター
        ☆ チン   〃  ∧_∧  ヽ        / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
          ヽ   ___\(・∀・ ) /\_/ <  回答マダー
        チン    \_/⊂    つ    ‖    \__________
           / ̄ ̄ ̄ ̄ ̄ ̄ ̄/|     ‖  
        |  ̄  ̄ ̄ ̄ ̄ ̄ ̄:| :|   /|\ 
        |             |/ 
0138デフォルトの名無しさんNGNG
>>136
strDateを西暦の年月日に変換して比較することにより、
年月日の入力が西暦で正しく行われているかチェックしている。
0139デフォルトの名無しさんNGNG
>>138
もう遅いよお前
死んでいいよ
0140デフォルトの名無しさんNGNG
>>139
まさか、136さんじゃないですよね・・
0141デフォルトの名無しさんNGNG
私今エクセルでVB学んでるんですけど、誰かちゃんと理解可能なVBを教えてくれるHP知らないですが?教えてください。(σ´Д`)σゲッツ!!
0142デフォルトの名無しさんNGNG
>>141
VBじゃなくてVBAだろ?正確に書けヴォケ。その手のサイトなんかぐぐったらいくらでもみつかるだろ。
0143デフォルトの名無しさんNGNG
理解可能なVBってなんだろう・・・

つか、あなたの主張って、

わたしが理解できないのは、あなたの教え方が悪いからだ

ってやつですか?
0144デフォルトの名無しさんNGNG
結局、誰も教えてくんねぇのかyo!
0145デフォルトの名無しさんNGNG
正直、学んだことなんか無いけど、ヘルプと例だけで事足りてる。

本とかもリファレンス系しか買わなし、今はそれすら手元に無いな
0146デフォルトの名無しさんNGNG
VBAの短所と長所はなんですか?詳しく教えてください
0147デフォルトの名無しさんNGNG
短所:アプリケーション依存である
長所:アプリケーション専用である
0148_NGNG
教えてください

excelでシート1を表示したままシート2のA1の関数をA10までコピーするにはどうすればいいのでしょうか
シートをアクティブにしてからなら、autofillやselection.copyがありますが、シート1を表示したまま
処理を行いたいのです

0149デフォルトの名無しさんNGNG
>148
Sub test()
Worksheets("Sheet1").Activate
Worksheets("Sheet2").Range("a1").Copy
ActiveSheet.Range("A1:A10").Activate
Paste
End Sub

でよいかな
0150デフォルトの名無しさんNGNG
コピーしてペーストは止めた方がいい悪癖だと思う。

Option Explicit

Sub ボタン1_Click()
Worksheets("Sheet1").Activate ' 別シートを表にしておくためで、不必要
With ThisWorkbook.Worksheets("Sheet2")
.Range("a2:a10").FormulaLocal = .Range("a1").FormulaLocal
End With
End Sub
0151デフォルトの名無しさんNGNG
あ、配列数式を考慮するなら、こう。

Option Explicit

Sub ボタン1_Click()
ThisWorkbook.Worksheets("Sheet1").Activate ' 別シートを表にしておくためで、不必要
With ThisWorkbook.Worksheets("Sheet2")
Dim rngSrc As Range
Set rngSrc = .Range("a1")
Dim rngDst As Range
Set rngDst = .Range("a2:a10")
If rngSrc.HasArray Then
rngDst.FormulaArray = rngSrc.FormulaArray
Else
rngDst.FormulaLocal = rngSrc.FormulaLocal
End If
End With
End Sub
0152デフォルトの名無しさんNGNG
うーん、思いがけず勉強になりますた
0153148NGNG
>>149
>>150
>>151
ありがとうございました
助かりました

どうしても一人でやってると、煮詰まってしまって進まないんで
本当に助かりました

周りの人に聞いても「へ?VBA?エクセルの?シラネ」
で終わり

ありがとうございました
0154デフォルトの名無しさんNGNG
すいません、どなたか、助けて。
VBAで、
Range("BQ2").Formula = "=if(ISERROR(FIND(BQ$1,$I2)),"",find(bq$1,$i2))"
と言う風に、IF関数で、ヌルを条件によっては出力するような式を入力させたいのですが、
これって、""が途中で切られるのかエラーになってしまいます。
IF関数がtrueの場合の""の替わりに何かセルなどを参照させると問題ないのですが、
今のままではエラーになります。
どうしたらよいでしょうか。m(_ _)m

お教え下さいませ。
0155デフォルトの名無しさんNGNG
""を""""にはできないの?
0156デフォルトの名無しさんNGNG
""""
とやってエスケープさせる。
0157デフォルトの名無しさんNGNG
>>155,156
すいません、助かりました。ありがとうございます。m(_ _)m
0158デフォルトの名無しさんNGNG
Excel2000から、VBAで、メールを送信したいんですが、そこで質問です。

Windows2000以前までなら、

Application.MailLogon
ActiveWorkbook.SendMail Recipients:=TargetSendMailOnly, Subject:=TargetFileName$

で、OutlookExpressで送信すること出来たのですが、WindowsXPで同じコードを走らせると、
メールソフト(OutlookExpress)を認識してくれません。

どうか教えてください、エライ人_| ̄|○


0159デフォルトの名無しさんNGNG
>>158
[ファイル] - [送信] のメニューが同じかどうか確認してみ
違ってりゃ MAPI.DLL だか MAPI32.DLL だかがないということだ
一番手っ取り早い解決法は Outlook をインスコ&アンインスコする
0160デフォルトの名無しさんNGNG
ユーザ定義型のメンバ、lParam As LongになんとしてもNULLで終わる文字列へのポインタを
代入したいんですが何かいい手はありますか?

上記が実現できるならlParamの型は問いません。最終的にそれが文字列へのポインタが格納
された4Byteの整数型変数ならば。
0161デフォルトの名無しさんNGNG
>>160
lstrcpy, lstrlen, lstrcmp,lstcatあたりの関数は?
0162デフォルトの名無しさんNGNG
GlobalAlloc()と一緒に。
0163デフォルトの名無しさんNGNG
>>162
オイオイ、メモリ確保はどうす・・・・神!!!!

GlobalLockで得られた「Long型」の整数を引数にlstrcpyを呼んで、その後にlParamにその「Long型」の整数を代入すればいいのか。
兄貴!ありがとう!!
0164デフォルトの名無しさんNGNG
自作自演ご苦労様です。
0165161,162NGNG
自作自演じゃないし・・・
0166158NGNG
>>159

再インスコしたら、出来ました(つД`)
こ、こんなことで引っかかるなんて・・・・_| ̄|○

情けないので、吊ってきます。

ご指摘ありがとうございました。m(. .)m
0167デフォルトの名無しさんNGNG
どなたかご教授おながいします。

VBAでフォームを動かしたまま、
セルに入力などをするにはどうすれば、
いいのですかね?
Excelの2000を使用しているます。

何卒お教えください。
0168デフォルトの名無しさんNGNG
指定したフォルダの中にある全てのファイルを読み込む処理をするために、For Each...Next ステートメントを使用したいのですが、
項目に何を指定してよいのか分かりません。
例えば、"C:\data"フォルダの中にある全てのファイルを処理対象とする場合は、どのように書けばいいですか?
(実際の読み込み処理の部分は適当でかまいません)
0169デフォルトの名無しさんNGNG
DIR ヘルプでみてみ

0170デフォルトの名無しさんNGNG
■■■かわいそうな「ゲーム君」を2ちゃんの力でトップにしよう!■■■

HSPプログラムコンテスト2003オンライン投票
http://www.onionsoft.net/hsp/contest2003/entryn1.html

HSPプログラムコンテスト2003に一番乗りで出展したものの              
Windowsに標準でついてくるゲームを手軽に起動できるという(というかただのショートカットつめあわせ)
しょーもないプログラムでたたかれまくっているプログラミング暦3年(!)の高校生の
作品、ゲーム君をみんなの力で一位にしよう。                   
【【【 投票方法 】】】             
http://www.onionsoft.net/hsp/contest2003/entryn1.html の一番下、エントリーNo8の「ゲーム君」
評価を「A」で選んでコメントを記入して「送信」(コメントいれるとなおよし)           
http://www.onionsoft.net/hsp/contest2003/eval/eval.cgi?md=cmt&id=8
でいままで送信されたコメントが見えるよ!(けっこう笑える)    
順位 http://www.onionsoft.net/hsp/contest2003/eval/eval.cgi              
0171デフォルトの名無しさんNGNG
>>167
vbModeless
0172デフォルトの名無しさんNGNG
>>171

オオォ!
出来ましたありがとうございます
0173デフォルトの名無しさんNGNG
こで作ってみたんですがインデックスがないってできます・・
だれかおしえてくださいませんか
Sub 作業日取得()
Dim program_id As Integer
Dim start_date As Integer
Dim end_date As Integer
Dim check_start As Integer
Dim row As Integer
Dim col As Integer
Dim c As String
Dim start_flag As Boolean
program_id = 3'IDの番号()
start_date = 9 ' 開始日番号()
end_date = 10 ' 終了日番号()
check_start = 11 ' ■形式のデータが入っている最初の列番号(1オリジン)
With Sheets("表(詳細)")
row = 3
0174デフォルトの名無しさんNGNG
Do While .Cells(row, program_id).Value <> ""
.Cells(row, start_date).ClearContents
.Cells(row, end_date).ClearContents
col = check_start
start_flag = False
Do While col < 200
c = .Cells(row, col).Value
If Trim(c) <> "" Then
If Not start_flag Then
start_flag = True
.Cells(row, start_date).Value = .Cells(1, col).Value
End If
.Cells(row, end_date).Value = .Cells(1, col).Value
End If
col = col + 1
Loop
row = row + 1
Loop
End With
End Sub
初心者板から誘導されました・・・
どなたか教えてください。わからないくて・・・
初めてVBAやったものですから・・
0175デフォルトの名無しさんNGNG
Do While .Cells(row, program_id).Value <> ""
.Cells(row, start_date).ClearContents
.Cells(row, end_date).ClearContents
col = check_start
start_flag = False
Do While col < 200
c = .Cells(row, col).Value
If Trim(c) <> "" Then
If Not start_flag Then
start_flag = True
.Cells(row, start_date).Value = .Cells(1, col).Value
End If
.Cells(row, end_date).Value = .Cells(1, col).Value
End If
col = col + 1
Loop
row = row + 1
Loop
End With
End Sub

VBA初めてで原因もわからないです。
もうどうしえちいのか・・
どなたかおしえてください
0176デフォルトの名無しさんNGNG
ごばくしましたすいません
0177デフォルトの名無しさんNGNG
>>173
.row = 3
0178177NGNG
あ、つづいてたのね。
0179デフォルトの名無しさんNGNG
インデックスが無い、という話から想像すると "表(詳細)" シートの名前が
違っているのではないかな? "表 (詳細)" とか。
0180デフォルトの名無しさんNGNG
(半角) と (全角) も別物として扱われるので注意。
ちなみに、この時のエラーは

インデックスが有効範囲にありません。(Error 9)
0181周 レイ君NGNG
マクロで無限ループを作りたいのですが、
どうしたらいいかわかんない。
グーぐるでも検索したけどそれっぽい情報もない。
そこで、皆様に簡単なのでいいので、
無限ループのプログラム書いてほしいわけ。
お願いしますよー。
0182デフォルトの名無しさんNGNG
>>181
do while(true)
loop
0183デフォルトの名無しさんNGNG
無限ループじゃないプログラム書く方が難しい。
0184デフォルトの名無しさんNGNG
名言age
0185デフォルトの名無しさんNGNG
>>183
EXCELでサーバ作るのはおやめになって!
0186デフォルトの名無しさんNGNG
>>185
?
0187デフォルトの名無しさんNGNG
>185
エクセルでサーバ?実用性は無いが作れない事も無いよなw
どうせやるならアクセスでサーバ作った方が無難だろ
0188デフォルトの名無しさんNGNG
VBAのprojectにかけられたパスワードを無効にしたいです。
パスワード解析やバックドアをつけるツールは売っていますが
これを使わずになんとかできないですか?
0189デフォルトの名無しさんNGNG
何ゆえ?
教えて悪さされても困るし・・・
0190デフォルトの名無しさんNGNG
職場の退職者が残していったEXCEL-VBAの技術計算プログラムの中身を調べたいです。
0191デフォルトの名無しさんNGNG
>>190
そいつに聞けばいいかと・・・
死んだわけじゃないだろ?
0192デフォルトの名無しさんNGNG
実は僕がこの手で7Fから突き落として殺しちゃったんです。
パスワード聞いてからにすればよかった。
0193デフォルトの名無しさんNGNG
>>192
そうか・・・
イタコの力が必要だな
オカ板へGO!
0194デフォルトの名無しさんNGNG
>>193
ないすあいであ
0195デフォルトの名無しさんNGNG
>>190
設計資料を拾うか、Excelのバグを拾うか、どちらかだね・・・
0196デフォルトの名無しさんNGNG
結局avprp買って、バックドアから無理やり開いた。
0197デフォルトの名無しさんNGNG
すみません教えてください。
FileDialogはオフィスXPでないと使えないのでしょうか?
0198デフォルトの名無しさんNGNG
Application.GetOpenFilename と Application.GetSaveAsFilename は
97とかでも使えるはず。
0199デフォルトの名無しさんNGNG
>>198
Excel限定な。
0200デフォルトの名無しさんNGNG
えーと、忘れがちなんだがこのスレは。
0201デフォルトの名無しさんNGNG
>196

くらっくしたの?
0202デフォルトの名無しさんNGNG
>>196
買ったのか
尻くらいすぐ見つかると思うがな
0203デフォルトの名無しさんNGNG
仕事で使うので、買いました。

本当です。

この目を見てください。
0204デフォルトの名無しさんNGNG
>>203
見えません。
0205デフォルトの名無しさんNGNG
ちょっとしたエクセルマクロを作るときに、電子署名を入れるのがめんどいです
かと言って使う相手にセキュリティを下げろとは言いにくいし・・・・
ローカル署名を作れるツールがOfficeに同梱されてるらしい事まではわかったんですが、
そこで手詰まりです。
どうすればいいでしょう?excel2000+Win2000+ie6です
0206デフォルトの名無しさんNGNG
SELFCERT.EXE の事だと思うんだが、電子署名を入れるのがうんぬん
の個所の意味が分かんない・・・
・・・ああ「めんどい」ではなくて「わかんない」なんだな。
意外と知らない人が多いので書いておく。次のテンプレに希望。

1. SELFCERT.EXE で名前を入れてデジタル署名を作る
2. Visual Basic Editor のツールメニューのデジタル署名でブックに署名
 ※ 標準モジュールかでマクロを書いておくこと
3. その署名入りのブックを実行するとセキュリティの警告が出るようになる
 ので「この作成者のマクロを常に信頼する」チェックボックスをONにして、
 マクロを有効にするボタンを選択してもらう

これでOK。
署名を削除するには「ツール(T)」->「マクロ(M)」->「セキュリティ(S)」の
信頼の置ける発行元で削除すればよい。
家のOfficeはXPだけど、会社の2000も同じ操作だったと記憶。
0207デフォルトの名無しさんNGNG
>>206
あぁありがとうございます。まさにソレです。
正直に「わからん」と書くべきでしたね。ゴメンナサイ
一度人に教えてもらったのですが、大分前の事で忘れてしまって・・・

今度からメモしておきます。

ありがとうございました!
0208デフォルトの名無しさんNGNG
この中に1人中国人がおる!>>209やろ!
0209デフォルトの名無しさんNGNG
>>208
はぁ?しょうもないこと言うとったらしばくアルよ?ボケ。
0210デフォルトの名無しさんNGNG
みんな行と列を格納する変数をなんて名前にしてる?
自分はgyo retu 。 なんか気恥ずかしい。
0211デフォルトの名無しさんNGNG
>>210
line, column
ln, cl
とかじゃダメ?
0212デフォルトの名無しさんNGNG
行番号や列番号を示すポインタのこと?
だったらi,jとかm,nとか
0213デフォルトの名無しさんNGNG
行 -> record -> rec or rcd
列 -> column -> col
0214デフォルトの名無しさんNGNG
>>210
変に凝った名前よりは判りやすくて良いと思うけど?
0215デフォルトの名無しさんNGNG
>>213
行はrowでは?
0216デフォルトの名無しさんNGNG
Book A と Book B を読み込んで、
Book A の標準モジュールから
Book B の標準モジュールにある Public 変数の値を
参照したり書換えたりできるのでしょうか?
できるのであれば、どのように指定すれば
よいのでしょうか?
0217デフォルトの名無しさんNGNG
ほのぼの
http://www.roppongi-tv.net/00004/007.shtml
http://www.roppongi-tv.net/00004/hara.shtml
http://www.roppongi-tv.net/00004/shi.shtml
0218デフォルトの名無しさんNGNG
>>215
それだ!!
0219デフォルトの名無しさんNGNG
>>216
どっかのセルに値を書き込んでそれを参照するようにしたら?
0220デフォルトの名無しさんNGNG
>>219 THANKS.
やっぱりそれしかないのかなぁ。
0221デフォルトの名無しさんNGNG
>>220
Javaでいう(Javaだけではないかもしれないけど)
アクセサをつくっておいて、それからRunメソッドで
アクセスさせれば可能。

参照される方(Source.xls)
Public TestValue as long

Public Sub setTestValue(Byval v as long)
 TestValue = v
End Sub
Public Function getTestValue() as Long
 getTestValue = TestValue
End Function

参照する方
Sub Test
 Run "Source.xls!setTestValue", 100
 MsgBox Run("Source.xls!getTestValue")
End Sub
100が表示される。
0222216=220NGNG
>>221様
すごい! できた。

処理を分岐させるスイッチなので
シート上には表示したくなかったのです。
感謝三唱。
ありがとうございました。
ありがとうございました。
ありがとうございました。
0223デフォルトの名無しさんNGNG
あいかわらずマ板とは思えない内容ですな。
ビソ板に帰れよ。
0224デフォルトの名無しさんNGNG
>>223=>>219
くやしい気持ちは分かるが、ここはム板だヨン。
0225教えてくださいNGNG
Excelでフォーカスがあるところを任意の色に塗りつぶして
フォーカスが外れると元の色に戻す
というマクロを組みたいのですがどうもうまくいきません。
だれか助けてくださ〜い
0226デフォルトの名無しさんNGNG
あるセルをクリックすると同じブック内の他のセルにジャンプする[ハイパーリンク]-[このドキュメント内]
の機能をマクロで実現するにはどのようにすればよろしいのでしょうか?
どなたか教えてください。
0227デフォルトの名無しさんNGNG
>>225
標準で色が変わるじゃん
0228山崎 渉NGNG

 __∧_∧_
 |(  ^^ )| <寝るぽ(^^)
 |\⌒⌒⌒\
 \ |⌒⌒⌒~|         山崎渉
   ~ ̄ ̄ ̄ ̄
0229デフォルトの名無しさんNGNG
>>226
「マクロの記録」を実行して、ハイパーリンクの編集をやってみてよ
0230223NGNG
>>224
ちなみに漏れは>>219にたいして言ったつもりだったんだが。
マ板とム板はマジボケしてたよ、ごめんね。
0231デフォルトの名無しさんNGNG
とんでもなく低レベルで申し訳ないのですが

do until (Col = "BF")
range(1,Col)
'--- ?
loop

同一行のカラムをひとつづつ右にアクセスするにはどうやればいいですか?
0232デフォルトの名無しさんNGNG
do until (Col = "BF")
range(1,Col)
'--- ?
Col = Col + 1
loop


まぁ、一歩間違えばあぼーんだが、これがないと始まらん。
0233デフォルトの名無しさんNGNG
dim MaxCol as Long
with ActiveSheet
 Maxcol = .Columns("BF").Column
 for c = 1 to MaxCol
  .Cells(1,c).Value = "ゴルア"
 Next
End With
0234デフォルトの名無しさんNGNG
Dim Bar As CommandBar
For Each Bar In CommandBars
Bar.Enabled = False
Next Bar
Application.DisplayFormulaBar = False
ActiveWindow.DisplayHeadings = False
0235234NGNG
あ・・・書きかけで暴発

続き
上のやつを実行した後に、
ワークシートに貼り付けたコマンドボタンクリックで
別のシートをActivateして
Application.ScreenUpdatingを操作すると
表示がおかしくなるのはEXCELのバグですか?
0236デフォルトの名無しさんNGNG
エクセルで質問なのですが、
例えばA列に上から 1,2,3,4・・・ と
B列にも 1,2,3,4・・・ と入れて行き、
C列の1に『=A1+B1』を入れて数式をコピーしていくと、
C列は 2,4,6,8・・・ となりますよね。

で、このC列の結果を別のシートにコピーしようとすると、
数式自体をコピーしてしまってうまくいきません。
2,4,6,8・・・ という数字をコピーするにはどうしたらいいのでしょうか。
0237デフォルトの名無しさんNGNG
>>236
VBAとは関係ないようですが・・・一応答えておきましょう。
「形式を選択して貼り付け」で「値」を選択。
以上!
0238デフォルトの名無しさんNGNG
Do
debug.? "ゴルア"
Loop
0239デフォルトの名無しさんNGNG
Sub Macro1()
Const lngMax As Long = 1000
With [A1]
.Value = "1"
.DataSeries 2, xlLinear, 1, 1, lngMax, False
.Resize(lngMax, 1).Copy .Offset(, 1)
With .Offset(, 2).Resize(lngMax)
.Formula = "=RC1+RC2"
Sheets.Add.[A1].Resize(lngMax).Value = .Value
End With
End With
End Sub
0240デフォルトの名無しさんNGNG
237=240
237は却下ですか・・・ではこんなところで。
Sub Macro2()
'エクセルで質問というから・・・
'しかたないのでVBA版ただし適当・・・
Const MaxRow = 10
Sheets("Sheet1").Select
For i = 1 To MaxRow
Cells(i, 1) = i
Cells(i, 2) = i
Cells(i, 3).Formula = "=RC1+RC2"
Next i
Range(Cells(1, 3), Cells(MaxRow, 3)).Copy
Sheets.Add
Cells(1, 1).PasteSpecial Paste:=xlValues
End Sub
0241デフォルトの名無しさんNGNG
=240
ごめん。Sheets("Sheet1").Selectはいらなかった。デバッグ用に使ったの残ってたでし。
0242デフォルトの名無しさんNGNG
>>240
つくづくレベルの低い方だな・・・。
0243デフォルトの名無しさんNGNG
>>242
レベルが低いと思う理由、または、
自分で書いたコードを乗せて欲しいな・・・
236のレベルなら、これで十分と思うが。
0244デフォルトの名無しさんNGNG
コピーしてペーストは止めた方がいい悪癖だと思う。
0245デフォルトの名無しさんNGNG
>>236 のレベルなら
>>237 が正解と思われ。
0246_NGNG
質問です

excelVBAのフォームにリストボックスを作りました
リストには2列表示させたいのですが、どうすればいいのでしょうか
ColumnCount を 2に設定したのまではいいのですが、それぞれの列に値を入れることが出来ません
&でつなげて見た目には2列にすることは出来ますが
1列目のデータが10文字だったり20文字だったりしますのでずれてしまうのです
教えてください、お願いします
0247デフォルトの名無しさんNGNG
>>246
ListView使うのが良いと思うよ。
0248246NGNG
247さん
早速の回答ありがとうございます
YaHOOで検索したところ
ListViewというのは何かのツールのようですが(現在も調べ中)

出来ればどノーマルのexcel2000,excel97で動かしたのです
0249デフォルトの名無しさんNGNG
ヤフーじゃなくてまずヘルプ内を検索したほうがよいかと
0250デフォルトの名無しさんNGNG
>>249
載ってないと思われ。
0251デフォルトの名無しさんNGNG
test
0252246NGNG
ヘルプにはのってませんでした
OCXのようですね
配布を考えてますので、オフィスがデフォルトの状態で使いたいのですが・・・

Colmnは設定できるのに表示が出来ないとは思えないので
何かやり方があるはずだと思うのですが
0253デフォルトの名無しさんNGNG
>>246のおかげでひとつ賢くなった。
ExcelXPにはあるのにね。

一番初心者臭いのは
Len関数で文字数カウント→差分を" "で埋めるとか
0254デフォルトの名無しさんNGNG
>>246
できる。
ListboxのヘルプのColumnプロパティ or Listプロパティ
を読んでみれ。
0255246NGNG
arrayを使ってやればよいのですね

additemで一軒ずつ取込むのではなく
arrayに取込んでから一気にlistで取込むということで合ってますでしょうか?
0256246NGNG
sage忘れてましたすみません
0257名無し@沢村NGNG
学校のおじさんのつくったExcelVBAを真面目に勉強している、へたれたちのいるスレはここですか?
0258デフォルトの名無しさんNGNG
客先がExcelファイルを要求しない幸運な人ですか?
0259246NGNG
>>257さん、すみませんヘタレで
ですが、ヘタレなのは私だけなんで「たち」はやめて頂けませんでしょうか

>>258さん
そうです。最初はVBで作ってたのですが配布直前に「操作がよくわからんからエクセルで」といわれました
エクセルでよくやるコピー&ペーストや画面に合わせての拡大縮小などなどがないことが不満のようです

エクセルにした方がのちのち大変なことになるのはわかってるのですが
「やれ」と言われればやらなければいけない環境(説得出来る状況じゃないんですね、客先のほうが圧倒的に強いので)なので
エクセルで作ってます

多分というか絶対あとで大変なことになりますね
0260246NGNG
肝心な事を忘れていました

レスくれた皆さんありがとうございました
0261デフォルトの名無しさんNGNG
あの、VBAにはVBのFileListBoxみたいなの無いんですか?
指定したディレクトリ下のファイルリスト情報が欲しいのですが、、、、
ShellでDIR叩いてリダイレクトでファイル作って解析するしか無いのでしょうか・・
正直困ってます。。

0262デフォルトの名無しさんNGNG
>>261
Dir()関数
0263デフォルトの名無しさんNGNG
>>262
あれ、再帰するとなぜかページ違反を起こすので、個人的にはファイルシステムオブジェクトを勧めるよ。
0264デフォルトの名無しさんNGNG
>>263
横から申し訳ないけど、教えていただけ無いでしょうか。私もぜひそれを知りたいので、よろしくおながいします。
0265デフォルトの名無しさんNGNG
>>263
Excelで使えたっけ?
0266デフォルトの名無しさんNGNG
>>265
使えたよ。
0267デフォルトの名無しさんNGNG
使えた・・・
http://www.microsoft.com/japan/msdn/scripting/default.asp
Windows Script 5.6 ドキュメント ダウンロード (exe 形式; 1.67 MB)
からのパクリ&改変

Function ShowFolderList(folderspec)
   Dim fso, f, f1, fc, s
   
   Set fso = CreateObject("Scripting.FileSystemObject")
   Set f = fso.GetFolder(folderspec)
   Set fc = f.Files
   
   For Each f1 In fc
      s = s & f1.Name
      s = s & vbCr
   Next
   
   ShowFolderList = s

End Function

Sub test()
    MsgBox ShowFolderList("C:\")

End Sub
0268山崎 渉NGNG
(^^)
0269デフォルトの名無しさんNGNG
でもFileSystemObjectって、素の Win98 + Office97 環境じゃ使えないんだよねー。
Wsh5.6とか入れさせなきゃダメかな。
0270デフォルトの名無しさんNGNG
ExcelでVBAしてます。

フォームをモーダレス表示した直後に、Excelの方にフォーカスを戻すにはどうすればいいでしょうか?

0271デフォルトの名無しさんNGNG
age
0272デフォルトの名無しさんNGNG
>>270

form.Show vbModeless

の後に

ActiveWindow.Activate
Sheet1.Activate
Sheet1.Cells(1,1).Select

とか色々やってみたんですがフォーカスは依然としてモーダレスフォームのままでした。
0273デフォルトの名無しさんNGNG
☆★ 新商品 ゾク・ゾク 入荷!! 急げ〜!! ☆★☆
★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
☆★ 送料激安!  スピード発送!  商品豊富!   
★☆      http://www.get-dvd.com        
☆★ 激安DVDショップ 「GETDVDドットコム」 
★☆      http://www.get-dvd.com        
☆★ 今すぐアクセス Let’s Go!   急げ! 
★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
0274直リンNGNG
http://homepage.mac.com/maki170001/
0275安全地帯NGNG
http://elife.fam.cx/a009/
0276デフォルトの名無しさんNGNG
>>272
ちょっと強引に(あまりやらないほうがいいが)
form.Show vbModelessの後に
AppActivate "Microsoft Excel"
とか・・・
0277デフォルトの名無しさんNGNG
>>276
ばっちり成功しました。
Excel2000とかだと同名のファイルは同時に開けないようになっているので、ファイル名まで決め打ちすればOKっぽいです。
0278デフォルトの名無しさんNGNG
マクロの登録されたブックがアクティブであるかを判定して、
それによってボタンを押した際の動作を変えるようなマクロを作りたいのですが・・・・・


’ボタンを押すと呼ばれる処理

If ThisWorkbook = active then
  '通常の処理
else
  MsgBox "ブックを最前面に表示してください"
End If

こんな感じでいけるか?と適当に作ってみましたが、動きませんでした。(当たり前)
よろしければご指導下さいな。
0279デフォルトの名無しさんNGNG
>>278
ActiveWindow.Name = "xxx.xls"
でいけるんじゃないの?
0280デフォルトの名無しさんNGNG
ファイルからレコードを読むときなのですが、フィールドに
YYYYMMDDという8桁の固定長テキスト領域がありまして、それの
有効性を判断したいのですが、なんか上手く機能してくれません。

YYMMDDの領域には"01000101"〜"99991231"という数値文字列の範囲で
あればTrue。それ以外ならFalseということで動かしたいのですが、
文字列をそのまま比較演算をすると"0abcefg1"とか"9999abc1"もTrueになります。
Val関数で変換して比較すると"1000101"と"01000101"は等価になり、
Trueになってしまいます。

なんか巧いやり方って無いでしょうか?
当方Excel2000SP2の環境です。
0281デフォルトの名無しさんNGNG
>>280
if len(data) = 8 And Val(data) >= 1000101 And Val(data) <= 99991231 then
0282278NGNG
>>279
そうか、名前を見ればいいんですね〜。
というわけで

If ActiveWorkbook.Name = ThisWorkbook.Name Then

とすることで、無事に期待した通りの動きをしてくれました。
ありがとうございます!
0283デフォルトの名無しさんNGNG
>>280
Stringのまま比較するから無理があるのです。
日付に変換してチェックすればよい。
0284280NGNG
>>281
やっぱりそうなりますか・・・。
Cだったらchar配列でクルクルと比較すれば簡単なのですが、
VBAだと難しいんですね。

>>283
以前に試したときには
CDate(Format(Val(data.date), "#000/00/00"))
という感じでCDateしてみたのですが、この場合ストレートに
数値文字列が来ないと「型が一致しない」とされてエラー
ハンドルに手間がかかってしまい別の手段を探していました。

とりあえずLenで処理してみます。
ありがとうございました。
0285デフォルトの名無しさんNGNG
>>284
> Cだったらchar配列でクルクルと比較すれば簡単なのですが、

chr(a)
a = Right(a,Len(a) - 1)
0286デフォルトの名無しさんNGNG
99981233
0287デフォルトの名無しさんNGNG
新しいブックを作成して、そいつの名前を変えて保存させてます。

WorkBooks.add
’いろんな処理
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs Filename:="レポート" & format(now, "yyyy.mm.dd")).xls"
ActiveWorkbook.Close savechanges:=False

こんな感じで。
特定のディレクトリにしか保存できないのが嫌だったので、
ユーザーに保存する場所を自由に選ばせようと思い、
ダイアログボックスを開いてファイルを保存させるようにしました。

WorkBooks.add
’いろんな処理
ActiveWorkbook.SaveAs Filename:="実網Report(" & shtName & version & "_" & mydate & ").xls"
Application.Dialogs(xlDialogSaveAs).Show
ActiveWorkbook.Close

しかし、これだとダイアログボックスが出る前に勝手に保存されてしまいます。
かといって、三行目のActiveWorkbook.SaveAs Filename:〜〜 を抜くと、
book5とか適当な名前で保存されてしまうので、
自分でファイル名を書き換えなければなりません。
ダイアログボックスに出る名前を、自分で決めてやるにはどうしたらいいんでしょうか?
0288デフォルトの名無しさんNGNG
>>287
Application.GetSaveAsFilename
0289デフォルトの名無しさんNGNG
>>284
CDateではなくて、IsDateを使えばよいのでは
0290287NGNG
>>288さん
できました!

Dim name As String
name = "レポート" & format(now, "yyyy.mm.dd")).xls"

If Application.GetSaveAsFilename(name) <> False Then
  ActiveWorkbook.SaveAs name
End If
ActiveWorkbook.Close savechanges:=False

こんな感じで、ダイアログボックスに指定したファイル名が出て、
ちゃんと保存することができました。しかし、喜んでいたのも束の間・・・・・・
同じディレクトリに同名のファイルがある場合に、無理やり保存しようとすると

1.上書き確認で「OK」を押すと何もないが、「いいえ」又は「キャンセル」を押すとエラー
2.その時にファイルを開いていたら、問答無用でエラー

となります。
どちらの問題も、エラーが出て然るべきで、かなり初歩的な質問に入ると思うんですが、
それをVBAで回避する方法がさっぱり分かりません(汗
真偽値なり定数なり、なんらかのメッセージを返して来てるとは思うんですが、
一体何が返ってくるのか分からないので、困っています。

宜しければご教授お願いします〜・・・
0291287NGNG
よく調べると、エラー1004が帰ってきてました。
こいつをトラップしてやればいいんですね。
お騒がせしました。
0292デフォルトの名無しさんNGNG
>>291
name=の行も直しておいたほうがいいと思いますよ
0293280NGNG
>>289
あっ・・・そうか。
VBAには情報関数があったのでしたね。

Lenで処理すると"a1000101"と"01000101"が判別できないと言う
バグが潜んでいたので作り直してみました。

'YYYYDDMMの各要素が数値かどうか判定する
For Element = 1 To 8 Step 1
If Not IsNumeric(Mid$(Data.Date, Element, 1)) Then
処理
End If
Next Element

'AD100/1/1〜AD9999/12/31の範囲にあるかチェック
If 1000101 <= Val(Data.Date) And _
Val(Data.Date) <= 99991231 Then
処理
End If

こんな感じで期待通りの処理ができました。

皆様ヒントありがとうございます
0294デフォルトの名無しさんNGNG
複数のブックを開いた状態で、ブック間を移動させるボタンを作りました。
ボタンを押せば、次々とブックが切り替わります。

しかし、描画が完全に終わる前にボタンを押してしまったら、その操作は無効になり、
次の動作が変になってしまいます。
(画面は変更されなくても、ボタンを押した際に内部のカウンタが増加されているため)

ブックが完全に更新し終わるまで、ボタン操作を無効にすることはできるんでしょうか?
0295デフォルトの名無しさんNGNG
>>294
早いマシンを買え。
0296283=289NGNG
>>293
私なら以下のような関数にします。
Public Function IsDate8(strDate As String) As Boolean
  IsDate8 = False
  If Not IsNumeric(strDate) Then
    Exit Function
  End If
  If Len(strDate) <> 8 Then
    Exit Function
  End If
  If Not IsDate(Format(strDate, "0000/00/00")) Then
    Exit Function
  End If
  If CDate(Format(strDate, "0000/00/00")) < #1/1/1000# Then
    Exit Function
  End If
  IsDate8 = True
End Function
月末が31日ではない月の処理や、うるう年のチェックも考えると
私はIsDateは使うべきだと思います。
0297デフォルトの名無しさんNGNG
質問くんで申し訳ないのですが
数値の最大値と最小値を取得するのはどうやれば良いでしょう
セルA1〜A100まで数値が並んでいる時、最大の数値と最小の数値だけを
使用したいのです
最大値がどこのセルに入っているかは分からなくてもいいです
よろしくお願いします。
0298デフォルトの名無しさんNGNG
>>297
ヘルプか入門書見ろよ
Googleでもすぐ見つかるぞ
0299デフォルトの名無しさんNGNG
>>294
Private Sub ボタン_Click()
 ボタン.Enabled = False
 'ワークブック切り替え処理をここに
 ボタン.Enabled = True
End Sub
ではいかんの?

あらゆるユーザー操作を無効にするなら
Application.EnableEvents = False
'ワークブック切り替え処理をここに
Application.EnableEvents = True
とか

心配なら移動元でボタンを無効にして
Private Sub ボタン_Click()
 ボタン.Enabled = False
 'ワークブック切り替え処理をここに
End Sub

移動先のワークブックの更新後に有効にする
Private Sub Workbook_SheetCalculate(ByVal Sh As Object)
 ボタン.Enabled = True
End Sub
0300デフォルトの名無しさんNGNG
Cellの中にComboBoxを埋め込むことってできる?
Cellへの入力をComboBoxのリストの中から選択できるようにしたいんだけど
0301デフォルトの名無しさんNGNG
>>300
なぜ、やってみようと思わないのか。
0302デフォルトの名無しさんNGNG
やってはみました。
VBAのHelp調べてそれらしいプロパティを調べたり
ぐぐってみたけどそれらしいのがない。
0303デフォルトの名無しさんNGNG
Validation
0304デフォルトの名無しさんNGNG
>>303
サンスコ おかげででできました。
ホント厨房な質問して迷惑かけてスマン
0305293NGNG
>>296

たびたびご指摘ありがとうございます。
>月末が31日ではない月の処理や、うるう年のチェックも考えると
この部分は至極ごもっともなので、提示されているプロシージャを作り直してみました。
(巧くインデントできるかな?)
Function IsDate8(strDate As String) As Boolean
  Dim Element As Integer
  IsDate8 = False
  For Element = 1 To 8 Step 1
    If Not IsNumeric(Mid$(strDate, Element, 1)) Then
  Exit Function
   End If
  Next Element
  If Not IsDate(Format(strDate, "0000/00/00")) Then Exit Function
  If 1000101 <= Val(strDate) Then
    If Val(strDate) <= 99991231 Then
      IsDate8 = True
    End If
  End If
End Function
フィールドに含まれる数値以外の文字や、内部でのシリアル値の処理も考えると、
恐らくこれが最適の方法となるんじゃないかと思ってます。
0306デフォルトの名無しさんNGNG
スレ違いですが
B1=1
C1=2
D1=3
を
E1に123と並べる式を教えてください
0307デフォルトの名無しさんNGNG
>>306
http://pc2.2ch.net/test/read.cgi/bsoft/1057720306/l50
0308283=289=296 NGNG
>>296
誤
  If Len(strDate) <> 8 Then
    Exit Function
  End If
正
  If InStr(1,strDate,".") > 0 Then
    Exit Function
  End If

>>305
IsNumericは1文字ごとに行う必要無い。ヘルプ嫁
IsDateでチェックしたあとなら、9999/12/31より大きな日付になることはないので
If Val(strDate) <= 99991231 Then は不要でしょ。
0309283=289=296=308NGNG
>>308
以下も必要かな
  If (InStr(1,strDate,"+") > 0) Or (InStr(1,strDate,"-") > 0) Then
    Exit Function
  End If
0310293NGNG
>>309
要件として終わったことに長々と指摘してくれたところで申し訳ないのですが、あなたの指摘で的確な部分は
>IsDateでチェックしたあとなら、9999/12/31より大きな日付になることはないので
これだけです。これは私の確認不足でした。

>IsNumericは1文字ごとに行う必要無い。ヘルプ嫁
あなたはヘルプ以前に要件を確認しましょうね。
例えば"001000"だけがTrueとなる必要がある場合でも、あなたのやり方では
"01,000"も" 1000"も"1000.0"も等価になります。
それらや算術記号を回避するために延々とinstr並べるってんですか?
そんな不細工なコーディングする感覚で良く平気ですね。メリットないでしょ。
それにダメ出ししているLen使ってたところとか、いつの間にか無意味に
日付型で大小比較してたりするところを無かったことにしてるところとか
見る限りでは「なんだかな〜」だし。

なんでこっちが敢えて使わないのかすら推量できない想像力。
あなた自分では出来るつもりなんでしょうけど、ハッキリ言うとプログラムのセンス無いですよ。
0311309NGNG
293さん、失礼しました。
IsNumericの扱いは私の考えが足りてませんでした。
他人が真剣に考えているのに、思いつきで口を出すべきではありませんでした。
今回の件は私も勉強になりました。
0312デフォルトの名無しさんNGNG
なぜ293は必死なのかと
0313デフォルトの名無しさんNGNG
Office2000のExcelで、日本語中国語混在の文書を作ってます。
Excel自体の方はunicodeなので(不満は残るけど)一応両方扱えるのですが、
肝心のVBAが、どうも単一の言語しか想定してない仕様みたいですね。

例えば Worksheets("シート名")のようなのが、日本語版Excelで作ると
中国語版のExcelで動かないし、逆もまた然りです。
この辺うまく対処している方がいたら、どうしているか教えて下さい。
0314313NGNG
すいません、うまく説明できてないので補足します。
VBAの部分をunicodeではなくSJISだとかBig5だとかのローカルコードで
持っているような気がします。なので、

> 例えば Worksheets("シート名")のようなのが、日本語版Excelで作ると

「シート名」の部分を日中どちらの文字セットでも使える漢字にしても、
SJISとBig5では同じコードに違う文字が対応するので、SJISで作っても
中国語版Excelに持っていくとVBAのエディタでは化けてしまいます。

日本語版ExcelのVBAエディタの「オプション」でBig5なフォント(MinLiU
だったか、そんな名前)にすると、中国語で書いたVBAコードがきちんと読めるの
ですが、それでもなお Worksheets("中国語名") みたいなので範囲外エラーに
なってしまうのが謎です。
また、プッシュボタンから呼び出すマクロではエラーになるのに、ワークシート
関数の中で使っている分にはエラーにならない、というのが更に謎で、もうわけ
がわかりません。
0315デフォルトの名無しさんNGNG
>>314
と、言うかフォント入れてないだけだったり名。
0316デフォルトの名無しさんNGNG
>>314
VBA使ったこと無いけど、UNICODEって、ページ指定出来なきゃ複数言語は混在でけんでしょ。
VBAにそんな仕組みあんの?
0317パチンコ屋NGNG
初心者なのでどなたか教えてください!!
ファイル名"test.dat"(36バイト)ファイル内バイナリ
00 00 82 62 82 71 90 56 8A 43 95 A8 8C EA 82 6C
32 37 81 40 81 40 81 40 81 40 81 40 81 40 81 40
81 40 00 00
のうち"test.dat"のアドレス02〜21(計32バイト)を読み込んで
SHIFT-JISの文字に変換する方法をどうかお願いします!!
0318デフォルトの名無しさんNGNG
>>316
>UNICODEって、ページ指定出来なきゃ複数言語は混在でけんでしょ。
なんのためのUnicodeだとこ一時間
0319デフォルトの名無しさんNGNG
>>317
dim bytevariable(32) as byte
0320デフォルトの名無しさんNGNG
>>317

dim bytevariable(32) as byte

get #fil,,bytevariable

str = Strconv(StrConv(bytevariable,vbunicode),vbfromunicode)
0321デフォルトの名無しさんNGNG
困ってます。誰か教えてください。
XP で EXCEL2002 VBA をコーデイング途中 EXCEL が固まってしまいました。
強制終了させて VBA のファイルを開くと EXCEL が固まります。
・EXCELを起動しファイル回復しても「ダメージが大きい」でダメ
・スキャンディスクしたが回復せず
・WORD で開いたがブックのデータだけでマクロはダメ
壊れたxlsファイルをテキストで開くとコードは残っているようなので
ツールか何かあれば回復しそうです。
(1つのソースコードだけ回復すればいいのですが・・)
業者に頼んでもいいですが、何かいい方法はあるでしょうか?
0322321NGNG
今質問したばっかりですが解決してしまいました
バージョン違いのEXCELで読めばコードが出てきました
失礼致しました
0323_NGNG
http://homepage.mac.com/hiroyuki45/
0324デフォルトの名無しさんNGNG
>>317
lstrcpy(StrPtr(str),array(0))
0325デフォルトの名無しさんNGNG
Excelのマクロを使って、同じフォルダの中にあるすべてのExcelファイルを
起動させる仕様にしたいのですが、よく分かりません。
指定したフォルダの中にあるすべてのファイルを起動させる方法や、同じ
フォルダの中のひとつの指定したファイルを開くことはできたのですが、
前述した仕様にだけはどうしてもできませんでした。

初心者で申し訳ありませんが、どうしても知りたいので、誰か分かる方が
いましたら教えてください、よろしくお願いします。
0326デフォルトの名無しさんNGNG
>>325
ループで回す

Public Sub test(ByRef strPath As String)
Dim strXlsFile As String
Dim FileCount As Long
Const MaxFiles As Long = 10 'ファイル数制限

strPath = strPath & Application.PathSeparator

FileCount = 0
strXlsFile = Dir(strPath & "*.xls")
Do Until strXlsFile = "" Or FileCount >= MaxFiles
 FileCount = FileCount + 1
 Workbooks.Open (strPath & strXlsFile)
 strXlsFile = Dir
Loop
End Sub
0327デフォルトの名無しさんNGNG
>>325
死ねクソマルチ。
0328デフォルトの名無しさんNGNG
質問です。
例えばA,B,Cの3文字の組み合わせ(同じ文字を使って良い)を
シートに列挙したいと考え以下の様なコードを書いてみました。

Sub textstr()

Dim Tex(1 To 3) As String
Dim i, j, k, rown, pass

rown = 1
Tex(1) = "A"
Tex(2) = "B"
Tex(3) = "C"

For i = 1 To 3
For j = 1 To 3
For k = 1 To 3
pass = Tex(i) & Tex(j) & Tex(k)
Cells(rown, 1) = pass
rown = rown + 1
Next
Next
Next

End Sub

しかしこれだと文字数が増えるとその分For〜Nextを増やさなければならず、
結果的に不格好なプログラムになってしまうと思うんです。
何か旨い方法(簡略なコード)ってないですかねぇ。。。
必要に迫られているわけではないのですが、いったん考え出すと気になってしまって。
0329328NGNG
すみません。タブが消えて読みにくくなってしまいました。
0330デフォルトの名無しさんNGNG



public function arr(CharCount as Long,CharIndex as Long)


ってちょっと待て!パスワードクラッカーじゃねぇか!!
0331328NGNG
えぇ。。。
早い話自分で作ったPass付Zipのパスを忘れてしまいまして。
でも朧気に使用した単語は憶えていたのでこんなことを考えてました。
寧ろ今はコードだけが頭の中をグルグル回っている状態で。。。
が、問題ある様なので無視してください。
スミマセンでした。
0332デフォルトの名無しさんNGNG
>>328
あるサイトで組み合わせについて書いてあったのが以下のやつ

Sub Macro1()

  Permute Range("A1"), "ABC"
End Sub

Sub Permute(ByRef rngData As Range, ByVal strData As String, Optional ByVal lngNum As Long = 1)
  Dim i As Long

  If lngNum < Len(strData) Then
    For i = lngNum To Len(strData)
      ' 再帰呼出
      Permute rngData, Left$(strData, lngNum - 1) & Mid$(strData, i, 1) & Mid$(strData, lngNum, i - lngNum) & Mid$(strData, i + 1), lngNum + 1
    Next
  Else
    ' 結果
    rngData.Value = strData
    Set rngData = rngData.Offset(1)
  End If
End Sub

0333330NGNG
>>332
俺が書こうとしたのもそれだわ。
再帰だよな。基本は。
0334328NGNG
おぉ、ありがとうございます。
ちょっと読んでみます。
まだVBAかじって間もないので時間かかりますが。。。

そう、今回は再帰ってのが使えるのでは無いかと思い、

sub a(云々)
call a(云々)
end sub

というのが使えるのではないかと勝手に思案してました。
0335デフォルトの名無しさんNGNG
 ある条件が成立したら、メディアクリップオブジェクト(mpgファイルより読込済み)
を再生したくて次の処理を書いたのですが再生できません(オブジェクトが一瞬アクティブ
になりますが、再生できませんです)。
 なぜでしょうか、もっと良い方法をご存知のかた、教えてください。


If Adata > Bdata Then
waveon
Application.OnTime Now + TimeValue("00:03:30"), "plaympg" '次回起動設定
Else
Application.OnTime Now + TimeValue("00:02:00"), "plaympg" '次回起動設定
End I

Sub waveon()
ActiveSheet.Shapes("Object 4").Select
Selection.Verb Verb:=xlPrimary
End Sub
0336デフォルトの名無しさんNGNG
>>335
再生処理は?
0337335NGNG
>336
すみません、マクロを記録した結果から作っただけでして、良くわかっていません。
自動記録の際には、メディアクリップオブジェクトを選択して、
さらにクリックしたら、再生されました。

その際の記録から、335に書いた下の処理で再生できるはずと思ってました。
ActiveSheet.Shapes("Object 4").Select
Selection.Verb Verb:=xlPrimary

なにか、足りないのでしょうか?
(努力が足りないのは、わかってます。教えてクンで申しわけないです)
0338デフォルトの名無しさんNGNG
>>337
>メディアクリップオブジェクトを選択して、
>さらにクリック
この部分は記録されないようだね。
0339335NGNG
おお、そうですか。早速のレスありがとうございます。

ん〜、もうちょっと勉強します。
0340デフォルトの名無しさんNGNG
http://homepage1.nifty.com/tuehara/Excel/vbatips.html
0341山崎 渉NGNG
    (⌒V⌒)
   │ ^ ^ │<これからも僕を応援して下さいね(^^)。
  ⊂|    |つ
   (_)(_)                      山崎パン
0342デフォルトの名無しさんNGNG
agedesuu
0343デフォルトの名無しさんNGNG
すいません。エクセルのマクロで教えていただきたい事があります。

Book1で作成したシートを、Book2に移動させる動作を
繰り返すプログラムを作成しています。ところが、9回ほど繰り返すと
「moveメソッドが失敗しました。」とエラーが出て終了してしまいます。
悩んだ挙句、以下のサンプルプログラムでも同様の現象が発生しました。

Sub aaaaa()
For i = 1 To 100
Windows("Book1.xls").Activate
Sheets("Sheet3").Select
Sheets("Sheet3").Move After:=Workbooks("Book2.xls").Sheets(1)
Sheets("Sheet3").Select
Sheets("Sheet3").Move After:=Workbooks("Book1.xls").Sheets(1)
Next i
End Sub

このサンプルは、Book1とBook2を用意し、Book2には
Sheet3を削除しておいて起動します。


作成環境は
OS :WindowsXpHome
メモリ:512M
excle :Excle2002


もし、何かわかる事がありましたら。教えてください。
0344デフォルトの名無しさんNGNG
>>343
消えないシートが涌くな・・・

Dim L As Long
Application.DisplayAlerts = False
For L = 1 To 100
 Workbooks("Book1").Sheets("Sheet3").Copy After:=Workbooks("Book2").Sheets(1)
 Workbooks("Book1").Sheets("Sheet3").Delete
 Workbooks("Book2").Sheets("Sheet3").Copy After:=Workbooks("Book1").Sheets(1)
 Workbooks("Book2").Sheets("Sheet3").Delete
Next L
Application.DisplayAlerts = True
0345デフォルトの名無しさんNGNG
テキストボックスにファイルをドラッグアンドドロップすると、
そのファイルの絶対パスがテキストボックス上に表示される・・・・

という処理を行うには、どうすればいいのでしょうか??
0346デフォルトの名無しさんNGNG
VB6.0のイベントプロシジャにはText1_OLECompleteDrag()なんてのがあるけど、
VBAには無かったような・・・。
0347デフォルトの名無しさんNGNG
>>346
Windowハンドルも取得できないはずなので絶望的ですな。
■ このスレッドは過去ログ倉庫に格納されています