Excel VBA質問スレ Pa ..
162:デフォルトの名無しさん
09/03/09 21:42:03
>>161
alt+f11
163:デフォルトの名無しさん
09/03/09 22:48:59
1万件Union、素人なりにがんばってみますた。うちのネットブックで6秒です。Core2のデスクトップなら2、3秒でしょう。
掲示板の行数制限とかあるんで配列の大きさとループの回数を定数にしたんで汎用性ゼロです。
Declare Function timeGetTime Lib "winmm.dll" () As Long
Sub aaa()
T1 = timeGetTime()
ScreenUpdating = False
Dim a(270) As String
Dim si As Integer
Dim s As String
For i = 1 To 10000
w = "A" & (i * 6 - 3)
If Len(s & w) <= 255 Then
s = s & w & ","
Else
a(si) = Left(s, Len(s) - 1)
si = si + 1
s = w & ","
End If
Next
a(si) = Left(s, Len(s) - 1)
Set r = Range(a(0))
For i = 1 To 233 Step 29
Set r = Union(r, Range(a(i)), Range(a(i + 1)), Range(a(i + 2)), Range(a(i + 3)), Range(a(i + 4)), Range(a(i + 5)), Range(a(i + 6)), Range(a(i + 7)), Range(a(i + 8)), Range(a(i + 9)), Range(a(i + 10)), _
Range(a(i + 11)), Range(a(i + 12)), Range(a(i + 13)), Range(a(i + 14)), Range(a(i + 15)), Range(a(i + 16)), Range(a(i + 17)), Range(a(i + 18)), Range(a(i + 19)), Range(a(i + 20)), Range(a(i + 21)), _
Range(a(i + 22)), Range(a(i + 23)), Range(a(i + 24)), Range(a(i + 25)), Range(a(i + 26)), Range(a(i + 27)), Range(a(i + 28)))
Next
Set r = Union(r, Range(a(262)), Range(a(263)), Range(a(264)), Range(a(265)), Range(a(266)), Range(a(267)), Range(a(268)), Range(a(269)), Range(a(270)))
Cells(1, 2) = ((timeGetTime() - T1) / 1000) & "秒"
r.Value = "うにお" '念のためテストデータ書き込み
ScreenUpdating = True
End Sub
164:デフォルトの名無しさん
09/03/09 23:52:12
下記のInputBoxでキャンセルしたとき
「実行時エラー'424': オブジェクトが必要です。」のエラーがでるんだけど
後続のIf文で MsgBox "NG" の処理をさせるにはどうコーディングすればいいですか?
そもそも使い方間違ってる?
Public Sub test()
Dim c As Range
Set c = Application.InputBox("", Type:=8)
If c Is Nothing Then
MsgBox "NG"
Else
MsgBox "OK"
End If
End Sub
165:デフォルトの名無しさん
09/03/09 23:58:25
on error resume next
166:デフォルトの名無しさん
09/03/10 00:07:27
>>165
うまくいきました、ありがとうございます
質問なんですけど、Object型変数が空になるケースがある判定では
On Error Resume Next を事前に書いておくのが一般的なんですか?
167:デフォルトの名無しさん
09/03/10 00:31:01
ふつうなんじゃね?variant で受けて
168:デフォルトの名無しさん
09/03/10 00:32:06
もとい
普通なんじゃね?
variantで受けて、isobjectとかで分けても、たいして良いこと無いだろうし。
169:166
09/03/10 00:49:51
>>168
わかりました、ありがとうございます
variantで受けて、isobjectとかで分けて〜とかもよくわからないので
もうちょい調べてみます
170:デフォルトの名無しさん
09/03/10 16:05:01
Application.Cursor = xlWait
でマウスポインタが砂時計にならないのって
どういう原因が考えられるでしょうか?
171:デフォルトの名無しさん
09/03/10 17:01:30
砂時計を表示するまでも無いほど短時間で終了する処理を実行した場合
172:デフォルトの名無しさん
09/03/10 20:28:06
>>163
ScreenUpdating = Falseってなんや?
変数の宣言は強制せなあかん。
173:デフォルトの名無しさん
09/03/10 20:32:27
Application.ScrenUpdating = False
174:デフォルトの名無しさん
09/03/10 20:51:41
Application.ScrenUpdating = False は無意味だがOption Exolicit書いてないとScrenUpdating = Falseでも動くんだよなw
今回はチラチラする処理じゃないからたまたま気がつかないかも知らんが、チラチラする処理だと「何で?」となる。
175:デフォルトの名無しさん
09/03/10 21:06:33
質問です。
ブックオープン時に指定フォルダのvalueを
単純にボタンのキャプションに代入して表示させようと思ったんですが、上手くいきません。
オブジェクトが不正だと言われるんですが何故でしょう。
ボタンダウンの機能として全く同じコードを記述すると問題なく動くんですが。。
176:デフォルトの名無しさん
09/03/10 21:07:29
↑
フォルダじゃなくセルでした。
177:デフォルトの名無しさん
09/03/10 21:17:59
>>173
ScreenUpdating = False
だと「表示更新を止める」ではなく
ScreenUpdatingというユーザー定義変数に
Falseを代入するって動作になるって話だろ
しかも表示更新は最後の1回のみなので
表示更新止めても1回、止めなくても1回で意味無い
しかも汎用性無さ過ぎで無価値すぎて泣けてくる
178:デフォルトの名無しさん
09/03/10 23:56:21
上のソースコードです。
Private Sub Workbook_Open()
Dim SH As Worksheet
Set SH = ThisWorkbook.Worksheets("Sheet2")
CommandButton1.Caption = SH.Range(SH.Cells(3, 2), SH.Cells(3, 2)).Value
End Sub
ThisWorkbook(コード)内に記述しています。
色々調べてはみたんですが、どうしても「CommandButton1.Caption〜」の
ところでエラーが出てしまいます。
どうかご教授願います。
179:デフォルトの名無しさん
09/03/11 00:00:39
バリューじゃなく
テキストにしたら
180:デフォルトの名無しさん
09/03/11 00:07:48
今度は変数が定義されていないと言われまた出来ませんでした。。。
181:デフォルトの名無しさん
09/03/11 00:10:48
>>178
そのソースまんまコピペして実行したら、エラー出ずにちゃんと設定されたぞ
182:デフォルトの名無しさん
09/03/11 00:13:32
>>181
一つ書き忘れていました。
sheet1にボタンがあって、
sheet2のセルから文字を読み込みたいんです。
自分はやはり同じくエラーになるんですが。。。
183:デフォルトの名無しさん
09/03/11 00:20:12
CommandButtonを配置してるシートにコードを書きましょう
184:デフォルトの名無しさん
09/03/11 00:22:06
>>183
そうするとブックを開いたとき、自動的に読み込まれなくなりません?
モジュールにcaption読み込むコード書いてcallしても同じくエラーでちゃうし・・・
185:デフォルトの名無しさん
09/03/11 00:27:14
何バカいってるんだw
186:デフォルトの名無しさん
09/03/11 00:28:14
>>184
すまね、ぜんぜん読んでなかったよ
Worksheets("Sheet1").CommandButton1.Caption = SH.Range〜 に
どのシートにあるボタンかを指定しないと
187:デフォルトの名無しさん
09/03/11 00:30:23
それはボタンがあるのがsheet1だから
sheet1(コード)に>>178をそのまま書けって事ですか?
中にmsgbox追加してみたんですが、動いてないんですが・・・
188:デフォルトの名無しさん
09/03/11 00:31:54
>>186
ボタンもシートの指定が必要なんですね。。
おかげでやっとうまくいきました。
遅くまでありがとうございます!
189:デフォルトの名無しさん
09/03/11 07:28:42
>>177
汎用性がどうのこうのって、Unionを使うこと自体がだめだよ。
いくら工夫したってだんだん入れ物を多きくしていくことに変わりはない。
Unionでまとめて処理するより、小分けに処理した方が速ければ何の意味もない。
だいたいUnionが必要な時ってほとんどないだろ?
まともなやつは使わんよ。
190:デフォルトの名無しさん
09/03/11 07:38:38
的外れな回答ばっかだなw
CommandButton1.Caption = SH.Range(SH.Cells(3, 2), SH.Cells(3, 2)).Value
なんてのが動くのかよ。
同じセルを指定したとき動くか動かないか試してないが、常識的には
CommandButton1.Caption =SH.Cells(3, 2),Value
もしB3にアドレスを書いてるのであれば
CommandButton1.Caption = SH.Range(SH.Cells(3, 2).Value).Value
のどちらかだろ?
191:デフォルトの名無しさん
09/03/11 07:42:07
すまん>>190の1行目は取り消す。
ThisWorkbookにのOpenイベントだったのかよ。
それじゃ当然だめだよな。
192:デフォルトの名無しさん
09/03/11 07:55:19
久々に来たが初心者ばっかになったのかw
193:デフォルトの名無しさん
09/03/11 07:57:05
>>189とかな
194:デフォルトの名無しさん
09/03/11 07:58:00
178のように同じセルを指定すると動くみたいだな。
MsgBox Range(Cells(3, 2),Cells(3, 2)).Value
で動くには動くけど無駄だから
MsgBox Cells(3, 2).Value
とするのがjsk
195:デフォルトの名無しさん
09/03/11 07:59:28
>>192
>>193とかなw
196:デフォルトの名無しさん
09/03/11 08:01:31
>>193は相談書でUnionで許容範囲内で出来るとか言ってた馬鹿かも知らん。
Union使わなきゃもっと速く出来るだろ?
197:デフォルトの名無しさん
09/03/11 08:17:20
可哀相な奴
198:デフォルトの名無しさん
09/03/11 08:19:08
あの基本が出来てないやつかも知らんねぇ。
199:デフォルトの名無しさん
09/03/11 08:22:16
なんでこの子の書き込みはこんなに解りやすいんだ?
200:デフォルトの名無しさん
09/03/11 08:22:35
たとえばオブジェクト変数は値渡しとかな。
201:デフォルトの名無しさん
09/03/11 08:26:43
止まったなw
202:デフォルトの名無しさん
09/03/11 08:38:42
自分のこと言われてるのに気付いてないw
203:デフォルトの名無しさん
09/03/11 11:20:37
a
204:デフォルトの名無しさん
09/03/11 11:24:10
現在Sheet1がアクティブのときに、
Sheet2の行3にデータが何列目まで入っているか知りたいのです。
アクティブなシートなら、マクロの記録で
Set ws = Worksheets(2)
ws.Cells(3, 256).Select
Selection.End(xlToLeft).Select
col = Selection.Column
みたいにして、データが入っている最後の列colを取得できたのですが、
Sheet2をアクティブにせずにやるとエラーします。
どうしたらいいでしょうか?
205:デフォルトの名無しさん
09/03/11 11:36:43
selectするからエラーがでるんではないの
206:デフォルトの名無しさん
09/03/11 20:23:52
selectしない書き方。
selectとselectionを削ってつなげると出来上がり。
col = ws.Cells(3, 256).End(xlToLeft).Column
207:デフォルトの名無しさん
09/03/11 21:24:54
マクロ内で生成したオートシェイプを
右クリックしたときにマクロを起動させることは可能ですか?
左クリックならOnActionプロパティに関数を入力すればOKですが
右クリックやダブルクリックはどうしたら良いのでしょうか?
208:デフォルトの名無しさん
09/03/11 22:13:07
セルに入力されている日付(2009/03/11)を参照して
ファイル名(200090311.xls)をつけsheet(2)を移動して保存したいのですがどうすれば良いですか?
209:デフォルトの名無しさん
09/03/11 22:30:07
>>208
君が書いてることを、日本語ではなくVBA語で書けば良いだけだよ
210:デフォルトの名無しさん
09/03/11 22:35:09
VBA語(笑)
211:デフォルトの名無しさん
09/03/11 23:43:29
with ActiveWorkbook
.Sheets(2).Move
Workbooks(Workbooks.Count).SaveAs .Path & Replace(ActiveCell, "/", "") & ".xls"
end with
テストしてないから動くかわからん
212:デフォルトの名無しさん
09/03/11 23:47:37
あ、.Path は .Path & "\" & にしておいてね。
まあ、保存場所は好きなのにしたほうがいいけど。
次のOfficeが出るまで買わないことにしたのでOfficeが手元にない(´・ω・)
213:デフォルトの名無しさん
09/03/12 00:53:59
まずセルに5をいれます その時に他に指定したセルに下一桁増やした5.9とゆう数字をいれたいです
また5.5なら5.51とか5.59を他のセルにいれたいです VBA可能でしょうか?またどのようにしたらよいでしょうか?
214:デフォルトの名無しさん
09/03/12 00:54:59
日本語があやしいね
215:デフォルトの名無しさん
09/03/12 01:05:13
5.9とゆう
216:デフォルトの名無しさん
09/03/12 01:10:05
>>213
イベントで、結果セル = 結果セル & 入力セル
あとは>>1★5
217:デフォルトの名無しさん
09/03/12 09:44:12
自己流で色々組んでいるのですが、プログラムをユーザーフォームに全て打ち込んでいます。
標準モジュールに打ち込んだ方が良いのでしょうか?
218:デフォルトの名無しさん
09/03/12 10:03:37
そんなの使い分けだよ
全てを対象に、必ずしもどっちかが良いなんてことは無い
あとはクラスも仲間に入れてやれ
219:デフォルトの名無しさん
09/03/12 19:56:41
追加したシートの取得の仕方がわかりません
どうやって今作成したばかりのシートを取得したらよいでしょうか?
220:デフォルトの名無しさん
09/03/12 20:22:39
オブジェクト変数に取得したいってこと?
それなら追加するとき取得します。
Set newsheet = WorkSheets.Add
追加したあとで取得は俺には分らん。
221:デフォルトの名無しさん
09/03/12 20:34:32
おお、Setってやらないと入らないんですね
ありがとうございます
222:デフォルトの名無しさん
09/03/12 20:39:01
Setをわざわざ使うのは、Set無しで書いてしまった場合
オブジェクトのデフォルトプロパティへの代入及び呼び出しを意味してしまうから。
他言語から入ってきた人間だと間違いやすいね。
223:デフォルトの名無しさん
09/03/12 20:41:02
追加したあとでの取得だが、もしシートのCodeNmaeをいじってなきゃ可能だな。
各シートのCodeNameからSheetの部分を削って、数字を数値に変換して一番大きなのがそうだ。
224:デフォルトの名無しさん
09/03/12 22:17:10
VBA は初心者です.いま,Excel の Add-In を作っています.
標準コードモジュールに Function を書くと Public/Private によらず
UDF としてプロジェクトの外から参照できてしまうのがうれしくありません.
Function を UDF として公開せずに,
プロジェクト内だけで visible にする方法はありますか?
理由は,意図しない名前空間の汚染を避けたいからです.
Function を ThisWokrbook や Wokrsheet オブジェクト上に置くなど,
論理的な意味が変わってしまうような代替案は NG とさせてください.
また,Application.Caller を調べて,VBA プロジェクト内からの呼び出しか,
ワークシート関数による呼び出しかを区別して,後者を禁止することは可能ですが,
名前は見えたままという意味では同じことです.
なお,Excel のバージョンや OS は特に指定しませんが,
できるだけ cross-platform なアプローチが望ましいです.
225:デフォルトの名無しさん
09/03/12 22:55:55
>>224
マクロの一覧に名前が出ないようにするだけならOption Private Module
完全に使えなくする方法は知らん
226:デフォルトの名無しさん
09/03/12 23:00:39
質問です。
シートにボタンを設置し、ユーザにはどこかセルにファイル等のパスを入力しておけば、
そのボタンからそのパスのファイルを開けるようにしたくコードを作成しています。
今分からないのが、そのパスにエクセルのファイル以外を入力された場合の回避の仕方です。
現状では、ただのstring型にパスを読み込んで受け渡してます。
一応、dir関数を使い、ファイルの有無は調べてオープンしてます。
また、フォルダとファイルのオープンを指定できるようにしたいんですが、
これも1を指定したらファイル、0はフォルダ、みたくしたいんですが、
この場合も0なのにファイルとかの場合のエラー回避がうまくいきません。
どうかご教授願います。
227:デフォルトの名無しさん
09/03/12 23:01:17
キモイ句読点に、アホっぽい半英語。
該当する人物像は、・・・釣り?
228:デフォルトの名無しさん
09/03/12 23:05:53
VBA はnewbieです.now then,Excel の Add-In をcreating.
Standard Code Moduleに Function をWrittenすると Public/Private にwithout
as UDF としてoutside projectからreferableのがnot good.
Function を UDF としてopenせずに,
just inside project で visible にするwayはthere exists?
because は,not intendedしないnamespaceのpollutionをwanna avoid.
Function を ThisWokrbook や Wokrsheet onto Object or,
logicalなmeaningがhas changedなようなalternative ideaは NG とnot acceptable.
and,Application.Caller をlookup,VBA project内からのinvokeか,
by worksheet function invocation かをcut offして,successor を
restictすることはpossibleですが,
nameはis still visibleというmeaningではsame entirely.
you see,Excel のversionや OS はespeciallyにspecifyしませんが,
as youcan cross-platform なapproachがwe need.
229:デフォルトの名無しさん
09/03/12 23:16:52
>>227
>キモイ句読点に、アホっぽい半英語。
どこが?ごく普通に見えるが。
まぁ考えても分からないただ煽るしか出来ない無能なお前は引っ込んでろ。
俺は考えるのはいいがすぐには分からん
230:デフォルトの名無しさん
09/03/12 23:23:41
おれも>>226のことだと思って「なんだ荒らしか」とおもってたら
>>224のことだとわかって納得した
231:デフォルトの名無しさん
09/03/12 23:25:26
まぁプログラム板で釣りか?とか言ってくるやつは大抵知識もなくそいつが釣り
232:デフォルトの名無しさん
09/03/12 23:29:02
together しようぜ!
233:デフォルトの名無しさん
09/03/12 23:39:16
> まぁプログラム板で釣りか?とか言ってくるやつは大抵知識もなくそいつが釣り
とか言ってくるやつは大抵バカにされて悔しかった本人
234:デフォルトの名無しさん
09/03/13 07:21:32
>>226
通常はFileOpenDialogを使用して、ファイルを選択するんじゃない?
それなら、拡張子やOpenエラー等が解決できる気がする。
それ以外ならWin32APIでファイル属性の確認や、
マジックナンバー調べてファイル別の処理とか。
面倒だから極力やらんけど。
煽りが多いようだがガンガレ!
235:デフォルトの名無しさん
09/03/13 07:45:20
>>234
ありがとうございます。
しかしdialogを使うのは毎回自分でファイルの位置を探したり
選択しなきゃいけなくなりますよね?
その手間を省く為に、一つのシートに開くボタンをいくつかまとめて作って
パスを自分で指定したらそれっきりいつでも開けるようにしたいんです。
236:デフォルトの名無しさん
09/03/13 07:53:03
>>235
俺ならこーするかな?それしかなくね?
@ユーザー入力部分に制限。不正ファイル指定不可。
Aファイル/フォルダ判断はWin32API。FileSystemObjectでもいけるかな?
まぁ、何かしらの制限を強いるしかないでしょ。多分。
237:デフォルトの名無しさん
09/03/13 08:32:56
>>236
ちょっと始めたばかりの自分にはレベルが高すぎですかね。。。
ちなみに入力制限は、普通にセルに入力させたいんですが、
それはエクセルに規則制限の設定があるって事ですか?
238:デフォルトの名無しさん
09/03/13 08:36:58
>>237
シート入力制限(Excel)&入力インターフェースとエラー制限(VBA)だよ。
初心者さんには厳しいかもしれんね・・・
内容見てると、VBAよりも運用で逃げれそうな面が多いので、
Projectに制限がないなら、運用/仕様で逃げるべき。
仕事なのでそれでは〜!
239:224
09/03/13 16:48:05
自分の知らない言語仕様がもしかしたらあるかもと思い質問しました
Ruby の Duck Typing も最初は抵抗がありましたが、
言語の基本理念に合わせれば幸せになれたように、無駄な抵抗はやめて
VBA ではグローバルな名前空間で一意の名前を使ったほうがよさそうですね
句読点もここの習慣に合わせることにします
半英語 (笑) は確かに悩みの種ですが、カタカナ語は読みづらいし、
英単語を「てにをは」でつなぐくらいなら全英語のほうがまだましです
プログラムを書くときは公開が前提のため、ドキュメントを含め全て英語ですが、
白熱した議論となると英語では正直しんどいんですよね...
これまで Microsoft 独自仕様の言語は避けてきたのですが、
表計算 w/ OOP という計算言語モデルは最近面白いかもしれないと思いつつあります
Excel (w/o VBA) のみでも stochastic なアルゴリズムを使うことで、
割と複雑な問題でも現実的 (?) な労力と計算時間で解けることは確認しました
VBA にも標準で正規表現や SQL パーザなどのライブラリが用意されているようですし
何か面白いことはできないかとくちゃくちゃ遊んでいるところです
240:デフォルトの名無しさん
09/03/13 17:00:33
いま、独学でVBA勉強しているとこなんだが
これを使って将来仕事に生かせるかどうか不安なんだ
書籍見てもどう約竜野かいまいちわからないし
この板にいる名人方は経験値豊富そうだから意見を聞きたい
役に立つのか?
241:デフォルトの名無しさん
09/03/13 17:46:54
はっきり言って全く役に立たない。
手作業では数日がかりでも終わらないデータ集計が
数分で1円の間違いも無くレポートの体裁に整えられるくらいが関の山
242:デフォルトの名無しさん
09/03/13 17:51:37
通貨、「Excelとハサミは使いよう」だ
243:デフォルトの名無しさん
09/03/13 17:53:43
>>240
すごく役に立つよ
でもどう役立つのかいまいち分らんなら素質ないかも知れんから
使えるやつを捕まえてうまくおだててやらせるすべを覚えときゃいい
そいつが全部やってくれる
244:デフォルトの名無しさん
09/03/13 19:26:17
仕事するにあたって便利になるように、小物ツールを作る程度だな
245:デフォルトの名無しさん
09/03/13 20:05:05
今の管理職にはパソコンの使い方自体覚束ないような人が多い
プログラムで効率化したところで、彼らには何をやっているのかすら分からないから
一切評価されない。空いた時間以上に無茶振りされて仕事が増えるだけ
そういう意味では役に立たない
246:デフォルトの名無しさん
09/03/13 21:00:12
メインの言語何か別にやってて
必要なとき覚える程度ならいいけど
この言語が初めてとか、病気になるよ(笑)
247:デフォルトの名無しさん
09/03/13 21:10:45
>>246
ABAPとVB6.0しか実務で扱ってないので、転職先が無い・・・
248:デフォルトの名無しさん
09/03/13 21:20:21
ピボットテーブルがあるのになんでVBAなんか使うの?
249:デフォルトの名無しさん
09/03/13 21:21:57
SAPいいじゃん
あとはうまくでっちあげろ
250:デフォルトの名無しさん
09/03/13 21:22:33
ピボットテーブルでは集計しか出来ないから
251:デフォルトの名無しさん
09/03/13 21:27:05
この言語ででかいもの組まれると作るのはいいが
引き継ぐ人間のことを考えると涙しかでないな
252:デフォルトの名無しさん
09/03/13 21:31:26
おれはVBAしか出来ないからどう困るか想像できんのだけど
253:デフォルトの名無しさん
09/03/13 22:27:19
>>252
あって然るべきものがフツーにない場合が多い
のと、シート毎に行数を取って置くのが面倒だからと隅っこに忍ばせた白文字の行数とかIDとかテラウザス
開発者のちょっとしたお茶目がとんでもない殺意を生み出す
さらに別に無駄に出力してるわけではなく
当然客がいじりたおすわけで忍ばせた文字が残っている保証もなければ
忍文字と内容が一致してるわけもなくさらにフォーマットからいって違う可能性もあるしで
仕様やそこに至った経過をしらんとどうしようもないような要素がさらっと入る
バージョン管理ツールも効かないしね
この言語で綺麗に組むって多分目的からズレてんだろうなってフツーに思うけど引き継ぐのは嫌
254:デフォルトの名無しさん
09/03/13 22:30:59
なるほロケット
255:デフォルトの名無しさん
09/03/13 23:22:45
そのレベルの奴しか周りにいないなんて可哀相だな
256:デフォルトの名無しさん
09/03/13 23:28:31
>>238
返事が遅くなりました。
アドバイスありがとうございます。
もうちょっと勉強を進めていきたいと思います。
257:デフォルトの名無しさん
09/03/13 23:51:54
>>250
Excelなんて集計にしか使わないだろ。
258:デフォルトの名無しさん
09/03/13 23:56:42
集計なんてAccessでしかやらんが。
259:デフォルトの名無しさん
09/03/14 00:04:19
>>258
Excelでは何やってんの?
260:デフォルトの名無しさん
09/03/14 00:28:49
別に誰が何やってようと関係どうでもいいことだ
くだらない雑談は終わりにしようぜ
261:デフォルトの名無しさん
09/03/14 04:14:42
ExcelVBAは基本的にCOMコンポーネントだけの言語なので、
COMができる仕事ならExcel VBAでも出来る。
これを集計しかできないとか、レポートにしか使い道が無いというのは…。
俺がよくやっていたのはXMLのパージングと生成やらテストデータの作成。
ほかにも死ぬほどの仕事をExcelVBAに叩き込んだ。
たぶん今やってるプロジェクトの数パーセントは俺のマクロだより。
EmacsやPerlと心中するような奴でもExcel VBA覚えるべき。
ExcelVBAはWindowsの糊言語だよ。
262:デフォルトの名無しさん
09/03/14 04:29:33
やだなぁなんも蓄積してかないし
vbaはあくまでもメインのプログラムとの橋渡しだけにしたいなぁ
バージョン管理も効かないし
作ったはいいけどエクセルデータ触るたびにvbaも修正が必要とかなりそう
263:デフォルトの名無しさん
09/03/14 04:55:41
全部思いこみだねえ
264:デフォルトの名無しさん
09/03/14 05:31:24
ていうか、集計やレポートの作成以上難しいことをやったらいかんよ
できるできないは別として
265:デフォルトの名無しさん
09/03/14 06:29:45
262みたいな子って、結構居るよ。
組込マクロ言語から入って単独開発言語を囓り始めた時期に
こういう症状が出ることがある。
基礎が出来てりゃあんなバカな発想はしないんだけどな。
266:デフォルトの名無しさん
09/03/14 06:34:13
基礎云々じゃなくて作るだけの人と保守までしなきゃならない人との違いだろ
267:デフォルトの名無しさん
09/03/14 06:51:01
基礎が出来てないから、VBAの保守ごときで右往左往してしまう件
268:デフォルトの名無しさん
09/03/14 07:59:58
>>267
保守できないのは努力が足りない?
269:デフォルトの名無しさん
09/03/14 09:13:24
集計するならピボットもVBAもイラン
いまのとこ数式で事足りてる
270:デフォルトの名無しさん
09/03/14 10:21:22
やたらとセルにどっからでもアクセスできるからソースはクソになりがちではある
271:デフォルトの名無しさん
09/03/14 10:27:52
とあるExcelで作られたシステムを引き継いだんだけど
これってVBで作ったほうがよくね?って思ってる。
なぜExcelで作ったのかなぞだ。
272:デフォルトの名無しさん
09/03/14 10:35:25
この話題が出てるときに、このあからさまなネタw
273:デフォルトの名無しさん
09/03/14 11:11:34
この話題だから書いただけなのに
274:デフォルトの名無しさん
09/03/14 12:01:08
で?
275:デフォルトの名無しさん
09/03/14 12:11:44
<font size="2">
276:デフォルトの名無しさん
09/03/14 12:13:50
そんなにExcelがすきなの?
277:デフォルトの名無しさん
09/03/14 12:48:21
すべてvbaで作って自分しか保守れないようにするんだ
278:デフォルトの名無しさん
09/03/14 12:51:28
</font>
279:デフォルトの名無しさん
09/03/14 15:26:16
>>262
プログラムを書いたことが無いのかもしれないが、
入出力が変わったら、どんな言語ツールでもプログラムを書き換えるだろ。
280:デフォルトの名無しさん
09/03/14 15:27:06
マクロって隠すことできるんですか?
たくさんマクロが組まれてそうなファイルを手に入れて
分析したいのですが、標準モジュールには簡単なマクロしか
入ってません。
フォームのボタンらしきもので色々動くファイルなのですが
ボタン自体が保護されているような状態。
281:デフォルトの名無しさん
09/03/14 15:30:39
デザインモードでアクセスできました
すみません。
282:デフォルトの名無しさん
09/03/14 17:05:29
俺はRDBをExcelにDumpingして、VBSの正規表現を使って仕事してる。
どんな会社でも、どんな業種でもExcelファイルなら開けるってシェアの大きさは有利だよ。
シェア率って、本当に大切だよ。
283:デフォルトの名無しさん
09/03/14 17:13:43
>>282
VBS・・・?
284:デフォルトの名無しさん
09/03/14 17:17:05
COMのVBScript.RegExpのことじゃないの?
285:デフォルトの名無しさん
09/03/14 19:27:11
質問ですー
VBEの画面でOと0の見分けがつかんの何とかならんですか?
286:デフォルトの名無しさん
09/03/14 19:38:32
フォントは自由に選べますよ
287:デフォルトの名無しさん
09/03/14 19:44:26
>>285
プロポーショナルフォントじゃ無くせばOK。
例)Pゴシック→ゴシック って意味ね。
288:デフォルトの名無しさん
09/03/14 19:45:40
区別できるフォントを捜して設定すればいいんですね
週明けに早速試してみますありがとうございます
289:デフォルトの名無しさん
09/03/14 19:58:29
Range("A" & i)
290:デフォルトの名無しさん
09/03/14 20:51:35
質問です。
指定した1秒未満の短い時間(0.5秒など)だけマクロを停止させたいと考えています。
Application.Wait メソッドなどでは最短でも1秒は停止しなければならないようですが
これは可能なのでしょうか?
291:デフォルトの名無しさん
09/03/14 21:00:55
APIでSleep()がGetTickCount()定義して処理する
292:デフォルトの名無しさん
09/03/14 21:13:03
基本的なことだが、VBAとVB6はほぼ同じ。
グーグルでVB6をつけて検索すれば大抵のことは解決する。
初心者さんはまずVB6で検索してくれ。
293:デフォルトの名無しさん
09/03/14 22:28:19
>>291
Sleepを使う事で解決できました。ありがとうございます。
294:デフォルトの名無しさん
09/03/15 01:33:19
Application.Wait [NOW()+"0:00:00.1"]
295:デフォルトの名無しさん
09/03/15 01:54:45
WaitやOnTimeは、1秒未満を指定してもエラーにはならないけど
1秒単位に丸めて処理されるから意味無いよ
Application.Wait [NOW()+"0:00:00.1"]
Application.Wait Now()
は同じで
Application.Wait [NOW()+"0:00:00.6"]
Application.Wait [NOW()+"0:00:01"]
も同じ
296:デフォルトの名無しさん
09/03/15 01:58:36
うそ、仕様が変わったのか?
297:デフォルトの名無しさん
09/03/15 02:05:18
Sub a()
t1 = Timer
Application.Wait [NOW()+"0:00:00.1"]
Debug.Print Timer - t1
End Sub
0.1103516
0.1000977
298:デフォルトの名無しさん
09/03/15 02:16:28
確か丸めは環境依存だったような。
確実な方法では無いから普通は使わないけど。
299:デフォルトの名無しさん
09/03/15 03:55:41
これが環境依存とは聞いたことないな。
みんな普通に使ってるようだけど。
300:デフォルトの名無しさん
09/03/15 07:27:51
>>297やってみたら
97%くらいは
0
3%くらいが
0.015625
だった
301:デフォルトの名無しさん
09/03/15 11:17:35
Waitやってるやつ環境くらい書けば?
XP, Excel2000,はOK
302:デフォルトの名無しさん
09/03/15 13:38:34
これさ
ミリ秒単位ってほぼとれてなくない?
数字の上でどうでてようととれるもんはめちゃくちゃなんだけど?
0ms5msって交互にとれるけどホントか?これ?(笑)
303:デフォルトの名無しさん
09/03/15 15:02:00
今やってるのは100ミリ秒だろ
304:デフォルトの名無しさん
09/03/15 16:17:21
Application.Wait [NOW()+"0:00:00.1"]
は、うちでも0.1秒前後になるけど、WinAPIのSleepと比べるとものすごくばらつきが大きい。
Sleepだと100回やって100〜104msと100ms未満になることは無かったし超過も僅かだが
Application.Waitは80ms台が数回出たし、超過誤差もSleepの10倍以上。
処理上、僅かな超過が出るのは仕方のないことだし、それは環境にも依存することだが
その超過量が同条件でのSleepより遙かに大きかったり、指定未満になったりするのは
明らかにApplication.Waitの欠陥で、1秒未満の処理がまともに出来ているとは言いがたい結果だな。
因みに環境はWinXP/Excel2003
305:デフォルトの名無しさん
09/03/15 16:53:42
>>304
Application.Wait [NOW()+"0:00:00.25"]
だとどう?
306:デフォルトの名無しさん
09/03/15 16:56:57
>>304
あるいは、
Application.Wait [NOW()+"0:00:00.0625"]
とか
307:デフォルトの名無しさん
09/03/15 16:58:07
>>297はXPSP3 Excel2007
10ミリ秒の精度が必要か?
所詮、いくらSleepの精度が高くてもCPUやメモリなどの競合で
処理の遅延することは避けられないし
308:デフォルトの名無しさん
09/03/15 17:15:17
まあ、そもそも>>290がどんな要件に使うのかすら、オレには想像つかない。
309:デフォルトの名無しさん
09/03/15 18:09:52
そうか?
>>290は1秒じゃ長いから0.5秒くらいで待ちたいと言ってんだろ?
そのときに0.01秒の誤差なんか気にするか?
0.1秒の誤差も気にならないかも
310:デフォルトの名無しさん
09/03/15 18:19:03
俺はそんなもの測れると思ってないけどね
長年ゲームアプリ作ってきた勘
テキトーな間隔でテキトーに止まるとは思うけど
数秒に数回成功するって目安だな
311:デフォルトの名無しさん
09/03/15 18:44:41
そうか?
1秒で待つか0.5秒で待つかで実際やってみると体感的に違うけどな
312:デフォルトの名無しさん
09/03/15 18:45:47
VB6のSleep() APIでも数ミリ秒の誤差はある
VB系でミリ秒気にするのは病みすぎ
スレッド使える他言語でやれよ
(ActiveX使えとかWindowsじゃ無理とか言うなよw)
313:デフォルトの名無しさん
09/03/15 19:00:50
お前ら、よく知らんことには口出すな
314:デフォルトの名無しさん
09/03/15 19:19:44
教えてください。
上位のコンボボックスの選択しだいで、下位のコンボボックスが空の場合も、値が入っている場合もあります。下位のコンボボックスに値が入っている場合のみ実行したいコードがあるのですが、条件式としてはどのように記述すればいいのでしょうか?
お願いします。
315:デフォルトの名無しさん
09/03/15 19:26:36
なんらかのトリガ時に両方見ればいくね?
316:314
09/03/15 19:32:44
>315
ごめんなさい。よく分かりません。
317:デフォルトの名無しさん
09/03/15 19:47:00
ボタンかなんか押してプログラムが動くんだろ?
だったら、ボタン押した時に2つのボックスの中身を見て判断すれば良いんじゃねーの?
この内容が分からないんなら、コンボボックスの使い方を説明してるHP見たほうが早い。
318:デフォルトの名無しさん
09/03/15 21:38:22
>>314
上位のコンボボックスの選択されている値をみればいいんじゃないかな
下位のコンボボックスに値をセットしたり空にしたりする処理があるんだから、
そのための判定式がその処理のとこにあるだろう
319:デフォルトの名無しさん
09/03/15 21:59:07
>>314
URLリンク(www1.axfc.net)
He_205317.xls
Pass : prog
320:314
09/03/15 22:45:03
>319さんへ
わざわざ親切にありがとうございました。
私の説明が悪かったのですが、「下位のコンボボックスが空」とういうのは、「ボックスに何も
表示されていない状態」のことではなく、「ボックスに何も表示されていないし、ボックス中に
何の選択肢もない状態」のことなんです。上位に対応する下位がない場合、ボックスを空に
しているのです。「ComboBox2.Text <> ""」という記述は前者のようです。
もしよかったらまた教えてください。
321:デフォルトの名無しさん
09/03/15 22:53:00
>>320
どちらにしろTextが空なんだからそのIfでOKだろ?
嫌ならListCountで項目数判定汁
322:314
09/03/15 23:02:24
ListCountでできました。
ありがとうございました。
じぶんなりによく考えて、よく調べたつもりだったんですが・・・
まだまだ初心者の域を抜け出せてないようです。
323:デフォルトの名無しさん
09/03/15 23:05:29
>>314
ユーザー入力でCombo Textの空文字判定が曖昧になること心配しているなら、
ComboをReadOnlyにするという方法もある。
まあ頑張って下さい。
324:デフォルトの名無しさん
09/03/18 22:02:18
2007 xlsm vista
今まで(2003 xpでは)正当に動いていたマクロが機能していません。
どのように修正したらいいものかさっぱりの状態ですので、教えてください。
よろしく。
sub モジ()
Aマクロ
Bマクロ
Cマクロ
end sub
で、Aマクロの中にapplication.run "dataweb" があるのですが、
webデータ取得(を全くすることなく)前に、 Bマクロにさっさといってしまいます。
325:デフォルトの名無しさん
09/03/18 22:24:01
ブックごとうpしろ
出来ないなら帰れ
326:324
09/03/19 00:57:50
ブックごとのアップはできません、悪しからず。
調べる端緒がほしいので、よろしく。
2003で同期だったものが、2007では非同期になってしまうということです。
そうゆうことはあり得るのでしょうか?
327:デフォルトの名無しさん
09/03/19 01:07:54
>>326
Bマクロでブレイクすれば、データが取れるの?
328:324
09/03/19 01:46:10
Bマクロでブレイクして、データ取得はできます。
なお、Aマクロ単独での動きは、2003及び2003互換モードで正常ですが、
2007ではやはり、勝手に先に動きます。
329:デフォルトの名無しさん
09/03/19 04:04:03
Call
330:デフォルトの名無しさん
09/03/19 05:53:09
>>326
それは同じマシンでもそうなるの?
2007から複数コアCPUがサポートされてるから、そうなる可能性はあるとは思うが
関係ないかもしれないが、一度マルチスレッド計算のオプションはずして試してみては?
331:324
09/03/19 10:51:06
>>330 サンクス。
2007 XP機で試してみました。ちゃんと正常に動いたことから、
VISTA機でのみ正常に、動作していないことになります。
マルチスレッド計算のオプション外しもやってみましたが、変わり無しです。
なお、VISTA機ではmsgboxだけなら止まるのですが、msgboxの次にendがあったりすると
msgboxは流れています。
inputメソッドも止めることなく、流れていってます。
この症状は、Aマクロの中でも、Bマクロの中でも同様に起こっています。
332:324
09/03/19 10:55:03
>>329
Callは書いても書かなくても一緒でした。
333:デフォルトの名無しさん
09/03/19 11:23:15
procedureの呼び方ですが、
「プロシージャ」と「プロシジャー」
どちらが一般的なのでしょうか。
334:デフォルトの名無しさん
09/03/19 11:30:57
プロシージャ
335:デフォルトの名無しさん
09/03/19 13:07:50
prэsi':dзэ(r)
336:デフォルトの名無しさん
09/03/19 15:41:11
手続き
と日本語で解釈b
337:デフォルトの名無しさん
09/03/19 19:56:29
>>331
msgboxは流れる ってのがよくわからんが、msgboxでok押す前に次の行が実行されてるってことか?
簡単に試したがうちではそうならないし、現象が発生する最低限のコード晒して見たら
338:デフォルトの名無しさん
09/03/20 05:53:15
質問です。
userFormのTextBoxsに09と入れ、セルに入力すると9になります。
変数(string)代入しても、上手くいきません。
どうしたらいいでしょう?
対象セルの書式設定も文字列にしています。
339:デフォルトの名無しさん
09/03/20 06:53:59
' を頭に結合させてみてはいかがかな。
cells(1,1).value = "'" & textbox.value
のように。
340:デフォルトの名無しさん
09/03/20 07:27:25
>>339
上手くいきました!
ありがとうございます!
341:デフォルトの名無しさん
09/03/20 09:30:53
>>338
対象セルの表示形式が文字列になってれば、おれんとこじゃ09になるけど?
342:デフォルトの名無しさん
09/03/20 09:35:01
>>324
あんたの質問内容ってこう見えるよ。何を答えろと・・・
今、車で走ってて道に迷いました。今まで普通に走ってきた道ですが・・・
どうしたらいいでしょう。よろしく。
出発点
ルートA、ルートB、ルートC
到着点
ルートAに看板があるのですが、暗くて分かりません。
Q そもそもどこ走ってる?A 言えません
Q 地図ねーの? A 今までの地図と違うみたいです
Q 誰か近くにいねーの?A 止まってくれません・・・
343:デフォルトの名無しさん
09/03/20 09:41:47
コード晒す気がないみたいだから答えてほくないんだろ
もしくは荒らし
344:デフォルトの名無しさん
09/03/20 10:00:43
やっぱりそうだよね。真剣に考えて損したよ。
一応、エスパースレいってみれば? >>324
345:デフォルトの名無しさん
09/03/20 10:10:37
>>338
文字列変換用関数というのもある。こっちの方が便利かと
string str = Format$(123, "00000")
346:デフォルトの名無しさん
09/03/20 19:39:25
これってどう?
Excel VBA アクションゲーム作成入門 Excel 2007/2003/2002 対応
URLリンク(www.amazon.co.jp)
347:デフォルトの名無しさん
09/03/20 22:59:07
リアルタイム処理を考慮されてない言語で無理矢理ゲームを作るのは
趣味としてやるには面白いかもしれないけど実用性は低い
348:デフォルトの名無しさん
09/03/20 23:59:25
ミニゲーム系はFlashの独壇場。
Excelでやる必要性はない。
349:デフォルトの名無しさん
09/03/21 00:00:39
はぁそうですか
350:デフォルトの名無しさん
09/03/21 00:40:17
Excel VBAしか知らないから
俺には丁度いいかも
351:デフォルトの名無しさん
09/03/21 10:38:52
VBAで出来ない事じゃないし、やってる人もいるけどさ・・・。
それはあくまで ”出来る” であって、向いてる訳じゃないのよ。
例えば、アクションゲームならばFPSって概念を持ってるFlash(ActionScript)で作った方がいいよね。
衝突判定の関数をVBAで組むならば、ASにはその物ズバリの関数が既にある訳。シェイプが接触したいるかどうかをbooleanで返す。
Flashはドローツールから派生してるんで、シェイプを扱う能力が超高い。現状だと最高峰。
MovieClipって形で、duplicate、attack、色んな複製をしつつ、それら全てにプログラムを組みこむ事も出来る。
リアルタイムで動くタイムラインを、全てのシェイプが保持出来る訳で、ゲームには凄く向いてる。
決してVBAがダメと言ってる訳じゃないよ。VBAが光る分野は別の所。
向き不向きがあるから、それに則る方が良いかも。と言う観点で。
352:デフォルトの名無しさん
09/03/21 10:42:15
だいたいなんらかのプログラムが組めるなら別の言語なんて習得に1週間かかんねぇだろ
やらないで怖がってるだけの奴は馬鹿
なんでもかんでもVBAでやろうとすんな
353:デフォルトの名無しさん
09/03/21 12:02:05
Flash厨うぜえぞ
354:デフォルトの名無しさん
09/03/21 13:18:32
「セルをドットに見立ててゲームをつくる」とかすごすぎw
なに?
>ワークシート上のセルを方眼紙のように正方形にしてどっとに見立てて、ワークシートを
>縮小して表示することで、グラフィックを表現する手法で、セルの1つ1つの背景色が
>そのままドットの色になります。
って
355:デフォルトの名無しさん
09/03/21 15:49:14
attachですた。
356:デフォルトの名無しさん
09/03/21 15:59:42
attach No.1・・・って、違うか?!
357:デフォルトの名無しさん
09/03/21 17:30:13
オートシェイプをスプライトに見立てて作ったゲームってのも
あってもよさそうだが見たことがない。
みんなワークシートにドット絵を描きたがるのはなんでだろう。
358:デフォルトの名無しさん
09/03/21 17:54:34
>>357
座標関係じゃね?セル位置のほうが初心者には直感的。
もしくは、オブジェのNewとか、オブジェクトの一意のID指定がメンドイとか。
個人的には、VBAで2Dゲームは初心者に向いてると思う。
描画の基礎は勉強できるでしょ。
359:デフォルトの名無しさん
09/03/21 18:06:52
>>352
スレチだが言語によると思うぞ。俺はVC/JAVA屋でC#に四苦八苦。
さらにDirectXなんかは思想の理解にてこずるし。
まあ、言語というよりはフレームワークの問題だが・・・
あと、半月くらいVB系触らないと構文殆ど忘れるしw
360:デフォルトの名無しさん
09/03/21 19:53:36
>>354
アラン・ケイの本に、セルを使って棒グラフを表現する例が載っていたから、
画期的なアイデアと言うほどではないな。
361:デフォルトの名無しさん
09/03/22 10:30:03
すいません。次のことをしたいのですが、簡単だと思ったのですが、
出来なく困っています。
最初にB列の任意のセルを一つ選び、
その選んだB列のセルに、常にR24のセルをコピーし
貼り付けたいのですが、色々やりましたが出来ません。
例えば、
セルB28を選び、マクロを実行したらR24をコピーし同じくB28に貼り付ける。
セルB30を選び、マクロを実行したらR24をコピーし同じくB30に貼り付ける。
セルB77を選び、マクロを実行したらR24をコピーし同じくB77に貼り付ける。
たったこれだけのことですが、このマクロの部分が相対参照にしても出来ません。
識者の方宜しくお願い致します。
なお
EXCEL;ver2000
OS:win2000
VBA;多少使えます。
宜しくお願い致します。
362:デフォルトの名無しさん
09/03/22 10:43:12
ActiveCell = Range("R24")
> VBA;多少使えます。
それはないだろ…
363:デフォルトの名無しさん
09/03/22 10:55:31
lol
364:デフォルトの名無しさん
09/03/22 10:58:01
デフォルトプロパティを省くな
365:デフォルトの名無しさん
09/03/22 10:58:10
>>362
有難うございます。しかし調べ、いろいろ試し下記のコードを作成したのですが・・・
ActiveCell = Range("R24").Copy
ActiveCell.Offset(30, -2).Range("A1").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Application.CutCopyMode = False
End Sub
↑出来ませんでした。R24だと手間が掛かってしまうと思うので、
任意のB列のセルにセルA1の値をコピーし貼り付ける。
という例で結構ですからコードをお願いできないでしょうか?
例えば、
セルB5を選び、マクロを実行したらA1をコピーし同じくB5に貼り付ける。
たったこれだけで良いです。宜しくお願い致します。
366:デフォルトの名無しさん
09/03/22 11:45:26
cell(2,5).value = cell(1,1).value
cell(2,5).interior.colorindex = RGB(255,255,255)
こんな感じだった気がする
367:デフォルトの名無しさん
09/03/22 12:16:38
>>366
cell → cells
colorindex → color
368:デフォルトの名無しさん
09/03/22 12:34:13
セル情報全部コピーしたいって前提なら、↓で良いと思うがね。
Sub test()
Cells(1, 1).Copy ActiveCell
End Sub
369:デフォルトの名無しさん
09/03/22 12:39:14
「R24だと手間」があったからValueにしてみた
色は関係ないのか。斜め読みスマソ
370:デフォルトの名無しさん
09/03/22 16:27:59
>>365
VBAがまったくわかってないようなんで、ヒントじゃなくて完成したマクロを書いといてやる。
Sub Macro1()
ActiveCell = Range("R24")
End Sub
371:365
09/03/22 17:16:18
皆様本当に有難うございます。
只今仕事からかえってきました。んでまた仕事ですorz。
報告は後ほどさせて頂きます。
372:デフォルトの名無しさん
09/03/22 20:25:56
>>370
プロパティを省略するな。と何回言わせるのだ・・・。
373:デフォルトの名無しさん
09/03/22 21:30:20
openのメソッドを勉強中ですが、
「updatelinks」引数の説明の中で、
「リモート参照」と「外部参照」という2つの言葉が出てきました。
「リモート参照」「外部参照」とはどういう意味ですか?
ググってみても出てきませんでした
(T_T;)。
374:デフォルトの名無しさん
09/03/22 22:19:52
>>372
ケチつけてるヒマがあったら正解を示せ。と何回言わせるのだ・・・。
375:デフォルトの名無しさん
09/03/22 22:54:11
Sub test()
selection.value=range("A1").value
End sub
A1の値を今選択しているセルの値に
376:デフォルトの名無しさん
09/03/22 23:03:17
↑あ、説明間違った。
今選択しているセルにA1の値を入れると。
ちなみにこの場合はActivecellよりselectionの方がいいと思うよ。
377:デフォルトの名無しさん
09/03/22 23:08:07
>>374
え、付けるべきプロパティが解らないの?
コードが根本的に間違っていると言ってるわけじゃないのに
それでも「正解を示せ」と言うからには、それくらいしか思いつかない…
378:365
09/03/22 23:33:25
365です。
あれから>>370さんのコードをそのまま頂いたら、
出来ました!!!
>>370さん本当に感謝です。
コードまでそのまま書いてくださり大変助かりました。
しかしこんな簡単なコードで出来るとは、
拍子抜けです。
勉強不足を感じました(汗。感謝。
>>366さん
>>368さん
わざわざ有難うございます。
どうやら私の説明が悪く、
何をしたいのか正確に伝えれなかったみたいです。
アドバイスいただきましたが、
それとはちょっと違いました。
ですが親切に本当に有難うございました。
ではお騒がせしました(ぺこり
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
4901日前に更新/170 KB
担当:undef