1 名前:デフォルトの名無しさん mailto:sage [2009/09/30(水) 12:25:04 ] 過去スレ 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/
381 名前:デフォルトの名無しさん mailto:sage [2009/10/19(月) 19:12:37 ] ユーザーフォームを印刷しようと思ってるのですが、ユーザーフォーム自体のサイズが大きいのでA4のサイズに納まらずはみ出てしまいます… A4サイズに縮小して印刷する方法はないでしょうか? コードはシンプルに userform1.printform だけです。 かなりググッたりしてみましたが、良いホムペもなかったので…
382 名前:デフォルトの名無しさん mailto:sage [2009/10/19(月) 19:37:40 ] >>373 いやだからhttp://でアクセスできるんだけど読み取りになるんだよ。 それはhttpプロトコルの制約だから。 http://を\\サーバIPにして後ろの/を全て\になおしてみて。
383 名前:デフォルトの名無しさん mailto:sage [2009/10/19(月) 19:43:01 ] >>381 縮小印刷はプリンタドライバの仕事。機種依存になるので自力で試行錯誤が必要
384 名前:デフォルトの名無しさん mailto:sage [2009/10/19(月) 20:33:33 ] excel2007 リストボックスに3列データを入れる事が出来るようになったとこなんですけど (1) これタイトルみたいなのを付ける事は出来ないんですか? コード 商品名 支店 ←付けたいタイトル 9999 xxxxxxxxx xxxxxxx ←データ みたいな感じで。 (2) code=Userform1..ListBox1.Text で選択したコードを拾う事は出来たんですが、この例で商品名を拾うにはどのようにすれば良いのですか?
385 名前:デフォルトの名無しさん [2009/10/19(月) 21:22:18 ] 【1 OSの種類 】 Windows XP SP2 【2 Excelのバージョン】 Excel2000 【3 VBAが使えるか 】 4日目 勉強中 【4 VBAでの回答の可否】 可 まだひよっこちゃんですが皆さんよろしくお願います。 マクロの勉強兼ね、エクセルでTOEICの単語帳を作ろうと思っています。 形としましては、 英単語および日本語訳をシートのA、B列に羅列し、 ユーザーフォームで、 英単語用のテキストBOX1、コマンドボタン1、 日本語用のテキストBOX2、コマンドボタン2 暗記済みのチェックボックスが3つ という構成で、 コマンドボタン1を押すとランダムで英単語が選択され、テキストボックス1に表示 その状態でコマンドボタン2を押すとその訳がテキストボックス2に表示され、 暗記済みの時はチェックボックスにチェックをつけ、3つたまるとその単語は二度と出てこないようにしようと思います。 また、再度ファイルを開いても単語ごとに同じ状態が保存されているようにしたいと思います。 単語数が600あるという設定で、以下のように作ってみましたが、日本語訳表示の時点で詰まってしまいました。
386 名前:385 [2009/10/19(月) 21:24:01 ] Private Sub UserForm_Click() End Sub Private Sub UserForm_Initialize() End Sub Private Sub CommandButton1_Click() Dim intmax As Integer Dim intmin As Integer intmax = 600 intmin = 1 TextBox1.Value = Cells(Int((intmax - intmin + 1) * Rnd + intmin), 1) End Sub Private Sub CommandButton2_Click() TextBox2.Value = TextBox1.Value.Offset(0, 1) End Sub CommandButton2 の TextBox2.Value = TextBox1.Value.Offset(0, 1)なんかは 明らかにおかしいかと思いますが、テキストボックス1に表示した、英単語をどのように返せばいいのでしょうか。 Cells(Int((intmax - intmin + 1) * Rnd + intmin), 1)を再度使うと、新たなランダム値を取得してしまうのですしょうか? かなり初歩的かもしれませんが、紙にプリントしてさっさと単語覚えた方が早いんじゃないかと、焦ってきましたもんで でも何とか完成させたいので、どなたか以下のいずれでもいいのでご教授ください。 ・ランダム値が同じ順序ではなく、常に変化する方法 ・チェックが各英単語ごとに反映させる方法 ・そのチェックがファイルを閉じても保存される方法 ・3回チェック済みの英単語を非表示にする方法(削除ではなく) よろしくお願いします
387 名前:デフォルトの名無しさん mailto:sage [2009/10/19(月) 21:56:18 ] >>385 ・ Cellsを使う時は、シートを指定したほうが良い ・テキストボックス2に日本語訳を返す為に 英単語を表示する時に使用したセルの行位置を保存しておく →モジュールレベル変数を利用する つー事で下記はいかが? Private mRow As Integer Private Sub CommandButton1_Click() Dim intmax As Integer Dim intmin As Integer intmax = 9 intmin = 1 mRow = Int((intmax - intmin + 1) * Rnd + intmin) TextBox1.Value = Worksheets("sheet1").Cells(mRow, 1).Value End Sub Private Sub CommandButton2_Click() TextBox2.Value = Worksheets("sheet1").Cells(mRow, 2).Value End Sub
388 名前:デフォルトの名無しさん mailto:sage [2009/10/19(月) 22:07:56 ] 今まで快適に使えていたエクセルファイルが、 突然アホみたいに重くなって起動が容易じゃない。 色々調べたけどさっぱり解らない…。 誰か助けてください。 ・サイズは600KBほど ・隠れてるオブジェクト無し ・使用範囲以外に隠れデータ一切無し (書式設定やリンクなど) ・シート30枚ほど ・モジュールの解放もやってみたが改善せず
389 名前:デフォルトの名無しさん mailto:sage [2009/10/19(月) 22:13:45 ] 特定ファイルだけ? ハードディスクが死にかけてるとか
390 名前:デフォルトの名無しさん mailto:sage [2009/10/19(月) 22:18:01 ] ウィルスチェックoffにして開いてみれ
391 名前:デフォルトの名無しさん mailto:sage [2009/10/19(月) 22:19:53 ] 他のファイルのシートと連動させてるようなのだと ファイルの置き場所変わっただけで リンク先行方不明連発で死亡とかあるから Excelきらい
392 名前:388 mailto:sage [2009/10/19(月) 22:54:19 ] >389 特定ファイルだけです。 会社で作成したデータ集計用のファイルです。 これ1つだけが異常に重くなり、開く時に CPU100%を食う状況になっています。 >390 ウィルスチェックoffにすることは出来ないです。 会社で常にネットワーク接続されてるもので…。
393 名前:デフォルトの名無しさん mailto:sage [2009/10/19(月) 23:22:01 ] >>388 ここは Excel VBAスレなんでスレ的に考えると VBAの処理が 異常に時間がかかってるのでは? 原因として ・VBAのコードを変更した為に 異常なループが発生した ・元々のVBAのコードにバグがあって あるデータの組み合わせで 異常なループとなった とか? だとすれば とりあえずオープン時実行するイベント処理停めてみたら? イベントプロシージャの先頭に Exit Sub を入れてみる
394 名前:デフォルトの名無しさん mailto:sage [2009/10/19(月) 23:31:32 ] >>392 ローカルにコピって スタンドアロンのPCでテスト汁 さらにウィルスチェックoffにして開いてみれ
395 名前:デフォルトの名無しさん mailto:sage [2009/10/19(月) 23:46:05 ] >>392 xlbファイルを削除する。 CドライブをExcel*.xlbで検索してみて。
396 名前:デフォルトの名無しさん mailto:sage [2009/10/19(月) 23:58:33 ] >>391 そんな使い方しないよ。
397 名前:385 [2009/10/20(火) 00:54:42 ] 387さんありがとうございます。 値を保存するという便利な方法があったんですね。 勉強になります。おかげさまで単語帳っぽくなりました。 残りのチェックボックスにかかわる部分ですが、もう少し努力してみます。 ただ ・チェックを各英単語ごとに反映させる方法 ・3回チェック済みの英単語を非表示にする方法(削除ではなく) これらがどうにもできそうにないです… すんません チェックボックスにチェック入れた単語のどこかの列に、何かしら数字など加え その値を返して、状態を判断することしか思いつかないのですが、 何かもっと良い方法ありますかね?
398 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 01:21:27 ] とりあえず出来る方法を思いついたなら、それでやればいい その方法だとこんな問題がある、とかならそれを質問すればいい もっと良い方法とか漠然と聞かれると速度房がアップ始めるぞ
399 名前:384 mailto:sage [2009/10/20(火) 08:16:29 ] 自己解決 (1) これタイトルみたいなのを付ける事は出来ないんですか? フォームのリストボックスの上方にラベルを配置し、それをタイトルとするように しました。 (2)code=Userform1..ListBox1.Text で選択したコードを拾う事は出来たんですが、 この例で商品名を拾うにはどのようにすれば良いのですか? Dim n As Integer n=UserForm1.Listbox1.ListIndex xxx = ListBox1.List(n,0) yyy = ListBox1.List(n,1) zzz = ListBox1.List(n,2) 以上、スレ汚しでした
400 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 10:28:27 ] あらあらこんなに汚しちゃうなんて……イヤラシイ子ね……フフフ
401 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 12:38:07 ] ここに速度厨なんている? 俺は速度より美しいか汚いかにこだわるが、たまに速度厨と勘違いされる。 汚いのは遅いって大体決まってるけどな。 そこの君、お前だよw
402 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 19:25:43 ] >>385 完成したらサンプル見せてください。お願いします。
403 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 21:14:22 ] VBA勉強中の初心者です。 セルA1〜A10まで100 A11に1 この状態で1がある行番号を手に入れたいんですが 結果は2です。 どうやったら11を入手出来るんでしょうか? Dim rng As Range Set rng = ActiveSheet.Range("A1:A11").Find(1) A = rng.Address B = Rows(A)
404 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 21:21:06 ] >>401 誰を煽ってるんだよw 唐突過ぎてわろたわ
405 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 21:49:07 ] >>403 100 という文字列での 1の部分でヒットしているみたいね とりあえず下記ではどう? Set rng = ActiveSheet.Range("A1:A11").Find(1, LookAt:=xlWhole)
406 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 21:56:20 ] Find関数はいろいろとバグがある。
407 名前:405 mailto:sage [2009/10/20(火) 22:08:06 ] >>406 たしかに今回の場合だと セルの表示形式を数値にすると ヒットしなくなるね
408 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 22:09:02 ] たしかにオートフィルタとかのVBAの使い勝手がいい
409 名前:392 mailto:sage [2009/10/20(火) 22:43:00 ] 解決しました。 tmpファイルを全て削除してみたところ、 かなり軽減されましたがまだ反応が鈍かったため、 思い切って新規エクセルに全て コピーしてみました。 結果、快適に動くようになりました。 おまけにサイズも400kbまで小さくなりました。
410 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 22:57:36 ] >405 有難うございます。 明日になってしまいますけど、試してみます。 上手くいったら、その時に LookAt:=xlWhole の意味を理解したく教えて下さい。
411 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 23:29:44 ] 特定の文字列にヒットする条件ならワークシート関数が強力だが 勉強しはじめなら、セルを一個一個確認してループさせる手法からハイルべき 特にエクセルVBAなら
412 名前:405 mailto:sage [2009/10/20(火) 23:37:10 ] >>410 & 411 >>411 の意見には賛成です 今回の場合は特に >>410 の質問の回答ですが Findは Excel本体の検索とほぼ同じものです マクロの記録をいろいろしてみると分かると思いますが "完全に同一のセルだけを検索する"です それと>>407 へ書いたけど セルの表示形式が数値だと失敗するかもです 一応 標準形式だとうまく検索できたのだけど
413 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 07:11:50 ] Findメソッドは基本的に文字列を検索するもんだ。 まさか数値を検索してバグがあるなんて言ってるんじゃねーだろうな。
414 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 13:53:11 ] ちょっと暇なときにVBA勉強しようと思うんですが、勉強するなら2003と2007どっちがいいですか?
415 名前:325 mailto:sage [2009/10/21(水) 15:09:21 ] >>382 ありがとうございます。勘違いしてました・・・・ しかし、\\サーバIPにしてもだめでした。 Sub COPY_SAMPLE() Dim objShell Dim objFolder Set objShell = CreateObject("Shell.Application") Set objFolder = objShell.NameSpace("\\サーバ名\フォルダ名1\フォルダ名2") If (Not objFolder Is Nothing) Then objFolder.CopyHere "c:\TEST.txt" Else MsgBox "Nothing" End If Set objFolder = Nothing Set objShell = Nothing End Sub Nothingのメッセージボックスが出ます・・・
416 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 15:37:47 ] >>414 自分が持ってんのがどっちなのかによるでしょ。 今からなら2007の方が良いのかなとは思うけど。
417 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 16:11:22 ] >>416 ありがとうございます。持ってるのが2000と2007だったので2007勉強することにしました
418 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 20:02:12 ] 2000と2007しかもってないのに2003を選択肢にするとは・・・できる
419 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 20:03:45 ] >>415 q.hatena.ne.jp/1108018134 これでやってみな。 ヒントはきちんといかそうぜ。
420 名前:410 mailto:sage [2009/10/21(水) 21:43:51 ] >411-412 上手くいきました。有難うございます。 >413 そのまさかなんですが・・・ なんとか上手くいきました。独学&ヘルプ@2007ではなかなか上達しないですね。今度、本屋行ってきます!
421 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 22:04:58 ] いやバグはあるよ。
422 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 22:09:25 ] 【合法】みんなズッキーニでヘヴン状態しようぜ!! namidame.2ch.net/test/read.cgi/yasai/1223375038/
423 名前:デフォルトの名無しさん [2009/10/21(水) 22:51:50 ] 初心者です。質問させてください。 XP、office2000において、onactionで呼び出すsub hogeにsingleの引数を複数渡したいのですが、どのようにすればよいか教えてください。 .onaction("'hoge, arg1,arg2'") とかだとうまくいきませんでした。
424 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 23:41:28 ] select case の使い方についてですが 例えば、A4の値及びB4の値によって条件を分岐させたい時に (A4 1または2 B4 同じく 1または2) Select Ccase Cells(4,1) Cells(4,2) case 1 1 case 1 2 … end select みたいな使い方出来ないんですかね?Excel2007では select case cells(4,1) cells(4,2) でエンター押した瞬間に エラーになっちまいましたが。
425 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 23:52:34 ] 二十判定は出来ない 変数とかに格納したり論理結合したり ただ1か2のどちらかなら、文字列結合すりゃいい
426 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 23:58:26 ] >>425 了解しました
427 名前:デフォルトの名無しさん mailto:sage [2009/10/22(木) 09:32:17 ] >>423 .OnAction = ”'hoge””arg1””,””arg2””'”
428 名前:デフォルトの名無しさん [2009/10/22(木) 11:55:51 ] java経験しかないまったくの初心者ですが、質問させてください 列AQの行n1の文字列hoge1を取得して、hoge1を列Cより検索、 発見したらその行n2の列Bの文字列hoge2を列AUのn1のセルに代入 これをAQの行全てで実行したいのです Cにおいてhoge1が重複することはありません どうかよろしくお願いいたします
429 名前:デフォルトの名無しさん mailto:sage [2009/10/22(木) 12:04:24 ] vlookup
430 名前:デフォルトの名無しさん mailto:sage [2009/10/22(木) 12:21:27 ] 何行あるかしらんが、列全部にvlookupに限らず参照判定関数入れるのは そーゆーときは配列に流して連想しる
431 名前:デフォルトの名無しさん mailto:sage [2009/10/22(木) 13:47:33 ] Ver.書くのを忘れてました!ごめんなさい XPでExcel2003です 列Dの行n1の文字列hoge1を取得して、hoge1を列Cより検索、 発見したらその行n2の列Bの文字列hoge2を列Hのn1のセルに代入 これをDの行全てで実行したい、に変更させてください VBAとExcelマクロの知識が0なんです… vlookupという関数を使えばいいのですか? Cは2988行、Dは1284行です sub test() dim name as string for i = 1 to 1284 name = cells(i, 4) if (vlookup(D$i, C1:C2988, 2, false)) = name then copy() pastespecial() endsub こんな方向性で大丈夫ですか?
432 名前:325 mailto:sage [2009/10/22(木) 14:38:41 ] >>419 そのURLはググってる最中に何度か訪れたんですけど、 ちょっと私には扱えそうもなかったんでスルーしてたんですけど、 頑張って調べながらやってみたら2〜3度エラーが出ましたが、 希望通りアップロード出来ました!誠にありがとうございました。 一年分の便秘が治ったようなすがすがしい気分ですw
433 名前:デフォルトの名無しさん mailto:sage [2009/10/22(木) 15:16:28 ] >>431 no
434 名前:325 mailto:sage [2009/10/22(木) 15:22:42 ] >>419 すいません、これってLZHファイルとかは扱えないんでしょうか? TXTやSLK形式は成功したんですけど、LZH形式はエラーになったんです・・・
435 名前:434(325) mailto:sage [2009/10/22(木) 15:26:16 ] 自己解決しました。 LZH形式もいけました。ファイル名が不味かったようです。
436 名前:434(325) mailto:sage [2009/10/22(木) 15:28:23 ] 連投すみません。 LZH形式、エラーこそ出ませんでしたが、解凍すると文字化けしてまいした。
437 名前:434(325) mailto:sage [2009/10/22(木) 15:46:49 ] 再度自己解決しました。.typeと.charaset外したら正常に解凍出来ました。 スレ汚しすみませんでした。逝ってきます。
438 名前:デフォルトの名無しさん mailto:sage [2009/10/23(金) 00:08:18 ] >>431 言いたい事は分かるんだけどさ。 列Dだの列Hだの、n1だn2だって、そんなのどうでもいいよ。 それで作りたいんだろうけど、読んでて辛いです。 Aから探してBにコピーとかでいいじゃん。組み合わせるだけでしょ。 for i = 1 to 1284 name = cells(i,4).value set rng = columns(3).find(name) if not rng is nothing then rng.offset(0,1).value = rng.value end if next みたいな考え方でやるよ。俺なら。 今ブラウザで書いたんで、動作保障も無し。
439 名前:434(325) mailto:sage [2009/10/23(金) 09:54:04 ] >>419 さんの方法でアップロード解決したんですが、半角カナ等のファイル名をうpすると、 実行時エラーになります。回避する方法ありますでしょうか? D&Dでうpすると正常に出来るんですが・・・・
440 名前:431 mailto:sage [2009/10/23(金) 11:17:12 ] >>438 わーい!教えていただいたものを道標に調べつつやってみたらできました! 一応完成版を張っておきます Sub macro() Dim code As String Dim rng As Range Dim name As String For i = 2 To 1284 code = Cells(i, 4).Value Set rng = Columns(3).Find(code) If Not rng Is Nothing Then name = rng.Offset(0, -1).Value Cells(i, 9).Value = name End If Next End Sub ありがとうございました!
441 名前:デフォルトの名無しさん mailto:sage [2009/10/23(金) 12:20:06 ] >>439 エンコードでぐぐりな。
442 名前:デフォルトの名無しさん mailto:sage [2009/10/23(金) 12:29:34 ] >>440 そんなんで完成? Findメソッドの引数が1個だけって大丈夫カヨ WhatとLookInとLookAtの最低三つは必要じゃないの?
443 名前:デフォルトの名無しさん mailto:sage [2009/10/23(金) 13:52:52 ] >>442 一応ちゃんと動作しましたよ! 今回一回だけ動けばいいマクロなので、結果に間違いがなければOKです!
444 名前:デフォルトの名無しさん mailto:sage [2009/10/23(金) 14:17:40 ] >>443 そりゃたまたまでんがな。 何もいじくってない状態じゃ部分一致だが、それでいいの?
445 名前:デフォルトの名無しさん mailto:sage [2009/10/23(金) 14:28:40 ] 本人がOKってんだからいいんじゃね?
446 名前:デフォルトの名無しさん mailto:sage [2009/10/23(金) 14:38:09 ] >>444 う、もしかして上手くいったと勘違いしてるだけなんですかね… codeはxx01みたいな形で、nameは文字列(重複部分多々あり)なんですが ちゃんと調べてみます!
447 名前:お願いします>< [2009/10/24(土) 01:26:35 ] VBA初心者です。 学校の宿題で 「y=sinXとY=Xの2本の直線で囲まれた面積をVBA関数を用いて求めなさい。」 という問題がでました>< ですが、今日初めてVBAという言葉を聞いたぐらいですので、まったく分かりません( ;∀;) どなたか記入するコードを教えて頂けないでしょうか?
448 名前:デフォルトの名無しさん mailto:sage [2009/10/24(土) 01:45:00 ] 学校の宿題は自分でやらなきゃダメ>< 何の前提もなしにそんな宿題が出るはずないから、わからないのは貴方がサボっていたってことでしょ
449 名前:デフォルトの名無しさん mailto:sage [2009/10/24(土) 02:20:06 ] 宿題スレ池
450 名前:デフォルトの名無しさん mailto:sage [2009/10/24(土) 02:45:13 ] >>447 これは酷いwww これが社会に出て行くと思うと末恐ろしいな
451 名前:デフォルトの名無しさん mailto:sage [2009/10/24(土) 10:22:29 ] sinXって直線なのかね
452 名前:デフォルトの名無しさん [2009/10/24(土) 10:57:44 ] >>424 遅レスですが、こんなアイディアも。 Select Case Cells(4,1) & Cells(4,2) case "11" case "12"
453 名前:452 mailto:sage [2009/10/24(土) 10:59:38 ] >>425 見てなかった… すまん
454 名前:デフォルトの名無しさん [2009/10/24(土) 11:43:07 ] セル参照の計算式 =G5*K3+M1 セル参照+数字の計算式 =F6*G6*3.14 数字のみの計算式 =15*21*45 この数式を区別して色分けする事は可能ですか? せめて上2つと下1つだけでも区別できればいいんですが
455 名前:デフォルトの名無しさん mailto:sage [2009/10/24(土) 11:47:42 ] >>451 正弦波だから、Y=1 から Y--1 までを往復する曲線かな。 Y=Xの直線とは1点交差するけど、2点とは交差しなんじゃないか? よくわかんないけどw
456 名前:デフォルトの名無しさん mailto:sage [2009/10/24(土) 12:13:36 ] だいたい2本の直線で囲まれる面積ってなによ 問題の意味すらわかんないならVBA以前の問題
457 名前:デフォルトの名無しさん mailto:sage [2009/10/24(土) 12:25:46 ] 非ユークリッド幾何だと日常的
458 名前:デフォルトの名無しさん mailto:sage [2009/10/24(土) 12:31:59 ] 大圏航路かよ 何年生の課題だ
459 名前:デフォルトの名無しさん mailto:sage [2009/10/24(土) 13:43:37 ] >>454 手元にPCがないから確認できないけど、今ぱっと思いついた案が1つある。 セルに入力されている数式を取得し、文字列操作関数を使用し演算子の部分で区切る。 区切られた文字列を確認して全てにアルファベットが含まれていれば、セル参照あり、全く含まれていなければセル参照なし。 その他は混合。 どうでしょう? 文系のおいらの考えなので、バカかと思う方はたくさんいると思うけど。
460 名前:デフォルトの名無しさん mailto:sage [2009/10/24(土) 13:46:03 ] >>459 だけど一部訂正。 「セル参照あり」→「セル参照のみ」だったよ。
461 名前:デフォルトの名無しさん mailto:sage [2009/10/24(土) 15:08:03 ] 問題文を写し間違えただけだろ Y=sinXとY=Xは3点で交わって、囲まれた領域は2つだ 片方だけ積分して倍すればいい
462 名前:デフォルトの名無しさん mailto:sage [2009/10/24(土) 19:24:38 ] >>459 0.100000000E+00
463 名前:デフォルトの名無しさん mailto:sage [2009/10/24(土) 19:26:00 ] >Y=sinXとY=Xは3点で交わって、囲まれた領域は2つだ kwsk
464 名前:デフォルトの名無しさん mailto:sage [2009/10/24(土) 20:36:00 ] >>454 セル参照があるかないかだけですが 一つの案として下記なんかはどうでしょうか? 一部の関数を使用していると判定ミスしちゃいますが(DAYS360 とか) With ActiveSheet.Cells(i, j) If (.Formula Like "=*[A-Z][1-9]*") Or (.Formula Like "=*[A-Z]$[1-9]*") Then 'セル参照を含む数式 .Interior.ColorIndex = 34 Else 'セル参照を含まない数式 又は 定数 .Interior.ColorIndex = 40 End If End With
465 名前:デフォルトの名無しさん mailto:sage [2009/10/24(土) 21:22:20 ] >>462 最初に「=」が付いてるか確認すれば問題ないと思う。
466 名前:デフォルトの名無しさん mailto:sage [2009/10/24(土) 22:22:36 ] 0.100000000E+00 +0.100000000E+00
467 名前:デフォルトの名無しさん mailto:sage [2009/10/24(土) 22:27:46 ] 絶対に関数は使われていないのだろうか?
468 名前:デフォルトの名無しさん [2009/10/24(土) 22:36:56 ] "=*[A-Z][1-9]*"や "=*[A-Z]$[1-9]*"って何を表してるんですか?
469 名前:デフォルトの名無しさん mailto:sage [2009/10/24(土) 22:42:26 ] 性器
470 名前:デフォルトの名無しさん mailto:sage [2009/10/24(土) 22:44:17 ] >>467 そういう話になってくると正規表現?
471 名前:デフォルトの名無しさん mailto:sage [2009/10/24(土) 23:17:41 ] 正規表現だと、 *[A-Z]$[1-9]* の、文末一致or後方参照の $ が説明付かない。
472 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 00:45:26 ] userformのtext1に入力された値を使うとき、 userform.text1と書くと思いますが、 text1、text2と順番に参照していきたい時、イメージとしては"text"&i のように変数で指定したいんですがエラーになってしまいます。 何かいい方法はないでしょうか?
473 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 01:25:10 ] excel2003でOSはXPです。 ダブルクオーテーションマークが検索したい文章内にある場合どうすればいいのでしょうか。 具体的には <IMG class="reslevel rf1 level2" alt="きこり レベル 2" src="img/x.gif"> というouterHTMLの文字列に一致したらdo while構文を抜け出すという形にしたいのです。 Do until objIE.document.all.outerHTML = "<IMG class="reslevel rf1 level2" alt="きこり レベル 2" src="img/x.gif">" という形でダブルクオテーションで括ったのですが「コンパイルエラー」となってしまいます。 どうすれば回避できるか教えていただけないでしょうか。
474 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 01:25:54 ] >>472 配列変数を使う(text1とtext2を配列変数に突っ込んで使う)
475 名前:464 mailto:sage [2009/10/25(日) 01:41:33 ] >>471 >>464 を書いたのは自分だけど 正規表現だと、 $は特殊な意味をもつの? Like 演算子では特殊な意味をもつようにはHELPに 書かれていなかったんで .Formula Like "=*[A-Z]$[1-9]* は =$A$1 とか =A$1 という形式でのセル参照も判定させたいので 付けたんです もしかして .Formula Like "=*[A-Z][$][1-9]*" って書いた方が正解なのかな?
476 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 02:00:43 ] >>474 ありがとう
477 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 02:59:44 ] >>475 msdn.microsoft.com/ja-jp/library/h5181w5w.aspx 少しは調べろよカス
478 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 08:59:51 ] >>475 だから、正規表現じゃないって言ってるのだよ。 =$A$1 を判定させるマッチパターンは、 pattern = "=\$[A-Z]\$[0-9]"
479 名前:デフォルトの名無しさん [2009/10/25(日) 15:58:07 ] 色々教えてもらいここに辿り着きました 1つのフォルダーにあるいくつかのcsvファイルの全てのA列からC列のデータを削除したいのです そういうvba作ってもらえませんか? どうかお願いします
480 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 16:05:55 ] >>479 >>2 の★5を100万回読むんだ
481 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 16:06:04 ] 了解 待ってな