Excel VBAについて Ver.2.0
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
NGNGhttp://pc2.2ch.net/test/read.cgi/tech/1023755967/
0002デフォルトの名無しさん
NGNG>てかOption Explicitって先頭に追加したら赤くなったぞ
>いい加減なことばっか教えてんじゃねぇよ、死ねよ
激しくワラタ
0003デフォルトの名無しさん
NGNG0004デフォルトの名無しさん
NGNGとりあえず、お前の読んでる本だかウェブだかは捨てだ
0005デフォルトの名無しさん
NGNG0006デフォルトの名無しさん
NGNGhttp://pc.2ch.net/test/read.cgi/prog/1039685426/
0007前スレで騒いでた奴
NGNG0008デフォルトの名無しさん
NGNG0009↑
NGNG0010デフォルトの名無しさん
NGNG0011デフォルトの名無しさん
NGNG0012デフォルトの名無しさん
NGNG0013
NGNG・質問する人は可能な限り具体的に書いてね。
・コード(プログラム)を晒すと、なおヨシ。
・質問を小出しにすると、大抵遠回りになります。
・Excelのバージョン、OSのバージョンも書くとレスが付きやすい。
・回答がなくてもキレないで。
・分かる人はできるだけ回答して下さいませ。
・書き込む前に推敲して、回答する人にわかりやすい文章に汁。
0014デフォルトの名無しさん
NGNGだから993が答えじゃん
0015デフォルトの名無しさん
NGNGちなみにOffice 2002。てかまぢ困った。
0016デフォルトの名無しさん
NGNG0017デフォルトの名無しさん
NGNG。゚(゚´Д`゚)゚。
もう来ません
0018デフォルトの名無しさん
NGNGもう一万回コード見直せw
>>10をみると少なくとも3箇所はタイプミスしてる。
0019デフォルトの名無しさん
NGNG0020デフォルトの名無しさん
NGNG0021デフォルトの名無しさん
NGNG初心者イジメて楽しいのか藻前ら・・・
0022前スレの978
NGNGもとの「高校版情報活用テキスト」ではちゃんと動くコードです。
http://cscns.csc.gifu.gifu.jp/syozo/center/curriculum/kou_new/
リンクミスしているトホホなWebサイトだけど、
プログラミングを勉強するには良い課題もあるね。
イジメてはないと思うけど
0023デフォルトの名無しさん
NGNG前スレの978 → 前スレの982
0025デフォルトの名無しさん
NGNGから、タイプミスだろうがなんだろうがプログラムになってないってことだ。
0026デフォルトの名無しさん
NGNG今からそんな調子ではプログラマなんて無理。
プログラマになる気もないのなら、課題も捨て単位も捨て進学も捨てて
土方にでもなってろ。
0027前スレで騒いでた奴
NGNGただしなるべく俺が書いたものに忠実にな
早くしろよ
0028デフォルトの名無しさん
NGNGぼくにもできたよ!
http://res9.7777.net/bbs/tiharu/20030610160718.1.gif
0030デフォルトの名無しさん
NGNGOption 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煽りに負けたな
0032無料動画直リン
NGNG0034デフォルトの名無しさん
NGNG>>30の方法は良いやりかたなのかな
0035前スレで騒いでた奴
NGNGまぁ、単に曜日が出ただけで別に何ともないと思ったけどね。てか俺のソースに忠実じゃねぇじゃねぇか
死ねよ
また何かあったら質問しに来てやるよ、じゃあな
お前ら死んでおけ☆
0036前スレで騒いでた奴
NGNGたとえば
Private Sub CommandButton1_Click() (サブルーチンがどうのこうの)
とかね
全部書いておけよ
0037デフォルトの名無しさん
NGNG0038デフォルトの名無しさん
NGNG0039デフォルトの名無しさん
NGNG0040デフォルトの名無しさん
NGNG0041前スレで騒いでた奴
NGNGつーか俺は別にプログラマなんかになるつもりはねぇよ
ただちょっとVBAに手をつけてみてわかんないことがあったから聞いたまでだ
つーか最初のうちはわかんないことがあればなんでも聞きますよ
つーかゴミレス返してないでさっさと俺の言われたとおりのことをしろ
いいか、今日中に書いておけよ
0042デフォルトの名無しさん
NGNG0043デフォルトの名無しさん
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デフォルトの名無しさん
NGNGExcel2000のVBAで、ユーザーフォーム上でreeditコントロールを使用して、
ユーザーに数十個のセルを選択させたいのですが、試しにやってみたところ、
約20個ほどクリックしたところで、ポーンと音が鳴って、
選択したセルのアドレスがコントロール内から消えてしまいます。
恐らくコントロールに割り当てられているメモリによって、
取得できる最大文字数が制限されているのではないかと思うのですが、
何か良い解決方法がありましたらご教授くださいませ。
よろしくお願いします。
0046デフォルトの名無しさん
NGNGOption 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あぼーん
NGNG0048デフォルトの名無しさん
NGNG死ねよ
0049デフォルトの名無しさん
NGNGお前ら低脳だから全然わかってないぽだけど・・・
0050デフォルトの名無しさん
NGNGお前は荒らしてるだけだから全然頭使ってないぽだけど・・・
0051デフォルトの名無しさん
NGNGOption 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それを書いて欲しいわけですよ。わかる?とにかく書いて欲しい。それこそ全部書いて欲しい。
次のPrivate Sub CommandButton1_Click() っていうのはどういう意味があるんですか?
早く全部書け
0053デフォルトの名無しさん
NGNG0054デフォルトの名無しさん
NGNGは、モジュール内で使用するすべての変数を明示的に宣言することを
強制するオプション
これをいれておくと宣言のし忘れなどがなくなるので
バグが入る可能性も減る
0055デフォルトの名無しさん
NGNG部
書
け
と
い
っ
て
る
だ
ろ
0056デフォルトの名無しさん
NGNG0057デフォルトの名無しさん
NGNGてかそろそろ授業出てこなきゃな。帰ってくるまでに書いておけよ☆
0058デフォルトの名無しさん
NGNGPrivate は他のモジュールから参照できないプロシージャを宣言するときに使う
Sub はプロシージャの名前
プロシージャ:
実行時に 1 つの単位として処理されるコードの集まり。
プロシージャには、Function プロシージャ、Property プロシージャ、Sub プロシージャの
3 種類があります。通常、プロシージャの名前は、モジュール レベルで定義します。
実行可能なコードは、すべてプロシージャに含める必要があります。
プロシージャを他のプロシージャ内にネストすることはできません。
CommandButton1_Click()
はプロシージャの名前
0059デフォルトの名無しさん
NGNGそうでなくても十分ヒントが出ているからあとは調べられるはず。
どちらにしろもうレスする必要はない。
0060デフォルトの名無しさん
NGNGこれは関係あるかな
http://support.microsoft.com/default.aspx?scid=kb;JA;320262
0061デフォルトの名無しさん
NGNGOption Explicit なんて基本中の基本だし、例えばヘルプで Explicit を
検索すれば、こんな掲示板で聞かずともわかる範囲の話。
こんなことさえできない・しないやつがプログラムを組んだって
どうしようもないんだから、放置すりゃいいのに。
0062デフォルトの名無しさん
NGNGてか俺は荒らしてるわけじゃなくて純粋に質問してるんだからな
お前らがわけのわかんないゴミレスしてないでさっさと質問に答えれば荒れずに済むのがどうしてわからないんだ
死ねよ低脳。
0063デフォルトの名無しさん
NGNG前スレでたくさんのシートを使ってた人がいたので、要注意ですな。
■ シートを増やす運用での問題点
シート枚数が増えればそれだけメモリを消費する。計算式を多く設定してもメモリを多く消費する。
計算式を多く設定したシートで、枚数を増やす運用をした場合、ブックが開けなくなる事故が頻発している。
また、フォントや罫線の設定の組み合わせを多く設定し、ブックが開けなくなる事故も多発している。
これは、表示形式(フォントや罫線の組み合わせ、Excelの表示形式の概念とちょっと異なる)が4,000という制限がある為。
解決方法は、シートを増やす運用はなるべくさけて、ブックを分ける。
シートの最大数は、メモリに依存する。計算式を多く設定すれば、それだけシートの作成可能な数は減る。
経験則から、簡単なシートで数十枚程度であれば運用可。ただ、ブックのバックアップ(世代や週間/日間)が最低必要。
ところで以後>>62は無視ね。
0064デフォルトの名無しさん
NGNGこの手の低級な屑にあらされてしまうにはもったいない良スレなんで、皆さん、黙殺しませう。
0066デフォルトの名無しさん
NGNGいやいや、>>62から伝わってくる必死さは近頃の若者には見られなくなってる。
その意味では却って好感さえ感じられるよ。
0067デフォルトの名無しさん
NGNGそしたら大人しく消えてやるから、もう来ないから
0068デフォルトの名無しさん
NGNGうんうん、その必死さが好感を呼ぶのだよ。
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デフォルトの名無しさん
NGNGhttp://cscns.csc.gifu.gifu.jp/syozo/center/curriculum/kou_new/vba2.pdf
0071デフォルトの名無しさん
NGNGこれだけ教えて下さい。
可変長なリストオブジェクトの名前。
0072デフォルトの名無しさん
NGNG0073デフォルトの名無しさん
NGNGつぅかリストオブジェクトって存在するんですか?
Collectionオブジェクトも登録順で取り出せることが保証されるならそれで良いんですが。
0074デフォルトの名無しさん
NGNG0075デフォルトの名無しさん
NGNG007644
NGNGレスありがとうございます。
読んでみましたが、残念なことに私のケースとは違うようです。
私の場合は、エラーが発生するのではなくて、
refeditコントロール内のセルアドレスが消えてしまうだけなんですね。
引き続き解決方法を募集してます。皆さん、よろしくお願いします。
0077デフォルトの名無しさん
NGNGそれなら素直に整数型入れるよ。と、言うか重そう。
0078デフォルトの名無しさん
NGNG0079デフォルトの名無しさん
NGNG杓子定規にしか捉えれないバカってまだいるんだ・・・
0080デフォルトの名無しさん
NGNG0081デフォルトの名無しさん
NGNG0082デフォルトの名無しさん
NGNGきっと未だにホームページとかそういう言葉使ってるタイプだな・・・
0083デフォルトの名無しさん
NGNG死ねよ
0084デフォルトの名無しさん
NGNGRecordset取得するにはどうしたらよいでしょうか?
ちなみにこんなの書きましたけど全然でした
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デフォルトの名無しさん
NGNG2000でユーザフォーム上のテキストボックスに文字を表示させたいんですが
セルの文字を改行させて、連結したいんです。
txtbox.Text = ActiveCell.Offset(, 3) & vbCrLf & ActiveCell.Offset(, 4)
としても改行されないんです。
で、改行コードっていうのか「q」みたいなんが出るんです
VBCRLFを Chr(13) & Chr(10)としてもだめでした
どなたかよろしくお願いします。
008988
NGNG解決しました
MultiLineプロパティがfalseになってました
大変失礼いたしました
0090デフォルトの名無しさん
NGNGADOを使うことを薦める。
「参照設定」で [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
0092デフォルトの名無しさん
NGNGなんか典型的ダメ人間が混じり込んでるね
スレっていうのは立てたいから立てるんだよ、わかるかな?指示を待つだけの奴隷くん
0093デフォルトの名無しさん
NGNGユーザーフォームイメージコントロールを配置して、そこにイメージを読み込んでから
ユーザーフォームの大きさをイメージに合わせたいと思っています。
loadpicture関数でイメージを読み込むところまではいいんですが、
フォームのheightプロパティを、イメージのheightと合わせても、タイトルバーの
高さ分切れてしまいます。
VBだとScaleHeightが使えるようですが、ヘルプ見たところ、VBAではなんか違うメソッドに
なっているんですか?
このような場合、どうやってイメージの大きさとユーザーフォームの大きさを合わせればよいのか
どなたかよろしくおねがいいたします。
下手な文章で申し訳ないです
0094デフォルトの名無しさん
NGNGどう見ても前スレで騒いでた奴を釣る為に立てたとしか思えないんだが……
0095デフォルトの名無しさん
NGNGつーか1=前スレで騒いでた奴だろ
個人的な理由でスレ立てるな > 1
0096デフォルトの名無しさん
NGNG0097デフォルトの名無しさん
NGNG0098
NGNGまったく廃れているんならともかく。
0099デフォルトの名無しさん
NGNG0100デフォルトの名無しさん
NGNG0101↑
NGNG0102デフォルトの名無しさん
NGNG0103>>100-101
NGNG0104デフォルトの名無しさん
NGNGアクティブシート以外のRangeにCopyFromRecordsetメソッドを実行しても、
アクティブシートのNumberFormatLocalが変わってしまうってやつ。
なんでこんな動作なのか私も知りたいです。
0105デフォルトの名無しさん
NGNGしないで経験だけで使わないほうがいいよ。
0106デフォルトの名無しさん
NGNGたわけ。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そうか、DAOではなくてFormat系の問題なのか。
・・・そう言われてみれば、Rangeのメソッドだものな。
0108デフォルトの名無しさん
NGNGありますかね
0109デフォルトの名無しさん
NGNG教えてください
0110デフォルトの名無しさん
NGNGAPIのsndPlaySoundを使用
0111デフォルトの名無しさん
NGNG何がしたいのだろう
0112デフォルトの名無しさん
NGNGDeclare 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本当に困ってるのでお願いします
0114デフォルトの名無しさん
NGNG0115デフォルトの名無しさん
NGNG適当なツール類を作る。内容はなんでもいい。
↓
サポートサイトを立ち上げる。
↓
サイト内でそのツールがいかに有用か、説きたおす。
↓
そのツールとあなた自身のファンサイトも作る。
↓
ある程度コンテンツが充実したら、ここにurlを貼る。
カナーリ気持ちのいいオナニーができるでしょう。
俺はキャラ的にそういうのは無理です(´・ω・`)
0116デフォルトの名無しさん
NGNGPrivate Sub Worksheet_Change(ByVal Target As Range)
test(Target)
End Sub
Private Sub test(ByVal aaa As Range)
〜〜〜
End Sub
ってやると
実行時エラー’424’:
オブジェクトが必要ですって・・・
Target はオブジェクトじゃないの?
0117デフォルトの名無しさん
NGNGtest Target
または
Call test(Target)
0118116
NGNGあっ
Callが必要だった・・・
ありがとうございます。
0119デフォルトの名無しさん
NGNG0120デフォルトの名無しさん
NGNG入門書から出直せ。
0121デフォルトの名無しさん
NGNG弦はストリングですよ〜、だ。
ストリングって何だ?となると、本来は Character String。
ひと続きの文字の並び。
んじゃDimは?とくれば、Dimensionの略。
昔のBasicでは配列の宣言にDimを使ってたけど、変数の宣言として統一された。
0122(=゚Д゚)
NGNG0123デフォルトの名無しさん
NGNGこういうやつって最低だよね
放置するわけでもなく「検索しろ」。おぉ、嫌だ
おまえみたいなゴミはこのスレにいらないから消えろ。そして市ね
0124デフォルトの名無しさん
NGNGおまえもゴミ
0125デフォルトの名無しさん
NGNG0126デフォルトの名無しさん
NGNGヘルプでDimを調べろ
0127デフォルトの名無しさん
NGNG放置するわけでもなく「検索しろ」。おぉ、嫌だ
おまえみたいなゴミはこのスレにいらないから消えろ。そして市ね
0128デフォルトの名無しさん
NGNG0129デフォルトの名無しさん
NGNG0130デフォルトの名無しさん
NGNG0131デフォルトの名無しさん
NGNGstrWeekday = Array("", "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday")
とはどのような意味なのでしょうか?教えていただければこれ幸いでございます。
0132デフォルトの名無しさん
NGNG0134デフォルトの名無しさん
NGNGstrDate = TextBox1.Text & "/" & TextBox2.Text & "/" & TextBox3.Text
とはどのような意味なのでしょうか?教えていただければこれ幸いでございます。
0135デフォルトの名無しさん
NGNGTextBox1.Text と "/" と TextBox2.Text と "/" と TextBox3.Text を
結合して strDate に代入してる。
つまり 年月日 の間に / を入れてひとつの文字列にまとめたわけだ。
で、次はこう書いてくるのかな?
If IsDate(strDate) = False Then
TextBox4.Text = "Error"
とはどのような意味なのでしょうか?
0136デフォルトの名無しさん
NGNGIf (strDate <> Format(strDate, "yyyy/mm/dd")) And _ (strDate <> Format(strDate, "yyyy/m/d")) Then
とはどのような意味なのでしょうか?
0137デフォルトの名無しさん
NGNGチンチン マチクタビレター ♪
♪ ☆ チチン
♪ .☆ マチクタビレター
☆ チン 〃 ∧_∧ ヽ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
ヽ ___\(・∀・ ) /\_/ < 回答マダー
チン \_/⊂ つ ‖ \__________
/ ̄ ̄ ̄ ̄ ̄ ̄ ̄/| ‖
|  ̄  ̄ ̄ ̄ ̄ ̄ ̄:| :| /|\
| |/
0138デフォルトの名無しさん
NGNGstrDateを西暦の年月日に変換して比較することにより、
年月日の入力が西暦で正しく行われているかチェックしている。
0139デフォルトの名無しさん
NGNGもう遅いよお前
死んでいいよ
0140デフォルトの名無しさん
NGNGまさか、136さんじゃないですよね・・
0141デフォルトの名無しさん
NGNG0142デフォルトの名無しさん
NGNGVBじゃなくてVBAだろ?正確に書けヴォケ。その手のサイトなんかぐぐったらいくらでもみつかるだろ。
0143デフォルトの名無しさん
NGNGつか、あなたの主張って、
わたしが理解できないのは、あなたの教え方が悪いからだ
ってやつですか?
0144デフォルトの名無しさん
NGNG0145デフォルトの名無しさん
NGNG本とかもリファレンス系しか買わなし、今はそれすら手元に無いな
0146デフォルトの名無しさん
NGNG0147デフォルトの名無しさん
NGNG長所:アプリケーション専用である
0148_
NGNGexcelでシート1を表示したままシート2のA1の関数をA10までコピーするにはどうすればいいのでしょうか
シートをアクティブにしてからなら、autofillやselection.copyがありますが、シート1を表示したまま
処理を行いたいのです
0149デフォルトの名無しさん
NGNGSub test()
Worksheets("Sheet1").Activate
Worksheets("Sheet2").Range("a1").Copy
ActiveSheet.Range("A1:A10").Activate
Paste
End Sub
でよいかな
0150デフォルトの名無しさん
NGNGOption Explicit
Sub ボタン1_Click()
Worksheets("Sheet1").Activate ' 別シートを表にしておくためで、不必要
With ThisWorkbook.Worksheets("Sheet2")
.Range("a2:a10").FormulaLocal = .Range("a1").FormulaLocal
End With
End Sub
0151デフォルトの名無しさん
NGNGOption 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デフォルトの名無しさん
NGNG0153148
NGNG>>150
>>151
ありがとうございました
助かりました
どうしても一人でやってると、煮詰まってしまって進まないんで
本当に助かりました
周りの人に聞いても「へ?VBA?エクセルの?シラネ」
で終わり
ありがとうございました
0154デフォルトの名無しさん
NGNGVBAで、
Range("BQ2").Formula = "=if(ISERROR(FIND(BQ$1,$I2)),"",find(bq$1,$i2))"
と言う風に、IF関数で、ヌルを条件によっては出力するような式を入力させたいのですが、
これって、""が途中で切られるのかエラーになってしまいます。
IF関数がtrueの場合の""の替わりに何かセルなどを参照させると問題ないのですが、
今のままではエラーになります。
どうしたらよいでしょうか。m(_ _)m
お教え下さいませ。
0155デフォルトの名無しさん
NGNG0156デフォルトの名無しさん
NGNGとやってエスケープさせる。
0157デフォルトの名無しさん
NGNGすいません、助かりました。ありがとうございます。m(_ _)m
0158デフォルトの名無しさん
NGNGWindows2000以前までなら、
Application.MailLogon
ActiveWorkbook.SendMail Recipients:=TargetSendMailOnly, Subject:=TargetFileName$
で、OutlookExpressで送信すること出来たのですが、WindowsXPで同じコードを走らせると、
メールソフト(OutlookExpress)を認識してくれません。
どうか教えてください、エライ人_| ̄|○
0159デフォルトの名無しさん
NGNG[ファイル] - [送信] のメニューが同じかどうか確認してみ
違ってりゃ MAPI.DLL だか MAPI32.DLL だかがないということだ
一番手っ取り早い解決法は Outlook をインスコ&アンインスコする
0160デフォルトの名無しさん
NGNG代入したいんですが何かいい手はありますか?
上記が実現できるならlParamの型は問いません。最終的にそれが文字列へのポインタが格納
された4Byteの整数型変数ならば。
0161デフォルトの名無しさん
NGNGlstrcpy, lstrlen, lstrcmp,lstcatあたりの関数は?
0162デフォルトの名無しさん
NGNG0163デフォルトの名無しさん
NGNGオイオイ、メモリ確保はどうす・・・・神!!!!
GlobalLockで得られた「Long型」の整数を引数にlstrcpyを呼んで、その後にlParamにその「Long型」の整数を代入すればいいのか。
兄貴!ありがとう!!
0164デフォルトの名無しさん
NGNG0165161,162
NGNG0166158
NGNG再インスコしたら、出来ました(つД`)
こ、こんなことで引っかかるなんて・・・・_| ̄|○
情けないので、吊ってきます。
ご指摘ありがとうございました。m(. .)m
0167デフォルトの名無しさん
NGNGVBAでフォームを動かしたまま、
セルに入力などをするにはどうすれば、
いいのですかね?
Excelの2000を使用しているます。
何卒お教えください。
0168デフォルトの名無しさん
NGNG項目に何を指定してよいのか分かりません。
例えば、"C:\data"フォルダの中にある全てのファイルを処理対象とする場合は、どのように書けばいいですか?
(実際の読み込み処理の部分は適当でかまいません)
0169デフォルトの名無しさん
NGNG0170デフォルトの名無しさん
NGNGHSPプログラムコンテスト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デフォルトの名無しさん
NGNGvbModeless
0172デフォルトの名無しさん
NGNGオオォ!
出来ましたありがとうございます
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.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.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デフォルトの名無しさん
NGNG0177デフォルトの名無しさん
NGNG.row = 3
0178177
NGNG0179デフォルトの名無しさん
NGNG違っているのではないかな? "表 (詳細)" とか。
0180デフォルトの名無しさん
NGNGちなみに、この時のエラーは
インデックスが有効範囲にありません。(Error 9)
0181周 レイ君
NGNGどうしたらいいかわかんない。
グーぐるでも検索したけどそれっぽい情報もない。
そこで、皆様に簡単なのでいいので、
無限ループのプログラム書いてほしいわけ。
お願いしますよー。
0182デフォルトの名無しさん
NGNGdo while(true)
loop
0183デフォルトの名無しさん
NGNG0184デフォルトの名無しさん
NGNG0185デフォルトの名無しさん
NGNGEXCELでサーバ作るのはおやめになって!
0186デフォルトの名無しさん
NGNG?
0187デフォルトの名無しさん
NGNGエクセルでサーバ?実用性は無いが作れない事も無いよなw
どうせやるならアクセスでサーバ作った方が無難だろ
0188デフォルトの名無しさん
NGNGパスワード解析やバックドアをつけるツールは売っていますが
これを使わずになんとかできないですか?
0189デフォルトの名無しさん
NGNG教えて悪さされても困るし・・・
0190デフォルトの名無しさん
NGNG0191デフォルトの名無しさん
NGNGそいつに聞けばいいかと・・・
死んだわけじゃないだろ?
0192デフォルトの名無しさん
NGNGパスワード聞いてからにすればよかった。
0193デフォルトの名無しさん
NGNGそうか・・・
イタコの力が必要だな
オカ板へGO!
0194デフォルトの名無しさん
NGNGないすあいであ
0195デフォルトの名無しさん
NGNG設計資料を拾うか、Excelのバグを拾うか、どちらかだね・・・
0196デフォルトの名無しさん
NGNG0197デフォルトの名無しさん
NGNGFileDialogはオフィスXPでないと使えないのでしょうか?
0198デフォルトの名無しさん
NGNG97とかでも使えるはず。
0199デフォルトの名無しさん
NGNGExcel限定な。
0200デフォルトの名無しさん
NGNG0201デフォルトの名無しさん
NGNGくらっくしたの?
0202デフォルトの名無しさん
NGNG買ったのか
尻くらいすぐ見つかると思うがな
0203デフォルトの名無しさん
NGNG本当です。
この目を見てください。
0204デフォルトの名無しさん
NGNG見えません。
0205デフォルトの名無しさん
NGNGかと言って使う相手にセキュリティを下げろとは言いにくいし・・・・
ローカル署名を作れるツールがOfficeに同梱されてるらしい事まではわかったんですが、
そこで手詰まりです。
どうすればいいでしょう?excel2000+Win2000+ie6です
0206デフォルトの名無しさん
NGNGの個所の意味が分かんない・・・
・・・ああ「めんどい」ではなくて「わかんない」なんだな。
意外と知らない人が多いので書いておく。次のテンプレに希望。
1. SELFCERT.EXE で名前を入れてデジタル署名を作る
2. Visual Basic Editor のツールメニューのデジタル署名でブックに署名
※ 標準モジュールかでマクロを書いておくこと
3. その署名入りのブックを実行するとセキュリティの警告が出るようになる
ので「この作成者のマクロを常に信頼する」チェックボックスをONにして、
マクロを有効にするボタンを選択してもらう
これでOK。
署名を削除するには「ツール(T)」->「マクロ(M)」->「セキュリティ(S)」の
信頼の置ける発行元で削除すればよい。
家のOfficeはXPだけど、会社の2000も同じ操作だったと記憶。
0207デフォルトの名無しさん
NGNGあぁありがとうございます。まさにソレです。
正直に「わからん」と書くべきでしたね。ゴメンナサイ
一度人に教えてもらったのですが、大分前の事で忘れてしまって・・・
今度からメモしておきます。
ありがとうございました!
0208デフォルトの名無しさん
NGNG0209デフォルトの名無しさん
NGNGはぁ?しょうもないこと言うとったらしばくアルよ?ボケ。
0210デフォルトの名無しさん
NGNG自分はgyo retu 。 なんか気恥ずかしい。
0211デフォルトの名無しさん
NGNGline, column
ln, cl
とかじゃダメ?
0212デフォルトの名無しさん
NGNGだったらi,jとかm,nとか
0213デフォルトの名無しさん
NGNG列 -> column -> col
0214デフォルトの名無しさん
NGNG変に凝った名前よりは判りやすくて良いと思うけど?
0215デフォルトの名無しさん
NGNG行はrowでは?
0216デフォルトの名無しさん
NGNGBook A の標準モジュールから
Book B の標準モジュールにある Public 変数の値を
参照したり書換えたりできるのでしょうか?
できるのであれば、どのように指定すれば
よいのでしょうか?
0217デフォルトの名無しさん
NGNGhttp://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それだ!!
0219デフォルトの名無しさん
NGNGどっかのセルに値を書き込んでそれを参照するようにしたら?
0220デフォルトの名無しさん
NGNGやっぱりそれしかないのかなぁ。
0221デフォルトの名無しさん
NGNGJavaでいう(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=220
NGNGすごい! できた。
処理を分岐させるスイッチなので
シート上には表示したくなかったのです。
感謝三唱。
ありがとうございました。
ありがとうございました。
ありがとうございました。
0223デフォルトの名無しさん
NGNGビソ板に帰れよ。
0224デフォルトの名無しさん
NGNGくやしい気持ちは分かるが、ここはム板だヨン。
0225教えてください
NGNGフォーカスが外れると元の色に戻す
というマクロを組みたいのですがどうもうまくいきません。
だれか助けてくださ〜い
0226デフォルトの名無しさん
NGNGの機能をマクロで実現するにはどのようにすればよろしいのでしょうか?
どなたか教えてください。
0227デフォルトの名無しさん
NGNG標準で色が変わるじゃん
0228山崎 渉
NGNG__∧_∧_
|( ^^ )| <寝るぽ(^^)
|\⌒⌒⌒\
\ |⌒⌒⌒~| 山崎渉
~ ̄ ̄ ̄ ̄
0229デフォルトの名無しさん
NGNG「マクロの記録」を実行して、ハイパーリンクの編集をやってみてよ
0231デフォルトの名無しさん
NGNGdo until (Col = "BF")
range(1,Col)
'--- ?
loop
同一行のカラムをひとつづつ右にアクセスするにはどうやればいいですか?
0232デフォルトの名無しさん
NGNGrange(1,Col)
'--- ?
Col = Col + 1
loop
まぁ、一歩間違えばあぼーんだが、これがないと始まらん。
0233デフォルトの名無しさん
NGNGwith ActiveSheet
Maxcol = .Columns("BF").Column
for c = 1 to MaxCol
.Cells(1,c).Value = "ゴルア"
Next
End With
0234デフォルトの名無しさん
NGNGFor Each Bar In CommandBars
Bar.Enabled = False
Next Bar
Application.DisplayFormulaBar = False
ActiveWindow.DisplayHeadings = False
0235234
NGNG続き
上のやつを実行した後に、
ワークシートに貼り付けたコマンドボタンクリックで
別のシートを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デフォルトの名無しさん
NGNGVBAとは関係ないようですが・・・一応答えておきましょう。
「形式を選択して貼り付け」で「値」を選択。
以上!
0238デフォルトの名無しさん
NGNGdebug.? "ゴルア"
Loop
0239デフォルトの名無しさん
NGNGConst 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デフォルトの名無しさん
NGNG237は却下ですか・・・ではこんなところで。
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ごめん。Sheets("Sheet1").Selectはいらなかった。デバッグ用に使ったの残ってたでし。
0242デフォルトの名無しさん
NGNGつくづくレベルの低い方だな・・・。
0243デフォルトの名無しさん
NGNGレベルが低いと思う理由、または、
自分で書いたコードを乗せて欲しいな・・・
236のレベルなら、これで十分と思うが。
0244デフォルトの名無しさん
NGNG0245デフォルトの名無しさん
NGNG>>237 が正解と思われ。
0246_
NGNGexcelVBAのフォームにリストボックスを作りました
リストには2列表示させたいのですが、どうすればいいのでしょうか
ColumnCount を 2に設定したのまではいいのですが、それぞれの列に値を入れることが出来ません
&でつなげて見た目には2列にすることは出来ますが
1列目のデータが10文字だったり20文字だったりしますのでずれてしまうのです
教えてください、お願いします
0247デフォルトの名無しさん
NGNGListView使うのが良いと思うよ。
0248246
NGNG早速の回答ありがとうございます
YaHOOで検索したところ
ListViewというのは何かのツールのようですが(現在も調べ中)
出来ればどノーマルのexcel2000,excel97で動かしたのです
0249デフォルトの名無しさん
NGNG0250デフォルトの名無しさん
NGNG載ってないと思われ。
0251デフォルトの名無しさん
NGNG0252246
NGNGOCXのようですね
配布を考えてますので、オフィスがデフォルトの状態で使いたいのですが・・・
Colmnは設定できるのに表示が出来ないとは思えないので
何かやり方があるはずだと思うのですが
0253デフォルトの名無しさん
NGNGExcelXPにはあるのにね。
一番初心者臭いのは
Len関数で文字数カウント→差分を" "で埋めるとか
0254デフォルトの名無しさん
NGNGできる。
ListboxのヘルプのColumnプロパティ or Listプロパティ
を読んでみれ。
0255246
NGNGadditemで一軒ずつ取込むのではなく
arrayに取込んでから一気にlistで取込むということで合ってますでしょうか?
0256246
NGNG0257名無し@沢村
NGNG0258デフォルトの名無しさん
NGNG0259246
NGNGですが、ヘタレなのは私だけなんで「たち」はやめて頂けませんでしょうか
>>258さん
そうです。最初はVBで作ってたのですが配布直前に「操作がよくわからんからエクセルで」といわれました
エクセルでよくやるコピー&ペーストや画面に合わせての拡大縮小などなどがないことが不満のようです
エクセルにした方がのちのち大変なことになるのはわかってるのですが
「やれ」と言われればやらなければいけない環境(説得出来る状況じゃないんですね、客先のほうが圧倒的に強いので)なので
エクセルで作ってます
多分というか絶対あとで大変なことになりますね
0260246
NGNGレスくれた皆さんありがとうございました
0261デフォルトの名無しさん
NGNG指定したディレクトリ下のファイルリスト情報が欲しいのですが、、、、
ShellでDIR叩いてリダイレクトでファイル作って解析するしか無いのでしょうか・・
正直困ってます。。
0262デフォルトの名無しさん
NGNGDir()関数
0263デフォルトの名無しさん
NGNGあれ、再帰するとなぜかページ違反を起こすので、個人的にはファイルシステムオブジェクトを勧めるよ。
0264デフォルトの名無しさん
NGNG横から申し訳ないけど、教えていただけ無いでしょうか。私もぜひそれを知りたいので、よろしくおながいします。
0265デフォルトの名無しさん
NGNGExcelで使えたっけ?
0266デフォルトの名無しさん
NGNG使えたよ。
0267デフォルトの名無しさん
NGNGhttp://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山崎 渉
NGNG0269デフォルトの名無しさん
NGNGWsh5.6とか入れさせなきゃダメかな。
0270デフォルトの名無しさん
NGNGフォームをモーダレス表示した直後に、Excelの方にフォーカスを戻すにはどうすればいいでしょうか?
0271デフォルトの名無しさん
NGNG0272デフォルトの名無しさん
NGNGform.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直リン
NGNG0275安全地帯
NGNG0276デフォルトの名無しさん
NGNGちょっと強引に(あまりやらないほうがいいが)
form.Show vbModelessの後に
AppActivate "Microsoft Excel"
とか・・・
0277デフォルトの名無しさん
NGNGばっちり成功しました。
Excel2000とかだと同名のファイルは同時に開けないようになっているので、ファイル名まで決め打ちすればOKっぽいです。
0278デフォルトの名無しさん
NGNGそれによってボタンを押した際の動作を変えるようなマクロを作りたいのですが・・・・・
’ボタンを押すと呼ばれる処理
If ThisWorkbook = active then
'通常の処理
else
MsgBox "ブックを最前面に表示してください"
End If
こんな感じでいけるか?と適当に作ってみましたが、動きませんでした。(当たり前)
よろしければご指導下さいな。
0279デフォルトの名無しさん
NGNGActiveWindow.Name = "xxx.xls"
でいけるんじゃないの?
0280デフォルトの名無しさん
NGNGYYYYMMDDという8桁の固定長テキスト領域がありまして、それの
有効性を判断したいのですが、なんか上手く機能してくれません。
YYMMDDの領域には"01000101"〜"99991231"という数値文字列の範囲で
あればTrue。それ以外ならFalseということで動かしたいのですが、
文字列をそのまま比較演算をすると"0abcefg1"とか"9999abc1"もTrueになります。
Val関数で変換して比較すると"1000101"と"01000101"は等価になり、
Trueになってしまいます。
なんか巧いやり方って無いでしょうか?
当方Excel2000SP2の環境です。
0281デフォルトの名無しさん
NGNGif len(data) = 8 And Val(data) >= 1000101 And Val(data) <= 99991231 then
0282278
NGNGそうか、名前を見ればいいんですね〜。
というわけで
If ActiveWorkbook.Name = ThisWorkbook.Name Then
とすることで、無事に期待した通りの動きをしてくれました。
ありがとうございます!
0283デフォルトの名無しさん
NGNGStringのまま比較するから無理があるのです。
日付に変換してチェックすればよい。
0284280
NGNGやっぱりそうなりますか・・・。
Cだったらchar配列でクルクルと比較すれば簡単なのですが、
VBAだと難しいんですね。
>>283
以前に試したときには
CDate(Format(Val(data.date), "#000/00/00"))
という感じでCDateしてみたのですが、この場合ストレートに
数値文字列が来ないと「型が一致しない」とされてエラー
ハンドルに手間がかかってしまい別の手段を探していました。
とりあえずLenで処理してみます。
ありがとうございました。
0285デフォルトの名無しさん
NGNG> Cだったらchar配列でクルクルと比較すれば簡単なのですが、
chr(a)
a = Right(a,Len(a) - 1)
0286デフォルトの名無しさん
NGNG0287デフォルトの名無しさん
NGNGWorkBooks.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デフォルトの名無しさん
NGNGApplication.GetSaveAsFilename
0289デフォルトの名無しさん
NGNGCDateではなくて、IsDateを使えばよいのでは
0290287
NGNGできました!
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で回避する方法がさっぱり分かりません(汗
真偽値なり定数なり、なんらかのメッセージを返して来てるとは思うんですが、
一体何が返ってくるのか分からないので、困っています。
宜しければご教授お願いします〜・・・
0291287
NGNGこいつをトラップしてやればいいんですね。
お騒がせしました。
0292デフォルトの名無しさん
NGNGname=の行も直しておいたほうがいいと思いますよ
0293280
NGNGあっ・・・そうか。
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早いマシンを買え。
0296283=289
NGNG私なら以下のような関数にします。
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ヘルプか入門書見ろよ
Googleでもすぐ見つかるぞ
0299デフォルトの名無しさん
NGNGPrivate 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デフォルトの名無しさん
NGNGCellへの入力をComboBoxのリストの中から選択できるようにしたいんだけど
0301デフォルトの名無しさん
NGNGなぜ、やってみようと思わないのか。
0302デフォルトの名無しさん
NGNGVBAのHelp調べてそれらしいプロパティを調べたり
ぐぐってみたけどそれらしいのがない。
0303デフォルトの名無しさん
NGNG0304デフォルトの名無しさん
NGNGサンスコ おかげででできました。
ホント厨房な質問して迷惑かけてスマン
0305293
NGNGたびたびご指摘ありがとうございます。
>月末が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デフォルトの名無しさん
NGNGB1=1
C1=2
D1=3
を
E1に123と並べる式を教えてください
0308283=289=296
NGNG誤
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=308
NGNG以下も必要かな
If (InStr(1,strDate,"+") > 0) Or (InStr(1,strDate,"-") > 0) Then
Exit Function
End If
0310293
NGNG要件として終わったことに長々と指摘してくれたところで申し訳ないのですが、あなたの指摘で的確な部分は
>IsDateでチェックしたあとなら、9999/12/31より大きな日付になることはないので
これだけです。これは私の確認不足でした。
>IsNumericは1文字ごとに行う必要無い。ヘルプ嫁
あなたはヘルプ以前に要件を確認しましょうね。
例えば"001000"だけがTrueとなる必要がある場合でも、あなたのやり方では
"01,000"も" 1000"も"1000.0"も等価になります。
それらや算術記号を回避するために延々とinstr並べるってんですか?
そんな不細工なコーディングする感覚で良く平気ですね。メリットないでしょ。
それにダメ出ししているLen使ってたところとか、いつの間にか無意味に
日付型で大小比較してたりするところを無かったことにしてるところとか
見る限りでは「なんだかな〜」だし。
なんでこっちが敢えて使わないのかすら推量できない想像力。
あなた自分では出来るつもりなんでしょうけど、ハッキリ言うとプログラムのセンス無いですよ。
0311309
NGNGIsNumericの扱いは私の考えが足りてませんでした。
他人が真剣に考えているのに、思いつきで口を出すべきではありませんでした。
今回の件は私も勉強になりました。
0312デフォルトの名無しさん
NGNG0313デフォルトの名無しさん
NGNGExcel自体の方はunicodeなので(不満は残るけど)一応両方扱えるのですが、
肝心のVBAが、どうも単一の言語しか想定してない仕様みたいですね。
例えば Worksheets("シート名")のようなのが、日本語版Excelで作ると
中国語版のExcelで動かないし、逆もまた然りです。
この辺うまく対処している方がいたら、どうしているか教えて下さい。
0314313
NGNGVBAの部分をunicodeではなくSJISだとかBig5だとかのローカルコードで
持っているような気がします。なので、
> 例えば Worksheets("シート名")のようなのが、日本語版Excelで作ると
「シート名」の部分を日中どちらの文字セットでも使える漢字にしても、
SJISとBig5では同じコードに違う文字が対応するので、SJISで作っても
中国語版Excelに持っていくとVBAのエディタでは化けてしまいます。
日本語版ExcelのVBAエディタの「オプション」でBig5なフォント(MinLiU
だったか、そんな名前)にすると、中国語で書いたVBAコードがきちんと読めるの
ですが、それでもなお Worksheets("中国語名") みたいなので範囲外エラーに
なってしまうのが謎です。
また、プッシュボタンから呼び出すマクロではエラーになるのに、ワークシート
関数の中で使っている分にはエラーにならない、というのが更に謎で、もうわけ
がわかりません。
0315デフォルトの名無しさん
NGNGと、言うかフォント入れてないだけだったり名。
0316デフォルトの名無しさん
NGNGVBA使ったこと無いけど、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>UNICODEって、ページ指定出来なきゃ複数言語は混在でけんでしょ。
なんのためのUnicodeだとこ一時間
0319デフォルトの名無しさん
NGNGdim bytevariable(32) as byte
0320デフォルトの名無しさん
NGNGdim bytevariable(32) as byte
get #fil,,bytevariable
str = Strconv(StrConv(bytevariable,vbunicode),vbfromunicode)
0321デフォルトの名無しさん
NGNGXP で EXCEL2002 VBA をコーデイング途中 EXCEL が固まってしまいました。
強制終了させて VBA のファイルを開くと EXCEL が固まります。
・EXCELを起動しファイル回復しても「ダメージが大きい」でダメ
・スキャンディスクしたが回復せず
・WORD で開いたがブックのデータだけでマクロはダメ
壊れたxlsファイルをテキストで開くとコードは残っているようなので
ツールか何かあれば回復しそうです。
(1つのソースコードだけ回復すればいいのですが・・)
業者に頼んでもいいですが、何かいい方法はあるでしょうか?
0322321
NGNGバージョン違いのEXCELで読めばコードが出てきました
失礼致しました
0323_
NGNG0324デフォルトの名無しさん
NGNGlstrcpy(StrPtr(str),array(0))
0325デフォルトの名無しさん
NGNG起動させる仕様にしたいのですが、よく分かりません。
指定したフォルダの中にあるすべてのファイルを起動させる方法や、同じ
フォルダの中のひとつの指定したファイルを開くことはできたのですが、
前述した仕様にだけはどうしてもできませんでした。
初心者で申し訳ありませんが、どうしても知りたいので、誰か分かる方が
いましたら教えてください、よろしくお願いします。
0326デフォルトの名無しさん
NGNGループで回す
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死ねクソマルチ。
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を増やさなければならず、
結果的に不格好なプログラムになってしまうと思うんです。
何か旨い方法(簡略なコード)ってないですかねぇ。。。
必要に迫られているわけではないのですが、いったん考え出すと気になってしまって。
0329328
NGNG0330デフォルトの名無しさん
NGNGpublic function arr(CharCount as Long,CharIndex as Long)
ってちょっと待て!パスワードクラッカーじゃねぇか!!
0331328
NGNG早い話自分で作ったPass付Zipのパスを忘れてしまいまして。
でも朧気に使用した単語は憶えていたのでこんなことを考えてました。
寧ろ今はコードだけが頭の中をグルグル回っている状態で。。。
が、問題ある様なので無視してください。
スミマセンでした。
0332デフォルトの名無しさん
NGNGあるサイトで組み合わせについて書いてあったのが以下のやつ
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
0334328
NGNGちょっと読んでみます。
まだVBAかじって間もないので時間かかりますが。。。
そう、今回は再帰ってのが使えるのでは無いかと思い、
sub a(云々)
call a(云々)
end sub
というのが使えるのではないかと勝手に思案してました。
0335デフォルトの名無しさん
NGNGを再生したくて次の処理を書いたのですが再生できません(オブジェクトが一瞬アクティブ
になりますが、再生できませんです)。
なぜでしょうか、もっと良い方法をご存知のかた、教えてください。
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再生処理は?
0337335
NGNGすみません、マクロを記録した結果から作っただけでして、良くわかっていません。
自動記録の際には、メディアクリップオブジェクトを選択して、
さらにクリックしたら、再生されました。
その際の記録から、335に書いた下の処理で再生できるはずと思ってました。
ActiveSheet.Shapes("Object 4").Select
Selection.Verb Verb:=xlPrimary
なにか、足りないのでしょうか?
(努力が足りないのは、わかってます。教えてクンで申しわけないです)
0338デフォルトの名無しさん
NGNG>メディアクリップオブジェクトを選択して、
>さらにクリック
この部分は記録されないようだね。
0339335
NGNGん〜、もうちょっと勉強します。
0340デフォルトの名無しさん
NGNG0341山崎 渉
NGNG│ ^ ^ │<これからも僕を応援して下さいね(^^)。
⊂| |つ
(_)(_) 山崎パン
0342デフォルトの名無しさん
NGNG0343デフォルトの名無しさん
NGNGBook1で作成したシートを、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消えないシートが涌くな・・・
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デフォルトの名無しさん
NGNGVBAには無かったような・・・。
0347デフォルトの名無しさん
NGNGWindowハンドルも取得できないはずなので絶望的ですな。
■ このスレッドは過去ログ倉庫に格納されています