1 名前:デフォルトの名無しさん mailto:sage [2010/01/06(水) 12:34:58 ] 過去スレ 01 pc11.2ch.net/test/read.cgi/tech/1054356121/ 02 pc11.2ch.net/test/read.cgi/tech/1168308855/ 03 pc11.2ch.net/test/read.cgi/tech/1180192018/ 04 pc11.2ch.net/test/read.cgi/tech/1189814602/ 05 pc11.2ch.net/test/read.cgi/tech/1197448064/ 06 pc11.2ch.net/test/read.cgi/tech/1205231499/ 07 pc11.2ch.net/test/read.cgi/tech/1212587819/ 08 pc11.2ch.net/test/read.cgi/tech/1219673793/ 09 pc11.2ch.net/test/read.cgi/tech/1228372971/ 10 pc12.2ch.net/test/read.cgi/tech/1235332603/ 11 pc12.2ch.net/test/read.cgi/tech/1241885130/ 12 pc12.2ch.net/test/read.cgi/tech/1247566074/ 13 pc12.2ch.net/test/read.cgi/tech/1254281104/
231 名前:デフォルトの名無しさん mailto:sage [2010/02/08(月) 09:58:19 ] いい加減、お前うざいよ
232 名前:デフォルトの名無しさん mailto:sage [2010/02/08(月) 10:00:06 ] 同意。 バインドヲタ・・・イラネ
233 名前:デフォルトの名無しさん mailto:sage [2010/02/08(月) 10:02:22 ] 別にうざくはないが
234 名前:デフォルトの名無しさん mailto:sage [2010/02/08(月) 10:04:01 ] >>220 で、何を何に「バインド」すんの?
235 名前:デフォルトの名無しさん mailto:sage [2010/02/08(月) 10:23:30 ] VB(A)の世界では、Dim a As Rangeなどと、変数宣言時にオブジェクトの型を指定するのが 事前バインディング、Dim a As Objectと総称型で宣言し、Set a = ...と実行時に変数に結びつけるのが 実行時バインディングというのが普通で、上で言われてるような文脈で使われるのは 初めて見た。 あってるのか、間違ってるのか知らんけど。
236 名前:デフォルトの名無しさん mailto:sage [2010/02/08(月) 10:27:45 ] ちなみに、コンパイルする言語では、コンパイル時に呼び出しを決定できるものが事前バインディングで、 実行時にしか決定できないものを実行時バインディングという。 付け加えると、VBAでは一般に事前バインディングの方が速いというのはその通りで、 オブジェクトを変数に代入しておいて使う方が速いというのもその通り。 ただ、「Selectionをそのまま使えば実行時バインドだよ。」という言い方は初めて見た。 このような使い方をするのかどうかは知らない。
237 名前:デフォルトの名無しさん mailto:sage [2010/02/08(月) 10:42:24 ] 測ってみればいいのに。基本は実測だよ。 For i = 0 To 100000 ' ここにコード Next s = Range("A1").Value => 1416ms s = Cells(1, 1).Value => 670ms s = r.Cells(1, 1).Value => 858ms '事前にdim r as range, set r = range("A1")を実行 結論: Cells(x, x)を使わない奴は馬鹿。
238 名前:デフォルトの名無しさん mailto:sage [2010/02/08(月) 10:45:58 ] それやってないけど、r.valueが最速だろ。
239 名前:デフォルトの名無しさん mailto:sage [2010/02/08(月) 11:05:58 ] つーか、>>207 で最後のコードが速いのは、事前バインドなんか全然関係なくて、 cells(i,1)でrangeオブジェクトを参照するより、for cell in rangeで参照した方が速いってだけじゃね?
240 名前:デフォルトの名無しさん mailto:sage [2010/02/08(月) 11:14:44 ] 古いPCだが 11sec: s = Range("A1").Value 05sec: s = Cells(1,1).Value 04sec: s = r.Value
241 名前:151 mailto:sage [2010/02/08(月) 12:22:11 ] 横からすみません。分かりにくい点が多数あると思いますがお願いします。 A B C D E l F 1 名前 りんご バナナ みかん ブドウ l 余り 2 たけし 1 0 0 4 l 0 3 ともこ 0 2 0 4 l 0.25 4 とおる 1 2 3 0 l 0.73 5 さちこ 1 2 0 0 l 0 6 たける 0 0 0 4 l 0.84 ・ ・ ・ というような表を作っています。 フォームでりんごを選択し検索すると、りんごを食べれる【たけし・とおる・さちこ】 を検索(B2:E6から1を検索)し、与えます。 余りがあればさっき与えた人以外のところに持っていき、与えます。 それを繰り返して、条件付き組み合わせのような形で検索したいと思っています。 この場合ですと、リンゴを100個持っているとすると、 ※()内は残個数 ・たけし(0) ・とおる(73)→たけし(0) ・とおる(73)→さちこ(0) ・さちこ(0) の4パターンが検索されます。 各パターンで残個数が0になれば検索終了です。 このようなシステムは可能でしょうか? また、可能ならヒントを頂けると嬉しいです。宜しくお願いします。
242 名前:151 mailto:sage [2010/02/08(月) 12:40:38 ] ちなみに、 りんご=1 バナナ=2… という関連付けはすでにしています。
243 名前:デフォルトの名無しさん mailto:sage [2010/02/08(月) 12:48:45 ] >>239 >>207 で速さのことなんか何にも書いてないじゃん。 不細工かどうかだろ?
244 名前:デフォルトの名無しさん mailto:sage [2010/02/08(月) 13:57:49 ] >>241 他人に上手く説明できないことは、自分でも理解していないことである
245 名前:デフォルトの名無しさん mailto:sage [2010/02/08(月) 14:20:57 ] エスパーの出番だな
246 名前:デフォルトの名無しさん mailto:sage [2010/02/08(月) 15:11:09 ] 概してExcelに検索処理をさせることが間違いのもと
247 名前:デフォルトの名無しさん mailto:sage [2010/02/08(月) 23:12:59 ] >>241 ようするにナップザック問題の亜種だろ リンゴが99個で最初にとおるを選んだとき、残りの個数は割り切れない数になるけど、そういう時はどうすんの?
248 名前:デフォルトの名無しさん mailto:sage [2010/02/08(月) 23:47:16 ] >>247 ここではリンゴとしましたが、実際はトン(t)で計算します。 小数点以下も考えるので、99×0.73=72.27(t)が次の人へ…となります。 説明不足でした。申し訳ありません。 ナップザック問題というヒントを参考にさせてもらいます。
249 名前:デフォルトの名無さん [2010/02/09(火) 00:19:12 ] 下記test1で「あ」を図の真ん中に表示したい。 test2では文字をとりだせない。 Sub test1() ActiveSheet.Shapes.AddShape(msoShapeRectangle, 10, 10, 50, 50).Select With Selection .Characters.Text = "あ" End With Range("a1").Select End Sub Sub test2() MsgBox ActiveSheet.Shapes(1).Characters.Text End Sub
250 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 03:10:36 ] >>249 Sub test1() With ActiveSheet.Rectangles.Add(10, 10, 50, 50) .Text = "あ" .HorizontalAlignment = xlHAlignCenter .VerticalAlignment = xlVAlignCenter End With End Sub Excel任せだと少しずれてしまうのは仕様。 ぴったり中央に文字を出したいときは、背景が透明のテキストボックスを 図形の上に重ねて、座標を自分で計算するしかない。 Sub test2() MsgBox ActiveSheet.Shapes(1).TextFrame.Characters.Text End Sub あと、質問するときはもうちょっと文章を丁寧に書け。 「やりたい」「できない」だけじゃ質問になってない。 テンプレも使うこと。
251 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 11:55:15 ] >>250 ここにテンプレあったか?
252 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 12:20:13 ] >>251 >>2
253 名前:デフォルトの名無さん [2010/02/09(火) 12:20:50 ] >>250 ありがとうございます。 気をつけます。
254 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 00:29:32 ] tes
255 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 00:36:42 ] VBA初心者ですが、実行時バインドってなんですか? また、エクセルで「現在アクティブなブックの一つ前に アクティブだったブックのname」を取得するコードを教えてください。
256 名前:255 mailto:sage [2010/02/10(水) 01:20:39 ] Excel2003 windows xpです。 今まで勘違いして activewindow.activatepreviousで取得していたんですが、 複数ブックが開いているときはだめな時がありました。
257 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 12:36:16 ] ひとつ前のブックをアクティブにしたときに名前取得すればいいんじゃないの?
258 名前:デフォルトの名無さん [2010/02/10(水) 13:42:42 ] 下記(1)で mainをぬけてプログラムを中断したいのですが・・・ Sub main() Call ChkShtName MsgBox Now End Sub Sub ChkShtName() If ActiveSheet.Name <> "xoxo" Then MsgBox "シートは:" & ActiveSheet.Name Exit Sub '(1) ここで本当はmainを抜けたい End If End Sub end sub
259 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 14:12:17 ] >>258 発想がスパゲッティだなw フラグ持ってけ。
260 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 15:01:51 ] For~Next文で、 For i1=… ’ここにi1の処理(※) For i2=… ’ここにi2の処理(※) For i3=… ’ここにi3の処理 Next i3 Next i2 Next i1 と階層化されている場合、各段階で条件によって終了し、i1に戻って再度処理を続けるにはどうしたらいいですか? (i2,i3である値が0になったときなど) ※のところに If a = 0 Then Next i1 ではだめでした。 コード自体が長いのでこのような質問になり申し訳ありません。 よろしくお願いします。
261 名前:デフォルトの名無しさん [2010/02/10(水) 15:41:51 ] goto もしくは関数ごとつくる
262 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 16:16:38 ] i1に戻ったときの、i1,i2,i3の値が気になるが Dim f as boolean f = True For i1=… ’ここにi1の処理(※) For i2=… If f Then ’ここにi2の処理(※) For i3=… ’ここにi3の処理 If (i2,i3である値が0になったとき) Then f = False End If Next i3 End If Next i2 Next i1 どこかでf = Trueをいれないといけないけどね
263 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 16:49:44 ] >>261 >>262 ありがとうございます。ちなみに>>241 で質問した者です。 '果物番号 fruit = Worksheets("sheet1").Range("E10") aRow = 1 aCount = 0 '================================================= For i1 = 2 To 6 '検索する行を指定 '果物番号の検索 With Worksheets("sheet1") Set found1 = Worksheets("sheet1").Range(.Cells(i1, 2), .Cells(i1, 5)).Find(fruit, , LookAt:=xlWhole) End With If found1 Is Nothing Then Else '最初の人の余り(率)を取得して書き込み s1 = Worksheets("sheet1").Cells(found1.Row, "A") ’s1は最初に食べる人 out_rate1 = Worksheets("sheet1").Cells(found1.Row, "G") aRow = aRow + 1 Worksheets("sheet2").Cells(aRow, 1) = s1 '排出物 out1 = Worksheets("sheet1").Cells(i1, 8) '================================================= For i2 = 2 To 6 (以降続く) というプログラムで、i1ではout_rate1=0となれば最初に戻って次のパターンを検索、 i2ではout_rate2=0となれば最初に… という流れを目指して書いたものです。 分かりにく過ぎて申し訳ないです。エスパーさんいらっしゃいましたら宜しくお願いしますw
264 名前:デフォルトの名無しさん mailto:sage [2010/02/11(木) 00:47:06 ] >>258 元のプログラム構造を尊重した一例。 本当はMsgBoxはどちらか一カ所にすべき。 Sub main() If ChkShtName Then MsgBox Now End If End Sub Function ChkShtName() As Boolean If ActiveSheet.Name <> "xoxo" Then MsgBox "シートは:" & ActiveSheet.Name ChkShtName = False '(1) ここで本当はmainを抜けたい Else ChkShtName = True End If End Function
265 名前:255 mailto:sage [2010/02/11(木) 01:36:07 ] >>257 例えば、現在アクティブなbook2(マクロを登録してあるファイル)の 中のマクロで、ひとつ前にアクティブであった book1(いろいろなファイル)に対して操作を行う時に、 nameが固定されていないbook1をアクティブにする方法です。 それが分からないのでnameも取得できませんでしたが、一応自己解決しました。 丸一日かかってやっと思いついたのが、 「現在アクティブなブックのウインドウを最小化する とひとつ前のブックが自動的にアクティブになる」 というエクセルの動作を利用してみました。
266 名前:255 mailto:sage [2010/02/11(木) 01:49:31 ] もうひとつ質問なのですが、 メニューバーへボタンを作って そのボタンからマクロを実行するアドインを 作って実装させているんですが、 計10台くらいの仲間に実装したのに、 何日かしたら数台のPCでボタンが消えていました。 ツール → アドインで調べてもアドインファイルにチェックは ついたままになっているんです。 ちなみにチェックを外してOKボタンを押すとエラーになりました。 アドインのメニューボタンだけが消えてしまった状態なんですが ボタンをdeleteするプログラムを含むプログラムを 実行していないとしたら、 ほかにどんな原因が考えられるのでしょうか?
267 名前:デフォルトの名無しさん mailto:sage [2010/02/11(木) 03:05:32 ] >>265 それはbook3もあって一つ前にアクティブだったかわからないという事か? ↓コピペだけど Sub マクロブックでない方のファイル名を取得する() Dim オブジェクト As Workbook For Each オブジェクト In Workbooks If オブジェクト.Name <> ThisWorkbook.Name Then MsgBox オブジェクト.Name End If Next End Sub もし2つしかbook開いていないなら上記で 2つ以上でもアクティブなBOOK名を絶えず取得して置けばいいと思ったけど マクロ書いたbookを最後に開いたら駄目だね
268 名前:255 mailto:sage [2010/02/11(木) 15:25:13 ] >>267 book3,book4,book.......と複数ブックが 開いている状態でbook2(マクロを登録したファイル)をアクティブ にしてその中のマクロを実行するときに ひとつ前にアクティブだった任意のブック(book1 or book3 or ......) をアクティブにする方法です。 activewindow.activatepreviousではウインドウが開いた順番をもとに ひとつ前の番号のウインドウをアクティブにするだけなので、 ひとつ前の番号のウインドウ = ひとつ前にアクティブだったブック とは限らないケースがあり、マクロ実行時に思惑通りの動作を してくれなかったのです。
269 名前:デフォルトの名無しさん mailto:sage [2010/02/11(木) 15:45:48 ] >>268 VBA単独でやるなら、すべてのブックにマクロを仕込んで、それぞれ自分がアクティブになったら 名前をどこかに記録しておく、みたいな方法かなあ。 俺ならウィンドウメッセージをフックして、アクティブになったウィンドウを記録するような常駐ソフトを作る。
270 名前:デフォルトの名無しさん mailto:sage [2010/02/11(木) 15:55:08 ] そもそも仕様が腐っとる。
271 名前:デフォルトの名無しさん mailto:sage [2010/02/11(木) 16:06:54 ] パソコン環境が貧弱な頃から積み上げた成果でしょ
272 名前:デフォルトの名無しさん mailto:sage [2010/02/11(木) 20:36:35 ] >>267 自分ならクラスモジュールを使ってブックイベント拾ってやるかな 下記では このマクロを含むブックを開く前に アクティブだったものは取得できないけどひとつのやりかたとして掲載してみる (ネーミングは適当なので勘弁してね) ★標準モジュール Private GetOldBook As New Class1 '←クラスモジュール名を指定する Sub TEST() Debug.Print "一つ前にアクティブだったブック:"; GetOldBook.Name End Sub ★クラスモジュール(モジュール名:Class1) Private WithEvents App As Application Private OldBook As String Private Sub Class_Initialize() Set App = Application End Sub Private Sub App_WorkbookDeactivate(ByVal Wb As Excel.Workbook) OldBook = Wb.Name End Sub Public Property Get Name() As String Name = OldBook End Property
273 名前:272 mailto:sage [2010/02/11(木) 20:42:19 ] アンカーみすった >>268 だったです すみません
274 名前:デフォルトの名無しさん mailto:sage [2010/02/11(木) 21:59:02 ] 初歩的な質問ですが、 A1に1、A2に2、B1に3、B2に4と入力されていて A1からB2を選択した状態で下記のコードを実行した場合、 bufは要素数が1から始まる配列になるということで よろしいのでしょうか? 配列なのに何故0から始まらないんですか??? Sub test() Dim buf As Range Set buf = Selection MsgBox buf(2) End Sub
275 名前:274 mailto:sage [2010/02/11(木) 22:08:13 ] IsArray(buf)はTrueを返すんですけど、 LBound(buf)とUBound(buf)は“配列がありません”と コンパイルエラーになってしまいます。
276 名前:デフォルトの名無しさん mailto:sage [2010/02/11(木) 22:13:54 ] 自分でrangeって宣言してるんだから 配列じゃなくて、rangeでしょ
277 名前:デフォルトの名無しさん [2010/02/11(木) 22:16:14 ] Sub test() Dim buf buf = Selection Debug.Print UBound(buf), LBound(buf) End Sub
278 名前:274 mailto:sage [2010/02/11(木) 22:23:24 ] >>277 これ、エラーになりますよね?
279 名前:274 mailto:sage [2010/02/11(木) 22:25:36 ] あ、失礼しました!Variantだと配列ってことでしょうか? でも、Rangeで宣言してIsArrayでTrueを返すのは どういうことなんでしょう? すみません・・・すごく初心者な質問ばかりで・・・orz
280 名前:デフォルトの名無しさん mailto:sage [2010/02/11(木) 22:29:55 ] >>279 あやまる気があるなら自分で調べろ。
281 名前:258 [2010/02/11(木) 22:47:10 ] >>264 ありがとうございます。
282 名前:274 mailto:sage [2010/02/11(木) 22:54:26 ] www012.upp.so-net.ne.jp/scotchegg/ExcelVBA/Range/Value.htm 似たようなもの見つけました。 やはり配列で、最小インデックスは1ということのようですね。 試験でbuf(1)の値は何か?という問題が出て、 配列なら0から始まると思い込んでて間違えたものですから・・・。 お騒がせしました。
283 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 10:49:13 ] 配列とは思って無かったItemを省略した書き方って感じで 下の場合はobj.item(2)と同じ Public Sub ItemTest() Dim obj As Range Set obj = Range("B2:C3, D5") MsgBox (obj(2).Address) End Sub だから最小インデックスは1なのかなと思う
284 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 23:59:10 ] VBAのメソッドやクラスのドキュメントてMSDNにないの? 全網羅してるやつ。。
285 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 02:15:15 ] ある
286 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 18:31:15 ] IEのフォームにセルの値を次々に入力して検索結果を別セルに転記する、というマクロ作っています。 入力内容によっては「Windows Internet Explorer」というタイトルの警告ウィンドウ(ボタンはOKボタンのみ)が 出てしまいます。 このウィンドウを閉じれば次のセルの値は問題なく入力、検索できるのですが、 このウィンドウを閉じるにはどうすればいいでしょうか?
287 名前:286 mailto:sage [2010/02/13(土) 18:46:50 ] 警告ウィンドウが出てるかどうかの判断の仕方もあわせて教えてください。
288 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 19:34:29 ] 逆に質問ですけど、JavaスクリプトでExcelに書き出してるの?
289 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 19:35:42 ] 質問取消します 読間違えました
290 名前:デフォルトの名無しさん [2010/02/13(土) 23:44:55 ] 宜しくお願い致します。EXCEL2000です。 「サンプル写真」という名前のフォルダの中にある、 セルA1に書かれている数字のjpgファイルを開く。 というマクロを何とか作りました↓。 Sub テスト() ActiveWorkbook.FollowHyperlink Address:="C:\Documents and Settings\a\デスクトップ\サンプル写真\" & Range("A1") & ".jpg" End Sub 一応動くのですが、実行するとインターネットエクスプローラで開いてしまいます。 拡張子の関連付けでは、他のソフトで開くようにしいるので、 そのソフトで開けるようにしたいのです。 開くjogファイルを開くプログラムを指定するにはどうすればよいでしょうか? 宜しくお願い致します。
291 名前:デフォルトの名無しさん mailto:sage [2010/02/14(日) 00:30:30 ] >>290 homepage1.nifty.com/MADIA/vb/API/ShellExecute.htm
292 名前:290 [2010/02/17(水) 10:04:46 ] >>291 遅レスすいません。アク菌にまきこまれ返信できませんでした。 解決しました。 本当にありがとうございます。 感謝
293 名前:デフォルトの名無しさん mailto:sage [2010/02/17(水) 11:11:06 ] csvファイルをインポートではなくダブルクリックで開いた場合、 例えば「12-11」というデータは「11月12日(中身は40494)」に変換されてしまいますが、 これをマクロで12-11に戻してやる場合にはどういう方法がいいんでしょうか? ちなみにその列は「数値-数値」の形ではない文字列も含まれていますので、 書式の取得からやらなければいけないと思います… その処理を入れようとしているのは行数分回すfor文の中です。 よろしくお願いいたします。
294 名前:デフォルトの名無しさん mailto:sage [2010/02/17(水) 11:38:10 ] >戻してやる場合にはどういう方法がいいんでしょうか? 考え方が違う。 EXCELに展開するときに処理することを考えるべし。
295 名前:デフォルトの名無しさん mailto:sage [2010/02/17(水) 11:45:05 ] >>293 その場合、元のデータが「12-11」だったのか「12/11」だったのか「12月11日」だったのか 判断する方法はないので元に戻すこともできない。 あとから修正するんじゃなくて、最初から別の方法で読み込むこと。
296 名前:デフォルトの名無しさん mailto:sage [2010/02/17(水) 12:08:17 ] >>293 発想が腐っとる。
297 名前:デフォルトの名無しさん mailto:sage [2010/02/17(水) 12:19:07 ] >>295 住所のカラムなので日付が入ることはないんです >>296 腐敗しとります
298 名前:デフォルトの名無しさん mailto:sage [2010/02/17(水) 12:30:10 ] ああ、.textに"月"と"日"が含まれてたらそれぞれの前の数値を抽出して並び替えればいいのか お騒がせしました。ちなみに俺は「取り込むときに処理しないとまずい」とちゃんと提言しましたよ? 腐敗してるんですよ
299 名前:デフォルトの名無しさん mailto:sage [2010/02/17(水) 12:38:35 ] >>297 そういう重要な条件を後出しするんじゃねえボケ
300 名前:デフォルトの名無しさん mailto:sage [2010/02/17(水) 13:06:53 ] >>299 そうですね、ごめんなさい しかし、もし"月"と"日"が含まれている住所が存在するなら >>298 の方法には完全に穴がありますね ところで、 'もし住所2が日付形式に変換されていたら Address2 = Cells(i, 8).Text Cells(i, 8).NumberFormat = "@" If InStr(Address2, "月") + InStr(Address2, "日") <> 0 Then Cells(i, 8).Value = Address2 ここまでは作ったんですが、この後"月"や"日"をReplaceでいじろうとしても うまくいかない…>>123 の問題とかぶってるのかな? 具体的に言うと、"月"を"-"、"日"を""にReplaceしてやるとまた日付形式に 戻っちゃうんです。なんなんだ…泣きそうw
301 名前:デフォルトの名無しさん mailto:sage [2010/02/17(水) 13:29:18 ] ああ、 If InStr(Address2, "月") + InStr(Address2, "日") <> 0 ではなくて If InStr(Address2, "月") <> 0 And InStr(Address2, "日") <> 0 Then じゃないとまずいですね。NORが無いのは残念だ
302 名前:デフォルトの名無しさん mailto:sage [2010/02/17(水) 13:34:24 ] こうやって糞シートが出来上がっていくんですねw
303 名前:デフォルトの名無しさん mailto:sage [2010/02/17(水) 13:35:32 ] >>302 ベストな解答頼む
304 名前:デフォルトの名無しさん mailto:sage [2010/02/17(水) 13:48:11 ] 結局どうせごり押しなら Cells(i, 8).NumberFormat = "m-d" で通しちゃうことに決めました これだと日付形式じゃないものはそのままですし >>302 俺からもお願いします
305 名前:デフォルトの名無しさん mailto:sage 釣り針 [2010/02/17(水) 14:52:16 ] Excelは青色申告用ソフトであって住所録じゃないんだからそういう使い方自体が間違ってる
306 名前:302 mailto:sage [2010/02/17(水) 15:40:13 ] >303-304 つ>294-295
307 名前:デフォルトの名無しさん mailto:sage [2010/02/17(水) 15:45:56 ] それがベストな解答?
308 名前:デフォルトの名無しさん mailto:sage [2010/02/17(水) 17:45:54 ] Excelって青色申告用ソフトだったのか。長年使ってて初めて知った。そういう用途には一度も使った事ねーや w
309 名前:デフォルトの名無しさん mailto:sage [2010/02/17(水) 21:02:37 ] webクエリで勝手に保存されてしまうアドレス群の中で、不要な物が多すぎるので消したいんだけど何か方法ないですか? VBA使うやり方でも使わないやり方でもなんでもいいです。
310 名前:デフォルトの名無しさん [2010/02/17(水) 22:08:49 ] マクロを実行して 途中でエラーになった場合 VBAの画面が開かれるのですが これを開かずに実行に失敗した事だけを伝えるのってどうすればいいのでしょうか?
311 名前:デフォルトの名無しさん mailto:sage [2010/02/17(水) 22:20:11 ] On Error Resume Next とか
312 名前:デフォルトの名無しさん mailto:sage [2010/02/17(水) 22:49:24 ] >>308 まあExcelは違うわな パソコンと表計算ソフトの最初の利用目的が税金の計算だったってだけの歴史上の話だから
313 名前:デフォルトの名無しさん mailto:sage [2010/02/17(水) 22:50:47 ] >>309 必要か不要かを機械的に判断するロジックがあれば可能 人間が見ないとわからない物は手作業で消すしかない
314 名前:デフォルトの名無しさん mailto:sage [2010/02/18(木) 00:27:32 ] VBはマイクロソフトが開発したわけではなく 他社が開発したものをマイクロソフトが買収したもの
315 名前:デフォルトの名無しさん mailto:sage [2010/02/18(木) 08:58:22 ] >>313 レスありがとう、手作業での消し方すらわからんとです。
316 名前:293 mailto:sage [2010/02/18(木) 09:00:40 ] >>305 住所録として使っているわけではありません csvにマクロを適用させるアプリとして使っているのです >>306 だからその案は却下されたんですって言ってるじゃないですか なんだ、がっかりです
317 名前:デフォルトの名無しさん mailto:sage [2010/02/18(木) 09:14:05 ] >316 >だからその案は却下されたんですって言ってるじゃないですか そうやって例外が例外を産み、糞シートが出来上がっていくのだよ。 >294-296がベストな回答だと思うがな。
318 名前:デフォルトの名無しさん mailto:sage [2010/02/18(木) 10:09:40 ] >>317 自覚のない素人に何を言っても無駄 仕事でこんなことやってるってのにはビックリした
319 名前:デフォルトの名無しさん mailto:sage [2010/02/18(木) 10:13:05 ] だめだこいつw 293は限定された条件の中でのベストな回答を訊いてるんだろうに。 その条件自体に文句つけてどうする。 サッカーやるのに「手を使えないのがおかしい!」って言ってるのと一緒だ。
320 名前:デフォルトの名無しさん mailto:sage [2010/02/18(木) 10:27:11 ] >318 そういうくだらないことやってる会社って結構あるけどなw
321 名前:デフォルトの名無しさん mailto:sage [2010/02/18(木) 10:34:38 ] 文字列データを「"」でかこってないCSVをダブルクリックでまともに開きたいってだけでしょ 開いた後で自動なり手動なりでマクロから読み込み直しさせればいいだけじゃないの?
322 名前:デフォルトの名無しさん mailto:sage [2010/02/18(木) 11:08:39 ] >>312 > >>308 > まあExcelは違うわな > パソコンと表計算ソフトの最初の利用目的が税金の計算だったってだけの歴史上の話だから 都合のいいところでお前のパソコンの歴史が始まったらしいな。 そんな話聞いたこと無いぞ。
323 名前:デフォルトの名無しさん mailto:sage [2010/02/18(木) 12:22:22 ] パソコンは戦争目的じゃなかったか? 弾道計算か何かだと思う 表計算ソフトは ttp://ja.wikipedia.org/wiki/VisiCalc だとさ。金融がどーとかで税金かどうかまでは分からないが、 まあ似たようなものといえなくも無いが間違ってるとも言える ってかどっちでもいい
324 名前:293 mailto:sage [2010/02/18(木) 13:10:45 ] なんかちょっとだけ盛り上がってますね。すみません >>321 ああ、それがベストですね! ルールを変えろ、って言ってる人は意味がわかりません 変えられない前提だって言ってるのになあ
325 名前:デフォルトの名無しさん mailto:sage [2010/02/18(木) 13:33:05 ] サッカーボールを手で運べ!
326 名前:デフォルトの名無しさん mailto:sage [2010/02/18(木) 13:36:52 ] ラグビーの発祥です
327 名前:デフォルトの名無しさん mailto:sage [2010/02/18(木) 13:57:47 ] なるほど
328 名前:デフォルトの名無しさん mailto:sage [2010/02/18(木) 14:13:01 ] どんな書類でもエクセルで作りそうw
329 名前:デフォルトの名無しさん mailto:sage [2010/02/18(木) 14:16:17 ] フローチャートをエクセルで作るウチの会社のことだな 俺は個人的なチャートならイラレで作ってるw
330 名前:デフォルトの名無しさん mailto:sage [2010/02/18(木) 14:30:58 ] アプリなんてどんな使い方してもいいよ 本来の目的からずれてようが、便利なら使えばいい
331 名前:デフォルトの名無しさん mailto:sage [2010/02/18(木) 14:38:19 ] webページから一部分だけエクセルに取り込むコード作りたいんだけど、webクエリだと大きく取り込んでしまうので困ってます。 具体的には、ヤフーファイナンスからコードと社名と業種だけ(他はいらないです)欲しいんだけど、そういうピンポイントで取り出すみたいな事出来ますか? また、そういうデータ取り込み系統の技術を得るための参考書籍とかあったら紹介して下さい。