1 名前:デフォルトの名無しさん mailto:sage [2007/01/09(火) 11:14:15 ] ・まじめにExcelの機能を追及してみようと思う奇特なひと ・スキルがないのに無理やりVBAの仕事を押し付けられた普通のひと ・VBAなんていまさらやりたくないのに業務で仕方なく使っているひと ・とにかく漏れにこんな仕事まわすなと怒っているひと そんなM$大好きなひとからアンチM$なひとたちまで幅広くカバーするスレです OOoのCalcの質問もOKです 前スレ pc10.2ch.net/test/read.cgi/tech/1054356121/
274 名前:デフォルトの名無しさん [2007/02/15(木) 03:47:04 ] Const a = 1 Const b = 2 Const c = 3 Sub main() a1 = 1 b1 = 1 c1 = 1 cells_a = 0 cells_b = 0 cells_c = 0 Do While cells(a1, a).Text <> "" a1 = a1 + 1 cells_a = cells_a + 1 Loop Do While cells(b1, b).Text <> "" b1 = b1 + 1 cells_b = cells_b + 1 Loop Do While cells(c1, c).Text <> "" c1 = c1 + 1 cells_c = cells_c + 1 Loop cells(1, 5).Value = cells_a cells(2, 5).Value = cells_b cells(3, 5).Value = cells_c End Sub このプログラムを短くできませんか?
275 名前:デフォルトの名無しさん mailto:sage [2007/02/15(木) 04:39:47 ] 配列使うと1/3近くには出来るかも知れないが 速度は落ちるんじゃないかな
276 名前:デフォルトの名無しさん mailto:sage [2007/02/15(木) 10:09:42 ] >>274 Const a = 1 Const b = 2 Const c = 3 Sub main() a1 = 1:b1 = 1:c1 = 1 With Application.WorksheetFunction cells(1, 5).Value = .Count(Range(Cells(a1,a),Cells(a1,a).End(xlDown))) cells(2, 5).Value = .count(Range(Cells(b1,b),Cells(b1,b).End(xlDown))) cells(3, 5).Value = .count(Range(Cells(c1,c),Cells(c1,c).End(xlDown))) End With End Sub 試してないけど、とかじゃダメなのか?
277 名前:256 mailto:sage [2007/02/15(木) 10:51:13 ] >>257 お答えありがとうございます。説明不足ですみませんでした。 御推察のとおり、1つ目のセルは表示されずに2つ目が表示されてしまっていました。 で、>>257 様の誤解を参考にして色々試したのですが、どうにもうまくいきません。 もう少しだけヒント頂けないでしょうか?
278 名前:sage [2007/02/15(木) 13:13:37 ] >>277 何を試してどうだめだったのか書かないと… とりあえず自分の環境では普通に動く フォームを表示したときに表示したければ UserForm_Activaue()内で Callしてみれば? とりあえず、F8でステップインしながら 動きを確認してみることをお勧めするよ 後はDebug.Printするとか。 ローカルウィンドウで 変数に期待通りの値が はいってるか確認する方法もあるし。 なんにしても情報が少なすぎだと思いますよ
279 名前:デフォルトの名無しさん mailto:sage [2007/02/15(木) 13:18:21 ] うはぁ あげちった… 携帯からレスするもんじゃないな…
280 名前:デフォルトの名無しさん mailto:sage [2007/02/15(木) 14:18:22 ] 他人事ながら ×UserForm_Activaue() ○UserForm_Activate() 横レス失礼
281 名前:256 mailto:sage [2007/02/15(木) 16:06:37 ] >>278 ,>>280 またまた説明足らずで申し訳ありませんでした。 で、ご指摘の方法でちゃんと出来ました! 自分の持ってるVBAの本が初心者用のものだったため、 UserForm_Active()とか全然載ってなくて方法が分かりませんでした。 今回はどうもありがとうございました!
282 名前:デフォルトの名無しさん mailto:sage [2007/02/15(木) 16:27:59 ] VBに高階関数とかってないの?関数に関数を引数として渡したいだけなんだけど。
283 名前:デフォルトの名無しさん mailto:sage [2007/02/15(木) 16:49:21 ] >>282 AddressOf
284 名前:デフォルトの名無しさん mailto:sage [2007/02/15(木) 19:07:28 ] >>283 おお、サンクス
285 名前:デフォルトの名無しさん mailto:sage [2007/02/15(木) 19:31:06 ] ダイアログボックスで入力された年・月にしたがってカレンダーを表示するマクロを作っています。 年・月は文字列として取得、それを日付型にデータ変換して日付型の変数に代入しているのですが、 そこで「実行時エラー'11': 0で除算しました。」とのエラーが出ます。 DateValue関数を使う、日付型の変数を Variant型に変える、を試してみましたが、 結果は同じでした。 文字型の変数を Variant型に変えると、最初に1回エラーが出たあとその後は出なくなりましたが、 カレンダー表示の処理のところで日付を誤認してしまいます。 現在は On Error Resume Next でエラーを抑制して動かしており、 本来の目的であるカレンダー表示はそれで問題なくできておりますが、 可能であればエラー自体出ないようにしたいと思っています。 どこが悪いのかアドバイスをお願いします。 テストコード Sub test() Dim strInput As String Dim datDay As Date strInput = InputBox("年と月を入力してください。(例)「2007 2」") datDay = CDate(strInput) MsgBox datDay End Sub 環境 Mac OS X 10.4.8 Excel 2004 for Mac ver. 11.3(060914) 以上よろしくお願いします。
286 名前:デフォルトの名無しさん [2007/02/15(木) 20:46:35 ] VBAのソースで右側に長くなって見づら苦なってきたのでソースの内容はそのままで改行することってできませんか? 普通に改行するとエラーが出てしまいます。
287 名前:デフォルトの名無しさん mailto:sage [2007/02/15(木) 21:01:35 ] MsgBox _ "VBAのソースで右側に長くなって" & vbCrLf & _ "見づら苦なってきたので" & vbCrLf & _ "ソースの内容はそのままで" & vbCrLf & _ "改行することってできませんか?" & vbCrLf & _ vbCrLf & _ "普通に改行するとエラーが出てしまいます。"
288 名前:デフォルトの名無しさん mailto:sage [2007/02/15(木) 21:30:38 ] >>287 Chr(10)じゃだめ?
289 名前:デフォルトの名無しさん mailto:sage [2007/02/15(木) 21:51:40 ] >>285 テストコードが問題なく実行できてしまったのですが…。 カレンダーに変換してるところのエラーでは?
290 名前:デフォルトの名無しさん mailto:sage [2007/02/15(木) 22:43:59 ] たぶんロケール絡みだろう。 同じバージョンのWindows&Excelだって、ロケールが違うとCDateやIsDateの動作が変わってくるからな。 とりあえずInputBoxとCDateの間に If strInput = "" Then MsgBox "空文字 or キャンセル": Exit Sub If Not IsDate(strInput) Then MsgBox "日付変換不可": Exit Sub って入れてみな。「2007 2」で"日付変換不可"が出るようなら、ロケールの問題でビンゴだ。 その場合は文字列切り出しで年と月を取得しよう。 "日付変換不可"が出ないにしても、文字列切り出しで解決出来るならそれでいいし。
291 名前:286 [2007/02/16(金) 00:53:59 ] _←これだけで改行できた思い出させてくれてありがとう
292 名前:デフォルトの名無しさん mailto:sage [2007/02/16(金) 01:11:48 ] ListBoxに値をいれるとClickやChangeが発生しますが、 クリック中に値を変更したい場合とかどうしてますか? フラグもって立ってたら処理しないというやり方で回避してるんだけど なにかほかにいい方法がありますでしょうかね。
293 名前:285 mailto:sage [2007/02/16(金) 01:38:32 ] >>289 , 290 レスをいただきありがとうございます。 テストコードのほうですが、>>290 さんのコードを加えて実行してみたところ、 1回目は「実行が終了しました」とのエラーメッセージが表示され、 2回目は「オーバーフローしました」とのエラーメッセージが表示され、 3回目以降は「2007.2.1」と普通に表示されました。 念のため本来のマクロを On Error Resume Next をコメントアウトして再度実行してみたところ、 1回目は「オーバーフローしました」とのエラーメッセージが表示され、 2回目も「オーバーフローしました」とのエラーメッセージが表示され、 3回目は正常にマクロが実行され、 4回目で「0で除算しました」とのエラーメッセージが表示されました… こちらに書き込む前に何回もテストし、そのときは「0で除算しました」というエラーメッセージのみ 繰り返し出ていたのですが、実行のタイミングによってまるで結果が違ってきているようでもあり、 とまどっています。 >>290 さんのおっしゃっている「文字列切り出し」という方法は、文字列から年と月をそれぞれ別々に取得する ということですね? がんばってコードを書いて試してみます。 どうもありがとうございました。
294 名前:デフォルトの名無しさん mailto:sage [2007/02/16(金) 10:37:50 ] a = Int(9 * Rnd + 1) b = Int(9 * Rnd + 1) c = a + b これでcの中にaの中に7 bの中に8 が入ってるとして 15じゃなく 78と表示することはできますか?
295 名前:デフォルトの名無しさん [2007/02/16(金) 11:59:19 ] >>294 つなげたいなら、&
296 名前:デフォルトの名無しさん mailto:sage [2007/02/16(金) 12:20:14 ] ちょwwVB以前の問題だろw a*10+bも思いつかんのか
297 名前:デフォルトの名無しさん [2007/02/16(金) 22:23:14 ] 初歩的な質問でホントにすいません; エクセルのシート上にファイル等から画像を挿入したとします。 ↓ その画像を文字列の背面に持っていく方法がわかりません; 背景に設定する等とは違います; (ちなみに背景も小さい画像で設定すると ビッチリ並んで出てきますが、好きな場所に1個だけ、 とかは出来るんでしょうか?) よろしくお願いします;
298 名前:デフォルトの名無しさん [2007/02/16(金) 22:25:14 ] すいません;スレ違いでした;
299 名前:デフォルトの名無しさん mailto:sage [2007/02/18(日) 12:04:32 ] 100行まで三行間隔で文字列が入っていて間違って打ってないか確認したいです。 B列、100行までの間の3の倍数のセルに"もげ"って入っていたら次の3の倍数のセルへ 間違っているか、空欄だったらセルを選択した状態で終えてください。 という処理をしたいのですが 相対セルと三の倍数選択する部分の表現でつまづいてしまいました。 一つずつチェックしてこなすにも5000行以上で当て上げ状態です どなたかヒントかVBAのソースを教えていただけないでしょうか よろしくおねがいします
300 名前:デフォルトの名無しさん mailto:sage [2007/02/18(日) 12:13:16 ] 当て上げ? で、そのチェックはVBAでやるようなことなのか?
301 名前:デフォルトの名無しさん mailto:sage [2007/02/18(日) 12:54:44 ] B列を削除して割り振りなおした方が簡単じゃないの?
302 名前:デフォルトの名無しさん mailto:sage [2007/02/18(日) 12:55:01 ] > ソースを教えていただけないでしょうか ソースが欲しいならそういうところに頼めよ ここは丸投げ依頼所じゃないぜ 自分で書こうって気がある奴がヒントを貰いに来る場だ
303 名前:デフォルトの名無しさん mailto:sage [2007/02/18(日) 12:57:28 ] step 3 じゃだめ?
304 名前:デフォルトの名無しさん mailto:sage [2007/02/18(日) 13:19:21 ] >>299 100行まで? Sub moge() Dim i As Integer For i = 3 To 100 Step 3 If Cells(i, 2).Value = "" Then MsgBox "B" & i & "は空白ですよ。" ElseIf Cells(i, 2).Value <> "もげ" Then MsgBox "B" & i & "に「もげ」でない文字が入っています。" End If Next i End Sub
305 名前:デフォルトの名無しさん [2007/02/18(日) 13:41:13 ] dim giy as integer a=4937870 b=1.05 s=387 u=100 giy = WorksheetFunction.RoundDown(((a * b) / (s*u)), -1) 上のを実行するとなんでかオーバーフローするんですけど。
306 名前:デフォルトの名無しさん mailto:sage [2007/02/18(日) 13:47:01 ] しませんでしたけど… 念のためLongにしといたらどーですか?
307 名前:299 mailto:sage [2007/02/18(日) 13:51:43 ] >>304 まさにこれです 変数とかCellsとかforとかすごい勉強なります。 ありがとうございます >>303 最初なんのことだろうと思いましたが、304みてわかりました。step 3。 ありがとうございます。
308 名前:デフォルトの名無しさん [2007/02/18(日) 13:56:43 ] デバッグしてa*bのところにマウスをもってくると、5184763.26454401 という数字が出ます。小数点以下の数字が原因かと思うんですけど。
309 名前:デフォルトの名無しさん mailto:sage [2007/02/18(日) 14:11:26 ] >>308 それのどこがオーバフロー?
310 名前:デフォルトの名無しさん mailto:sage [2007/02/18(日) 14:14:16 ] もしかして: 単精度で計算していて精度がでていないという落ち?
311 名前:デフォルトの名無しさん mailto:sage [2007/02/18(日) 14:25:55 ] aとbがVariantならdoubleと同じ精度で扱えると思うんだが…
312 名前:デフォルトの名無しさん mailto:sage [2007/02/18(日) 21:49:04 ] フォームのテキストボックスを全部いっぺんに空白にする方法はありますか?
313 名前:デフォルトの名無しさん mailto:sage [2007/02/18(日) 22:40:09 ] >>312 順番に空白にすればよい
314 名前:312 mailto:sage [2007/02/18(日) 22:44:54 ] いや、そりゃもちろんそうなんですが、 一行で一気に全部いっぺんに空白にしてしまうような命令とかはないかなぁと思いまして・・・
315 名前:デフォルトの名無しさん mailto:sage [2007/02/18(日) 22:55:43 ] >>314 そんなことしてどーするの? 見た目には変わらないのに?
316 名前:デフォルトの名無しさん mailto:sage [2007/02/18(日) 23:10:11 ] Me.Controlsに対してFor Eachループ回して If TypeName(objControl) = "TextBox" Then objControl.Text = "" とか
317 名前:デフォルトの名無しさん mailto:sage [2007/02/18(日) 23:29:42 ] そういう処理をするプロシージャを用意しておいて、そいつを呼べばいい。
318 名前:312 mailto:sage [2007/02/19(月) 10:43:01 ] >>315 自分の作成したフォームのテキストボックスが20個くらいありまして、 それをクリアするのにプログラムが長くなってしまうので 短く簡単にすませる方法はないかなぁと思いまして。 >>316 、317 ありがとうございます。それで試してみます!
319 名前:デフォルトの名無しさん [2007/02/20(火) 00:41:14 ] EXCELで コマンドボタンをクリックすると、Sheet3のA1:A10の内容を、Sheet1のA1:A10にコピーする こんなモノを作りたいのですが Private Sub CommandButton1_Click() Range("A1:A10").Select Selection.Copy Sheets("Sheet1").Select Range("A1:A10").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False End Sub こうすると、「Range クラスの Select メソッドが失敗しました」となってしまいます どうすればいいか教えて下さい 「マクロの記録」を使ってしか、マクロ扱った事無いのに 調子に乗って仕事請けてしまって困ってます・・・
320 名前:デフォルトの名無しさん mailto:sage [2007/02/20(火) 00:58:33 ] >>319 これだけでいいんでない? Private Sub CommandButton1_Click() Worksheets("Sheet3").Range("A1:A10").Copy Worksheets("Sheet1").Range("A1:A10").PasteSpecial Paste:=xlPasteValues End Sub 最後に Worksheets("Sheet1").Activate にしてもいいと思うけど…
321 名前:319 mailto:sage [2007/02/20(火) 01:15:25 ] 解決しました有難うございます 範囲指定の時は Worksheets("Sheet3").Range("A1:A10") としなければいけないのですね
322 名前:デフォルトの名無しさん mailto:sage [2007/02/20(火) 01:18:36 ] >>321 シート名を指定していないのでSelectが失敗したのではないでしょうか? 範囲指定とは関係ないです。 そういや Worksheets("Sheet1").Range("A1").PasteSpecial Paste:=xlPasteValues でOKでもOKでした。
323 名前:デフォルトの名無しさん mailto:sage [2007/02/20(火) 01:40:09 ] どうでもいいけど、 シート名変更されると危なっかしいから、 シートのオブジェクト名でやった方が無難。 Sheet1.Range〜以下略 意味が分からんならVBA画面でシートを選択してF4押せ。
324 名前:デフォルトの名無しさん mailto:sage [2007/02/20(火) 01:50:00 ] ユーザーがSHIFT+クリックで複数のセルを選択するように プログラム上で選択中のセルをさらに動的に増やしたいのですが どうすればいいでしょうか。
325 名前:デフォルトの名無しさん mailto:sage [2007/02/20(火) 01:51:53 ] どういう風に増やしたいのか詳しく。 Offsetとかでいいならそれで。
326 名前:デフォルトの名無しさん mailto:sage [2007/02/20(火) 02:12:18 ] OffsetではなくResizeの方が良いのでは?
327 名前:デフォルトの名無しさん mailto:sage [2007/02/20(火) 03:12:28 ] 飛び地で選択できるじゃないですか? あんな感じで。 2点間を選択してもらって、その間の特定キーワードを含む セルを自動的に選択する機能を作りたいのですよ。
328 名前:デフォルトの名無しさん mailto:sage [2007/02/20(火) 07:49:42 ] >>327 マクロの記録でctrlキーを押しながら A1とA3を選択。 これで、離れたセルの指定方法は分かるだろ? 後は、定範囲内をFor Eachとかでまわして 該当セルのaddressとるなりして 同じように選択するだけ。
329 名前:デフォルトの名無しさん [2007/02/20(火) 11:06:07 ] Type MyTestType ID As Integer Name As String End Type Sub test() Dim a(3) As MyTestType '中略 i = TypeTest(a) End Sub Function TypeTest(a As Variant) As Integer '省略 End Function とコードを組むと、コンパイルエラーが出ます。 Functionの引数の型宣言で、配列を使うこともできませんが、 どのようにしたら、aをFunctionに渡すことができるでしょうか? よろしくお願いします。
330 名前:デフォルトの名無しさん mailto:sage [2007/02/20(火) 11:24:55 ] VBAでどうやってコンパイルエラーを出したのか知りたいのだが。
331 名前:デフォルトの名無しさん mailto:sage [2007/02/20(火) 11:39:42 ] >>329 クラスを使え >>330 メニュー > デバッグ > VBAProjectのコンパイル も知らんのか? >>329 なら普通に実行したってコンパイルエラー出るし。 もしかしてexe吐くことがコンパイルだと思ってるのかな?
332 名前:デフォルトの名無しさん mailto:sage [2007/02/20(火) 12:08:03 ] >>331 クラスってどうつかえばいいのですか? プロジェクトで挿入からクラスモジュールを挿入して、 Type文を打ち込めばよろしいのでしょうか? それと、ここはsage推奨ですか?
333 名前:デフォルトの名無しさん mailto:sage [2007/02/20(火) 12:16:50 ] >>332 ===== MyTestClass As クラスモジュール ===== Public ID As Integer Public Name As String ===== EOM ===== ===== Module1 As 標準モジュール ===== Sub test() Dim a(3) As New MyTestClass a(0).Name = "hoge" a(0).ID = 10 i = TypeTest(a) End Sub Function TypeTest(a() As MyTestClass) As Integer Debug.Print a(0).Name Debug.Print a(0).ID End Function ===== EOM ===== こんな感じで。 クラスモジュールの名前がAs 〜で使う宣言型になる点に注意。 > それと、ここはsage推奨ですか? 別に。回答者はageる必要が無いから慣例的にsageてるだけ。
334 名前:デフォルトの名無しさん mailto:sage [2007/02/20(火) 13:40:38 ] >>333 どうもです。
335 名前:327 mailto:sage [2007/02/21(水) 02:04:24 ] マクロで記録したら文字列で指定してたからどうしたもんかと 思いましたが、addressでセル位置の座標を取れるからこれ使えばいいのかな。 問題は解決したけども、なんかほかにスマートな方法があるなら教えてくだされ。
336 名前:デフォルトの名無しさん [2007/02/21(水) 15:31:21 ] GetOpenFilename で「ファイルを開く」 ダイアログ で左側のデスクトップやマイドキュメントが選べません。どうしてでしょうか? 参照設定で、Microsoft Runtime Scriptingは選択しています。 Office2003, XP Proです。
337 名前:デフォルトの名無しさん mailto:sage [2007/02/21(水) 15:49:59 ] > どうしてでしょうか? 環境が壊れてるからじゃねーの? とりあえずOSとOfficeを再インストールしてみな。 それとGetOpenFilenameはApplicationオブジェクトのメンバなんで参照設定は不要だし、 Microsoft Runtime Scriptingではなく Microsoft Scripting Runtimeだろ。これはFSOやDictionaryだからな。
338 名前:デフォルトの名無しさん [2007/02/22(木) 15:30:03 ] row = 1 For Each a In IEobj.Document.body.getElementsByTagName("A") If InStr(a.href, "xxx.com/" ) <> 0 Then x = a.href Worksheets(1).Cells(row, 1).Value = x row = row + 1 End If Next a こんな感じのURLなのですが、同じアドレスは二度書き込まない風にできますか?
339 名前:338 [2007/02/22(木) 18:01:47 ] 処理重くなるだけかな 少しぐらい重なってもいいか・・・・
340 名前:デフォルトの名無しさん mailto:sage [2007/02/22(木) 19:58:29 ] >>338 普通に重複チェックして条件分岐すれば良いだけでしょ。 重複チェックにはいろんな手法があるのでお好きなもので。
341 名前:デフォルトの名無しさん [2007/02/23(金) 22:15:30 ] Dim myValue As Single myValue = 1.0 Charts(1).Name = "Ver. " & myValue としてエクセルのグラフのタイトルに、 Ver. 1.0 と入力したいのですが、Ver. 1 となります。 こういう場合は、どうすれば "1" を "1.0" と少数点付きにできますか?
342 名前:デフォルトの名無しさん mailto:sage [2007/02/23(金) 22:27:30 ] As String にするか "Ver." & Format(MyValue, "0.0")で
343 名前:デフォルトの名無しさん [2007/02/23(金) 22:52:10 ] >>342 ありがとう!!! できた〜!!!!! ちなみにStringはダメでした。 ほんとにありがとう。
344 名前:デフォルトの名無しさん mailto:sage [2007/02/23(金) 23:15:34 ] ああ、"1.0"にしないと駄目だろうねw
345 名前:デフォルトの名無しさん [2007/02/24(土) 01:29:23 ] Win2000 SP4ではちゃんと動いていたのにXP SP2に持っていったらエラーにはならないんですけどまともに動いてくれません 主に使っている機能はActiveXのInetです。WEBを取り込んで検索して加工した文字列をエクセルに貼り付けてるだけです。 参照設定は正規表現というやつを使いたくて、MSVBScriptRegulerExpresion1.0と5.5を二つ入れました。 1.0と5.5は両方チェック入れたらまずいんでしょうか?本にはMSVBScriptを参照設定しろと書いてあっただけなので不明です。 あとMS Internet Transfer Control 6.0とMS Internet Controls も参照設定してあります。 Win2000 SP4はVB6.0、WinXP SP2はVB6.0ランタイムが入ってます。 最初から2行あったOption Explicit ?ともう一行は文の意味がわからなかったので消しました。 XPのファイアーウォールははずしてあります。 なぜXPだけで不安定になるのか原因わかりますでしょうか?
346 名前:デフォルトの名無しさん mailto:sage [2007/02/24(土) 01:33:32 ] うん、わかる
347 名前:デフォルトの名無しさん [2007/02/24(土) 01:37:51 ] ありがとうございます。試してみます。
348 名前:デフォルトの名無しさん [2007/02/24(土) 14:27:41 ] エラーの時にデバッグを選んだ後停止ボタンを押すと、フォームがひらくのですが、コード画面のままで維持できないのでしょうか? その度にいちいちコード画面を選び編集したいコードの行を探さないといけないのはつらいです。
349 名前:デフォルトの名無しさん [2007/02/24(土) 15:09:31 ] '初心者です。 Sub なんでだろう@() Dim あ As Long あ = Worksheets("Sheet1").Cells(1, 1) If あ > 3 Then Worksheets("Sheet1").Rows("1:5").Select End If End Sub 'だと動くのに Sub なんでだろうA() Dim あ As Long あ = Worksheets("Sheet1").Cells(1, 1) If あ > 3 Then Worksheets("Sheet1").Rows("1:あ").Select End If End Sub 'だと動きません。なんでだろう。。。 '親切な方教えてください。
350 名前:デフォルトの名無しさん mailto:sage [2007/02/24(土) 15:37:02 ] range("1:" & あ)では?
351 名前:デフォルトの名無しさん mailto:sage [2007/02/24(土) 15:48:27 ] >>349 ×Worksheets("Sheet1").Rows("1:あ").Select ○Worksheets("Sheet1").Rows("1:" & あ).Select ○Worksheets("Sheet1").Range("1:" & あ).Select ○Worksheets("Sheet1").Rows(1).Resize(あ).Select >>350 このコードを書いているモジュールによってはシートを省略しちゃうと正しく動作しないよ。 「Worksheets("Sheet1")」も書くか、「Rows以降を」と添えよう。
352 名前:349 [2007/02/24(土) 15:49:50 ] >>350 ほえ〜。動きました。 なぜだか分からないけど、とにかくこれでやってみます! ありがとうございました!
353 名前:デフォルトの名無しさん mailto:sage [2007/02/24(土) 16:05:06 ] >>351 あ、RowsのつもりがRangeって打っちゃったよ
354 名前:349 [2007/02/24(土) 16:09:47 ] >>351 とにかくいろいろやり方があるんですね! どうもでした。m( )m モジュールって何?っていう段階なので、すべてがサッパリ妖精なのですが、 とにかく理解もせずに突き進んでみることにして見ます。。。
355 名前:デフォルトの名無しさん [2007/02/24(土) 19:58:05 ] エクセルのグラフの軸の書式設定にある Y/数値軸目盛の最大値のところに初期入力してある値を取得する方法ってありませんか?
356 名前:デフォルトの名無しさん mailto:sage [2007/02/24(土) 20:22:45 ] 初期値は自動じゃないのか? まぁ、マクロ記録で変更してみりゃプロパティの名前がわかるだろ。
357 名前:デフォルトの名無しさん [2007/02/24(土) 20:35:27 ] >>356 自動です。 自動で入る初期値がほしいんですが、これに関しては マクロ記録でいろいろ試してみましがはわかりませんでした。
358 名前:デフォルトの名無しさん mailto:sage [2007/02/24(土) 20:53:07 ] >>357 初期値変更するの記録すればわかると思うけど ActiveChart.Axes(xlValue).MaximumScale じゃない?
359 名前:デフォルトの名無しさん [2007/02/24(土) 21:14:35 ] >>358 ありがとうございます。 値の取得ができました。 初期値変更するの記録したつもりだったけど、わからなかったw
360 名前:デフォルトの名無しさん [2007/02/25(日) 14:25:00 ] あぁ〜ん、ユーザーフォームがうまく作れないよぉ〜〜〜ん!! 参考書ばかりが増えていく…
361 名前:デフォルトの名無しさん mailto:sage [2007/02/25(日) 14:29:14 ] わざわざユーザーフォーム作る香具師って馬鹿じゃね? プログラミング能力の無さをさらけ出してるだけだよ。
362 名前:デフォルトの名無しさん [2007/02/25(日) 16:08:29 ] 馬鹿が馬鹿を笑う、ここはそんなスレでつw
363 名前:デフォルトの名無しさん mailto:sage [2007/02/25(日) 17:30:50 ] >>361 kwsk
364 名前:デフォルトの名無しさん mailto:sage [2007/02/25(日) 22:30:07 ] ユーザーフォームを×ボタンをクリックして閉じるときに、 それと同時に上書き保存をしたいのですが 何か良い方法はありますか?
365 名前:デフォルトの名無しさん mailto:sage [2007/02/25(日) 22:33:26 ] >>364 UserForm_QueryCloseイベントに上書き保存のコードを書く
366 名前:デフォルトの名無しさん mailto:sage [2007/02/26(月) 02:57:29 ] 動作しないユーザーフォームなら1分もかからずにちゃんと作れるよな。 これすらできないのは才能ないというかなんか根本的におかしい。
367 名前:デフォルトの名無しさん [2007/02/26(月) 04:05:54 ] >>361 の言ってる意味は全然変わらんが >>366 なら分かる
368 名前:デフォルトの名無しさん mailto:sage [2007/02/26(月) 04:55:40 ] じゃ、>361はこう訂正してみよう。 >わざわざユーザーフォーム作る香具師って馬鹿じゃね? →ユーザーフォーム作るのに苦労する香具師って馬鹿じゃね?
369 名前:デフォルトの名無しさん [2007/02/26(月) 05:03:58 ] >>368 納得した ユーザーフォーム使う使わないは用途によるからな
370 名前:364 mailto:sage [2007/02/26(月) 10:09:54 ] >>365 ありがとうございます!できました! >>361 仕入・納品・在庫調べ等々、自分の仕事では ユーザーフォームないと非常に入力がめんどくさいです。 なので自力で作成しました。 まあ、「市販のソフト買えよ!」と言われればそれまでですが。
371 名前:デフォルトの名無しさん mailto:sage [2007/02/26(月) 10:34:35 ] >>360 がやろうとしてることと、>>361 ,>>366 ,>>368 が指摘してることに遥かなる距離感を感じるのはなぜだろう。 >動作しないユーザーフォームなら わざわざ動作しないフォームを作る暇人っているんだな。
372 名前:デフォルトの名無しさん [2007/02/26(月) 11:47:50 ] >>370 まさかそれをアクセスでなくエクセルでやってるとか・・・
373 名前:デフォルトの名無しさん mailto:sage [2007/02/26(月) 11:58:21 ] Excelが伝票というケースもあるだろ。Accessの仕事しかやったことないのか
374 名前:デフォルトの名無しさん [2007/02/26(月) 20:15:30 ] Cellの中に文字列があって、その文字列の長さを取得するにはどうすればいいか教えてください。 文字変数の長さの取得方法がわかりません。