1 名前:デフォルトの名無しさん mailto:sage [2009/07/14(火) 19:07:54 ] ExcelのVBAに関する質問スレです 前スレ pc12.2ch.net/test/read.cgi/tech/1241885130/ ★1 質問テンプレ(雛形)は用意しませんが、OSとExcelのバージョンは必ず書きましょう。 ★2 ExcelのVBA以外の部分に関する質問はNGです。 但し、VBA無しでも出来ることだが、あえてVBAでやりたいって物に関してはOK。 ★3 ExcelのVBE(Visual Basic Editor)を使うとしても、VBAの分野以外に関してはスレ違いです。 VBAとは、『Visual Basic for Application』の略で Application ├Workbooks |└Workbook | ├Worksheets | |└Worksheet というApplication以下のオブジェクトを、VB言語で操作するものを指します。 例えExcel付属のVBE(Visual Basic Editor)を利用しようとも、このApplication以下のブックやシート、 セルやオブジェクト等を操作するもの以外はVBA分野の話ではないので、ここでは聞かないでください。 ★4 とりあえず、Excelのインスタンスを作らずにVB6で出来ることは全てスレ違いだと思ってください。 ★5 レベルはどうあれ、ここはプログラマ用の板スレです。プログラマとは、自分でプログラムを組み コードを書く人の事なので、自分でやるきは全く無く、丸投げしようって人はお断りです。 ヒントを貰えばあとは自力でなんとかしますって人のみどうぞ。 ★6 わからなければとりあえず「マクロの記録」(Alt, T, M, R)
296 名前:デフォルトの名無しさん mailto:sage [2009/07/30(木) 13:10:25 ] ああ、オブジェクトの種類によって効かないやつがあるのか Rangeならいけるわ
297 名前:デフォルトの名無しさん mailto:sage [2009/07/30(木) 19:10:58 ] すみません、ご助言お願いいたします。 OS:Vista、Excel:2007 コンパイルを実行すると ”プロシージャの呼び出し、または引数が不正です”と表記されます。 この際、黄色い帯で示されるエラー部分が、 Public Function Zn(CZn, X, W, b, K1, K2, K3, K4, K5, K6, K7, K8, K9, K10, K11) Zn = 2 * (CZn - X - K3 * b * X - K4 * b ^ 2 * X - K5 * b ^ 3 * X - K6 * b ^ 4 * X - 2 * K7 * b * X ^ 2 - K8 * X * W - K9 * X * W ^ 2 - K10 * X * W ^ 3 - K11 * X * W ^ 4) / _ (K1 * X + ((K1 * X) ^ 2 + 4 * K2 * X * (CZn - X - K3 * b * X - K4 * b ^ 2 * X - K5 * b ^ 3 * X - K6 * b ^ 4 * X - 2 * K7 * b * X ^ 2 _ - K8 * W * X - K9 * X * W ^ 2 - K10 * X * W ^ 3 - K11 * X * W ^ 4)) ^ 0.5) End Function のZnの式の部分です。 色々考えたのですが原因がわからず、試しに、上手くいく類似のプログラムの Znを代入してみたところ、エラーは出ませんでした。 代用したZnの式は Zn = 2 * (CZn - X - K3 * b * X - K4 * b ^ 2 * X - K5 * b ^ 3 * X - K6 * b ^ 4 * X - 2 * K7 * b * X ^ 2 - K8 * X * W - K9 * X * W ^ 2) / _ (K1 * X + ((K1 * X) ^ 2 + 4 * K2 * X * (CZn - X - K3 * b * X - K4 * b ^ 2 * X - K5 * b ^ 3 * X - K6 * b ^ 4 * X - 2 * K7 * b * X ^ 2 _ - K8 * W * X - K9 * X * W ^ 2)) ^ 0.5) です。 (K10とK12の項を削除したものです) 最初のZn式がエラーを示す原因等、ご助言お願いいたします。
298 名前:デフォルトの名無しさん mailto:sage [2009/07/30(木) 19:48:59 ] 0.5
299 名前:デフォルトの名無しさん mailto:sage [2009/07/30(木) 20:09:56 ] ^ 0.5
300 名前:デフォルトの名無しさん mailto:sage [2009/07/30(木) 20:15:46 ] >>298 >>299 早速のご助言ありがとうございます。 0.5とは、最後のですよね。 ただ、エラーが出るZn式にも、出ないZn式にも含まれているのですが・・・?
301 名前:デフォルトの名無しさん mailto:sage [2009/07/30(木) 20:28:09 ] そのエクセルほしいな 2kしかもっていないけど、基本的に^は整数しか出来ない Zn = Application.Power(〜〜 ,0.5) で代用
302 名前:デフォルトの名無しさん mailto:sage [2009/07/30(木) 20:38:13 ] >>301 細かいけど前に「2 *」が抜けてないか?
303 名前:302 mailto:sage [2009/07/30(木) 20:40:41 ] 不足指摘してるのもまだ不足してたな さすがにそこまで応用力のないやつはいないか
304 名前:297 mailto:sage [2009/07/30(木) 20:46:40 ] >>301 ありがとうございます! 恥ずかしながら、301さんのスレを見て初めてVBAでワークシート関数の利用が 出来ることを知りました。。。 ほしいというのは、やはりここに書いただけではエラーの理由の解明が 難しいということでしょうか?
305 名前:デフォルトの名無しさん mailto:sage [2009/07/30(木) 21:08:48 ] いや、全部確固内に記述しちゃえばよかろ
306 名前:297 mailto:sage [2009/07/30(木) 21:46:24 ] アドバイス頂いた方法でやってみたのですが、だめでした 最初のZnの式を Zn = 2 * (CZn - X - K3 * b * X - K4 * b ^ 2 * X - K5 * b ^ 3 * X - K6 * b ^ 4 * X - 2 * K7 * b * X ^ 2 - K8 * X * W - K9 * X * W ^ 2 - K10 * X * W ^ 3 - K11 * X * W ^ 4) / _ (K1 * X + Application.WorksheetFunction.Power(((K1 * X) ^ 2 + 4 * K2 * X * (CZn - X - K3 * b * X - K4 * b ^ 2 * X - K5 * b ^ 3 * X - K6 * b ^ 4 * X - 2 * K7 * b * X ^ 2 _ - K8 * W * X - K9 * X * W ^ 2 - K10 * X * W ^ 3 - K11 * X * W ^ 4)), 0.5)) としたのですが、 「worksheetFunctionクラスのPowerプロパティを取得できません」 とのことです。。。
307 名前:デフォルトの名無しさん mailto:sage [2009/07/30(木) 22:01:33 ] いろいろ変えてみたら
308 名前:デフォルトの名無しさん mailto:sage [2009/07/30(木) 22:24:23 ] これなら通るんだよね。 Sub test() Debug.Print 2 * Zn(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1) ^ 0.5 End Sub Public Function Zn(CZn, X, W, b, K1, K2, K3, K4, K5, K6, K7, K8, K9, K10, K11) Zn = (CZn - X - K3 * b * X - K4 * b ^ 2 * X - K5 * b ^ 3 * X - K6 * b ^ 4 * X - 2 * K7 * b * X ^ 2 - K8 * X * W - K9 * X * W ^ 2 - K10 * X * W ^ 3 - K11 * X * W ^ 4) / _ (K1 * X + ((K1 * X) ^ 2 + 4 * K2 * X * (CZn - X - K3 * b * X - K4 * b ^ 2 * X - K5 * b ^ 3 * X - K6 * b ^ 4 * X - 2 * K7 * b * X ^ 2 _ - K8 * W * X - K9 * X * W ^ 2 - K10 * X * W ^ 3 - K11 * X * W ^ 4))) End Function
309 名前:デフォルトの名無しさん [2009/07/31(金) 00:02:27 ] Excel.Range("Sheet1!$A$1").Find(What:="") What:= ←ここに255文字以上入れると、動かんのだが。
310 名前:デフォルトの名無しさん mailto:sage [2009/07/31(金) 00:36:05 ] Sub test() Dim HashedData Set HashedData = CreateObject("CAPICOM.HashedData") HashedData.Algorithm = CAPICOM_HASH_ALGORITHM_SHA1 HashedData.Hash "abc123あいう" MsgBox HashedData.Value End Sub 暗号化プログラムを作っているのですが、予定では 「f95439120bf5c5d2b962cbe3a530199226f1ed2e」 と出る予定だったはずなのに違う値が出て来るヽ(`Д´)ノ
311 名前:デフォルトの名無しさん mailto:sage [2009/07/31(金) 01:21:08 ] >>310 半角のみと全角のみで確認
312 名前:デフォルトの名無しさん mailto:sage [2009/07/31(金) 07:04:59 ] Excelを勉強したくてスレ検索しました ここがヒットしました。普通のExcelとExcel VBAとの違いはなんですか? エクセルとは、プログラムしたエクセルに同じ動作を繰り返させるものだとホームページで読みました。
313 名前:デフォルトの名無しさん mailto:sage [2009/07/31(金) 07:24:10 ] >>312 >普通のExcelとExcel VBAとの違い 比較する対象ではありません。 ExcelはExcel VBAを含みます。 しかし、例外もあり、含まないExcelもあります。 >エクセルとは、プログラムしたエクセルに同じ動作を繰り返させるもの 再帰的な定義ですね。 その「ホームページ」には「プログラムしたエクセル」の定義は書いてありましたか?
314 名前:デフォルトの名無しさん mailto:sage [2009/07/31(金) 07:41:40 ] 暗号化なんてやったことないわ
315 名前:デフォルトの名無しさん mailto:sage [2009/07/31(金) 09:58:31 ] >>297 Functionの最初に Debug.Print CZn; X; W; b; K1; K2; K3; K4; K5; K6; K7; K8; K9; K10; K11 ってのを追加して、エラーが出た時のパラメータを教えて
316 名前:デフォルトの名無しさん mailto:sage [2009/07/31(金) 12:36:30 ] >>297 マイナスの平方根をとろうとしてる 実数解を期待してるなら、式かパラメータかどっちかがおかしい
317 名前:デフォルトの名無しさん [2009/07/31(金) 14:06:05 ] Excel2003使用 sheet1にある表のB列に「特定」があれば、その行をコピーして sheet2の2行目から下へ順番に貼り付けたいのですが、 sheet2への貼り付けがうまくいきません。 Rend = Range("c65536").End(xlUp).Row For i = 7 To Rend If Range("b" & i) = "特定" Then Worksheets("sheet1").Rows(i).Select Selection.Rows.Copy Worksheets("sheet2").Rows(i).PasteSpecial End If Next Worksheets("sheet2").Rows(i).PasteSpecialの変数(i)を Rend2=Range("a2").end(xldown).offset(1,0)を作って それを当てはめてもうまくいきません。 解決方法を教えてください
318 名前:デフォルトの名無しさん mailto:sage [2009/07/31(金) 14:46:12 ] なにがどううまく行かないのかと シート2のセルをカウントする変数を組み込めばいいんじゃね
319 名前:317 [2009/07/31(金) 15:19:14 ] >>272 ありがとうございます。^^ おかげさまで解決しました。
320 名前:デフォルトの名無しさん [2009/07/31(金) 16:17:05 ] 【回答は】Excel VBA質問スルナ Part13【ググレ】
321 名前:デフォルトの名無しさん mailto:sage [2009/07/31(金) 20:03:47 ] >>317 おそらく、sheet2をアクティブにしていないから
322 名前:デフォルトの名無しさん mailto:sage [2009/08/01(土) 07:56:11 ] すいません。 一般的な関数(例えばsinなど)では EXCELのセル上で 『 =sin( 』を入力すると 入力セルの近くに『 SIN(数値) 』というクイックヒントがでます。 しかしVBAでユーザー定義関数をつくり、 同様にセル上で作成した関数を入力してもクイックヒントが出てきません。 どのようにすれば自作の関数でもクイックヒントがでるようになるのでしょうか。 教えてください。 Excel2003、WindowsXPです。
323 名前:デフォルトの名無しさん mailto:sage [2009/08/01(土) 08:50:04 ] ヒントはヒントとして定義しなきゃ出ないよ Functipnプロシージャを書いただけじゃ、関数と引数を定義しただけだ とはいえ、Excelでユーザー定義関数のヒントを定義するのは面倒なので 「関数の引数」ダイアログを使う方法をオススメする こちらは定義というか宣言した引数がそのまま出てくる
324 名前:デフォルトの名無しさん mailto:sage [2009/08/01(土) 13:32:00 ] WindowsXP Excel2000で作っています。 url = "http://・・・/a.html" Workbooks.Open Filename:=url という形で、社内のイントラネット上のhtmlファイルをブックとして開きたいのですが、 インターネットのファイルや、PC内のファイルは開けるのに イントラネット上のファイルは開けません。 なにか、特別な認証が必要なのでしょうか?
325 名前:デフォルトの名無しさん mailto:sage [2009/08/01(土) 18:02:08 ] 社内イントラ上のhtmlファイルの参照を、http://・・・としてるの? それだと開くわけないよね。
326 名前:デフォルトの名無しさん mailto:sage [2009/08/01(土) 18:46:15 ] んなわけなかろ いや端末アドレスがそうなってるなら問題ないだろ
327 名前:デフォルトの名無しさん mailto:sage [2009/08/01(土) 19:07:40 ] IEや他のブラウザでurl = "http://・・・/a.html"が開けるかどうかだね
328 名前:324 mailto:sage [2009/08/02(日) 00:05:27 ] みなさんありがとうございます。 IEなどのブラウザでは開けます。 ちなみに、イントラネットのファイルのアドレスは 192.168.1.10/ 〜/〜.html みたいにIPアドレスになってます。
329 名前:デフォルトの名無しさん mailto:age [2009/08/02(日) 22:32:07 ] cells(x,y)="" cells(x,y)=Empty の違いってなんでしょうか?
330 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 03:28:45 ] >>329 EmptyはVariant型で「変数が初期化されていない」という意味の特殊な値。 "" はString型で長さが0の文字列。ただしCellsに代入した場合は自動的にEmptyに変換されるので 結果は同じになる。
331 名前:322 mailto:sage [2009/08/03(月) 05:41:14 ] >>323 ありがとうございます。 「関数の引数」ダイアログ理解しました。 しかしできることなら、やはりヒントを定義したいのですが その場合はどのような方法でやればいいのでしょうか?
332 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 06:37:59 ] 君には無理だ。やめておけ。
333 名前:デフォルトの名無しさん [2009/08/03(月) 14:57:23 ] シートを保存する時に書式を含む値のみを保存しているのですが、条件付き書式も 通常の書式に変換(&削除)したいのですが、何か良い方法がありますでしょうか?
334 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 17:31:03 ] >>333 新規のシートに はりた
335 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 17:32:32 ] 新規のシートに 貼りつけて保存すればいんじゃね
336 名前:デフォルトの名無しさん [2009/08/03(月) 19:54:43 ] OS -> Windows Vista Excel Office2007 ある文字列をカウントする関数Function()を作ってみたけど 参照しているセルの値が変わっても自動計算されません。 なぜでしょうか? Excelの自動計算はONにしてます。 また、マクロも有効になっています。 数式バーにカーソルを合わせてEnterキーを押すと そのセルだけが更新されます。
337 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 20:45:52 ] 参照式とFuncitonの内容を書きなさい。 それだけの情報だとなんともいえない。
338 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 00:23:59 ] あるシートに別ファイルシートのイベントマクロをコピーしたいのですが、 たくさんのシートがあるので、手作業でなく、コピーそのものをマクロ化する方法を教えて下さい。
339 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 00:43:47 ] >>338 モジュールのインポート、エクスポート
340 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 06:17:42 ] >>336 それだけの情報だとApplication.Volatile使えとしかいえない。 >>338 VB言語でVBプロジェクトを弄る方法は、表計算(Excel)とは関係ないので >>339 の方法がお気に召さないならそれ以上はスレ違いって話になる しかし、あるブックの複数シートで同一イベントを起こしたい場合 シートモジュールでのWorksheet_Changeの変わりに ブックモジュールでWorkbook_SheetChange使えば良いだけの話だがな
341 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 08:57:24 ] はぁ? VBEこそ、もろこのスレ向きの話題だろうが
342 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 09:03:08 ] >341 ハァ? (゚Д゚)y─┛~~
343 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 09:56:25 ] Microsoft Visual Basic for Applications Extensibilityを参照してImportで一括インポート Application.VBE.を使用して挿入 好きなほうをどうぞ
344 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 13:47:39 ] >>336 なんでCOUNTIFがあるのに自作するのか分らんが、関数の参照してるセルはきちんと引数に入れてるのか? 一部の揮発性関数をのぞいて、基本的に関数は引数が変化したときだけ自動では再計算する。 =COUNTIF(A1:A10,C1)ならA1:A10のいずれかのセル、またはC1が変更されたときだけだ。 だから自分で関数を作るときも範囲と検査値の二つの引数を入れるように作らないと駄目だ。 Application.Volatileで逃げるのは間違った解決策だから気をつけろ。
345 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 15:25:14 ] URLをページタイトルに置換するスクリプトなのですが動作が不安定です。 どこを修正したらよいでしょうか。どなたご教授お願いします。 Sub GetWebPageTitle() Dim objIE As Object Dim lngLastRow As Long Dim i As Long Dim strURL As String On Error GoTo ErrHandler 'IEのオブジェクトを作る Set objIE = CreateObject("InternetExplorer.Application") '最終行取得 lngLastRow = Me.Range("A65536").End(xlUp).Row For i = 1 To lngLastRow strURL = Me.Cells(i, "A").Value objIE.Navigate strURL '表示完了まで待つ Do While objIE.Busy = True And objIE.ReadyState <> 4 DoEvents Loop Me.Cells(i, "B").Value = objIE.Document.Title Next i objIE.Quit MsgBox "タイトル取得完了" Finally:
346 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 15:25:55 ] >>345 の続き Set objIE = Nothing Exit Sub ErrHandler: With Err MsgBox .Number & vbCrLf & .Description, vbCritical End With Resume Finally End Sub
347 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 15:46:44 ] あ、そっかFalseにするんだ。 自己解決しました。 すみません。
348 名前:338 mailto:sage [2009/08/04(火) 19:41:57 ] >>339-343 ありがとうございます。 インポートは、シートでなくmodule にくっついてしまいだめでした。 教えていただいた方法を順に試してみたいと思います。 excel のvbaしかやったこと無いので、イベントをしらべだしてから VBEなどがあるのを最近知った初心者です。
349 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 19:55:33 ] , -'"´  ̄`丶、_ ,.∩ `ヽ 〃∪'´ ̄`二二人\ ヽ | ツ´ ̄ ̄ ̄ ̄´ ヾ ヽ. ', |ハ ,ニ、 ,. - 、 | | | l | | ハ ィハ ,二ヽ. | | | | | 同じ板にコピペするとそのままだけど、 | | | じ' |トJ〉 /)} l | 違う板にコピペすると鬼のような怖い顔 | ハ 、'_,  ̄,, 厶イ川| に変わる摩訶不思議な佳子様コピペ。 l l /\ .. イV\川 | ,' l l ,イ `l ̄´ / /ヽl l l | l ハ `メ、 〃 ヽヽ、__ノ l ∨ └‐イ「ト--ァ'´ ハヽ__ノ ヽ/ } l」」 / / }`ー 〈_n| 八 / / /ノ 〈二二人 c /\/ / , イ / /厂 /\__>< {_
350 名前:336 [2009/08/04(火) 20:03:33 ] Excelのセキュリティの設定で常にマクロを有効にするか 確認するように変更したら自動計算されました。 >>344 複数の検索値でクロス集計するようにしています。 確かに範囲と検索値を引数に入れるようにしたほうがいいですね。 ありがとうございます。
351 名前:デフォルトの名無しさん mailto:sage [2009/08/05(水) 07:54:36 ] まさかピボットテーブルでやった方が簡単なことを関数、しかも自作の関数でやってるんジャマイカ?
352 名前:デフォルトの名無しさん mailto:sage [2009/08/05(水) 15:52:18 ] セルをビットに見立てて、エクセルで扱えないデータを格納・演算出来ることに気が付いたんだけど そもそも使わないんだよな……無意味なことをした
353 名前:デフォルトの名無しさん mailto:sage [2009/08/06(木) 08:26:34 ] テンプレの使うということに順していないので、スレ違いな質問だったらすいません。 今、XPのExcel2003のVBAの勉強をして二日目です。(プログラム経験などは一切なし) 参考にしているのは下記アドレスのページで第6章の途中まで進めました。 excelvba.pc-users.net/ 他にも勉強するのにいいサイトがありましたらご教示お願いできないでしょうか? 個人的には動的? なツールのような使い方(任意の桁や条件の数字だけを抽出のような感じです)や 共通作業のソフト化(今は仕事でExcelを使うことはないですが…)を出来るようになるのが理想です。
354 名前:デフォルトの名無しさん mailto:sage [2009/08/06(木) 12:43:01 ] そういうことがやりたいならVBAではなくVBの勉強した方がいいね しかし、サイト紹介もVBの話もスレ違いだから自分で探しな VBA分野で具体的な質問が有ったらまたおいで
355 名前:デフォルトの名無しさん mailto:sage [2009/08/06(木) 22:15:56 ] 抽出結果をExcelに出力するならVBAでいいよ。
356 名前:デフォルトの名無しさん mailto:sage [2009/08/06(木) 22:19:36 ] >>57 Open "ABC" & Str(i) & ".txt" とした方がいいのでは?
357 名前:デフォルトの名無しさん mailto:sage [2009/08/06(木) 22:54:33 ] >>353 何で最近のゆとりは本買わないんだ。 本買え本。 しょーもないサイトを探し回る時間の損失に比べたら、2,3冊の本代なんて安いもんだ。
358 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 00:42:24 ] 保護をかけた状態でロックを外したセルへの移動が 一部出来なくなってしまいました。 →と←の移動は効くんですが、↑と↓の移動を受け付けてくれません。 ScrollLockやロック外し忘れでは無いと思います。 あと、セルをクリックするとセルの周りに太枠が出るじゃないですか? あれも時々出なくなりました。 この現象が起こるのは今の所1つのブックだけです。 調べてみたんですが、何が原因かさっぱりわかりません。
359 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 00:44:05 ] 途中で送信してしまったorz 原因分かる人いたら教えて下さい。
360 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 06:36:21 ] レスありがとうございます。 >>354-355 もし仮に目的がVBでないと難しいことが分かっても、VBAで覚えたことは使えると思うので とりあえずこのままVBAを学んでみようと思います。 >>357 確かにそうですね。 今日にでも書店でよさげな本を探してみます。
361 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 22:16:53 ] ここで本とかを買った人って、何の本買ったのか気になる。 俺は、よく分かるプログラミングVBA 基礎・関数・応用 (大村あつし)の奴を3冊買ったんだけど。
362 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 23:49:18 ] >>338 シートにイベントマクロをセットする方法がわかりましたのでご参考までに。 みなさまありがとうございました。 セットするマクロ 'チャートシート cost に mouseupイベントをセットする例 Sub mouseup_set() Dim i As Long With ActiveWorkbook.VBProject For i = 1 To .VBComponents.Count If Mid(.VBComponents(i).Name, 1, 5) = "Graph" Then If .VBComponents(i).Properties("Name") = "cost" Then .VBComponents(i).CodeModule.AddFromFile "D:\vbadir\mouseup.bas" Exit For End If End If Next i End With End Sub 'mouseup.bas の内容 Private Sub Chart_MouseUp(ByVal Button As Long, _ ByVal Shift As Long, ByVal x As Long, ByVal y As Long) Dim ElemID As Long, Arg1 As Long, Arg2 As Long ' ここにMouseUp時の処理記述 End Sub 以上
363 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 23:50:19 ] >>362 忘れた、追記 windows XP, excel2007 です。
364 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 00:02:16 ] >>362 私本管理のDB見たら、Excel関連だけで\30kは使ってた OS関係やプログラム全般と合わせたら軽く\100kは超えてる 俺プログラマでも何でもない文系人間なのにww
365 名前:デフォルトの名無しさん [2009/08/09(日) 00:27:30 ] aが0.01、bが0.01の状態で、 b=b+a としてセルに代入すると 0.010.01となってしまいます 何がいけないんでしょうか
366 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 01:12:55 ] >>365 a、bが文字列になってる 数値に変換を
367 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 08:18:40 ] >>361 大村あつしの本は、知識0の人になら僅かな足しにはなるが 他と比べて有用といえる物では無いな
368 名前:デフォルトの名無しさん [2009/08/09(日) 11:35:42 ] sheet1上でマクロを使ってて、sheet2の中の値を取ってくるとき、 わざわざsheet2をアクティベートしてまた戻す、という方法じゃないとだめ? 住所みたいにsheet2;cells(3,3)みたく指定できませんか?
369 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 11:46:33 ] セルの値ならmacro4.0うんたらかんたら
370 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 11:46:50 ] >>368 Function GetCell(WS As String, row As Long, col As Long) As Variant GetCell = Worksheets(WS).Cells(row, col).Value End Function とかじゃだめなの?
371 名前:デフォルトの名無しさん [2009/08/09(日) 11:52:52 ] >>370 ふむふむ。自作関数使ったことないんですが、やってみます! それから、論理記号の∃(存在)って、for-next文で代替するしかないんでしょうか? たとえば、 If A1からA10の間に100以上の値があれば Then みたいに使いたいんですが
372 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 11:56:16 ] >>361 パーフェクトマスターとかいうでかい本一冊買ったくらいかなぁ ただ、本分厚すぎて面倒なんで、基本的にExcel内のヘルプに頼ってる。
373 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 12:34:08 ] >>368 > 住所みたいにsheet2;cells(3,3)みたく指定できませんか? sheet2.cells(3,3)ではあかんの? >>371 はforで代用が一般的だと思う ワークシート関数のMAXとかで一発で済ませてもいいし
374 名前:デフォルトの名無しさん [2009/08/09(日) 13:13:44 ] max(Sheet2.Cells(s, 4) : sheet2.Cells(s+e,4)) でやったらエラーでした。 cellsで範囲指定するのはどうやるんでしょか?
375 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 13:16:11 ] どこまで続けるんだよ もういいだろ
376 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 13:19:20 ] >>374 セル範囲の指定はRange worksheetfunction.max(Range(Sheet2.Cells(s, 4),sheet2.Cells(s+e,4)))
377 名前:デフォルトの名無しさん [2009/08/09(日) 13:20:50 ] ありがとうございました。 助かりました。 たぶん10分後にまた何か質問します。
378 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 13:23:27 ] 少しは自分で考えろw
379 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 13:30:36 ] セルの指定もできずになぜここに来るかとも思うけれど 他に適当なスレもないしスレ違いすぎってこともないから まあ夏休み中はこんな流れでもいいんでない? なぜなに質問コーナーみたいなかんじで
380 名前:デフォルトの名無しさん [2009/08/09(日) 13:34:30 ] a=inputbox("繰り返しの数") for x=0 to a next x とするとfor文が無視されるんですが、変数をtoの後に持ってくることはできないんでしょうか?
381 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 13:39:22 ] >>380 できるよ aに1以上の数がはいってれば無視されないはず
382 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 13:41:27 ] a=inputbox("繰り返しの数") for x=0 to a msgbox x next x でやってみ?無視されてないから。
383 名前:デフォルトの名無しさん [2009/08/09(日) 13:56:44 ] a=inputbox("繰り返しの数") for x=0 to a sheet1.cells(2,2).value=w next x にしても無反応なのであった;; 別の場所に問題あるのかな。
384 名前:デフォルトの名無しさん [2009/08/09(日) 13:57:35 ] wじゃない、xでした
385 名前:デフォルトの名無しさん [2009/08/09(日) 14:03:39 ] もしかして・・・別のsub ... end sub の中でおこなったinputboxの値は有効じゃない!?
386 名前:デフォルトの名無しさん [2009/08/09(日) 14:06:25 ] やべぇ自分で気づいた俺天才!
387 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 14:07:07 ] >>385 アホwそれを先に言え
388 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 14:13:33 ] すげえことにきがついた・・・ サブを呼び出すときに変数?に戻る数を入れてやればいいんじゃね・・・?
389 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 19:54:04 ] 先読み回答しとくと、staticでググレ。
390 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 20:34:23 ] >>389 そのレスを>>380 の段階で付けられるようになれば神なんだろうなー 俺にはまだまだ無理だ
391 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 22:24:52 ] で、forが実行されないってのは何よ シートで見たいなら for x=0 to a cells(x.1)=x next とか書かないとわからないぞ
392 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 23:50:59 ] forが実行されないのは a<0 だからだと思う 例えばaがstring型だとか
393 名前:デフォルトの名無しさん [2009/08/10(月) 00:46:24 ] VBAで作成したCSVファイルを富士通系汎用機(EBCDIC)に送信する ということをやりたいのですが、 日本語全角文字を認識させるために、シフトイン、シフトアウト というコードを全角文字の前後に付与する必要があるらしいのです。 このシフトイン、シフトアウトをVBAでファイルに書き出すことは できるのでしょうか? シフトイン、シフトアウトは、16進数で28H,29Hという記述は見つけたのですが よくわかりません。 知ってる方いらっしゃいませんか? m−O−m WindowsXP、EXCELは2003です。
394 名前:デフォルトの名無しさん mailto:sage [2009/08/10(月) 00:52:21 ] 全角絵文字がキモイ
395 名前:デフォルトの名無しさん mailto:sage [2009/08/10(月) 02:25:59 ] それより日本語全角文字の文字コード分ってるのか?
396 名前:デフォルトの名無しさん mailto:sage [2009/08/10(月) 06:42:15 ] ASCIIだろ