1 名前:デフォルトの名無しさん [2007/05/27(日) 00:06:58 ] ・まじめにExcelの機能を追及してみようと思う奇特なひと ・スキルがないのに無理やりVBAの仕事を押し付けられた普通のひと ・VBAなんていまさらやりたくないのに業務で仕方なく使っているひと ・とにかく漏れにこんな仕事まわすなと怒っているひと そんなM$大好きなひとからアンチM$なひとたちまで幅広くカバーするスレです 前スレ pc11.2ch.net/test/read.cgi/tech/1168308855/
199 名前:使えない子 mailto:sage [2007/06/20(水) 14:59:47 ] 上司からいきなり「調べといて」 キタ───ヽ(´Д`;)ノ───!!! 既存ブックのシート構成は、 (シート1)・書類のテンプレ (シート2)・いろんな調査項目 という感じで、シート2を開いてマクロを実行すると、 いろんな調査項目が大分類ごとに分けて、 書類のテンプレに記入してそれぞれシートを作る、 ということをしています。 今度は、それらの作られる大分類ごとのシートを 新しいブックに作りたい、ということです。 手作業であれば、 [シートの移動またはコピー]のダイアログで、 [移動先ブック名]に「(新しいブック)」を指定し、 [コピーを作成する]にチェックを入れて[OK]ですが、 これをマクロでやりたい、というのです。 [新しいマクロの記録]をしても記録されないので、 困ってしまいました。 マクロやVBA等でやるには、どうしたらよいでしょうか。 どなたかお力添えください。m(_ _)m
200 名前:デフォルトの名無しさん mailto:sage [2007/06/20(水) 15:33:41 ] >>199 やってみたら記録されたけど? Sheets("Sheet1").Copy
201 名前:デフォルトの名無しさん mailto:sage [2007/06/20(水) 18:34:08 ] 記録を停止してない なんてオチだったりしてW
202 名前:デフォルトの名無しさん [2007/06/21(木) 00:02:18 ] 前任の作ったエクセルファイル+VBAを別ファイルで再構築しているのですが、 errors(0).description の部分でエラー「コレクションが存在しません」になります。 元のファイルでは正常に動いているのですが、 新しいファイルではどのようにしたら回避できるのでしょうか。
203 名前:デフォルトの名無しさん mailto:sage [2007/06/21(木) 00:09:31 ] 参照設定
204 名前:202 [2007/06/21(木) 00:42:58 ] レスどもです。Excelは2000で、 Microsoft DAO 3.6 Object Libraryの参照設定はチェック済なのですが それでもエラーが出てしまいます。 他にも必要な参照があるのでしょうか。
205 名前:デフォルトの名無しさん mailto:sage [2007/06/21(木) 00:46:51 ] エラーなければerrorsコレクションはないだろ まずファイルの問題か環境の問題かはっきりさせること
206 名前:202 mailto:sage [2007/06/21(木) 01:30:40 ] 確かにそうですね。 言われてみればそもそもここはエラートラップなので 他の部分に問題がある可能性大です。切り分けに挑戦して見ます。
207 名前:193 [2007/06/21(木) 02:00:10 ] >三角波のデータ 自分で作りました。 作ったのは関数です。(セルに直接記述するのでVBAとは関係ないですね...) 割とあっさりめの形になったと思います。 言わば、sin関数になぞらえるなら、三角波関数みたいなもんです。 ↓ 1/(2π)*arcsin(sin(t/T*2π))/(1/4) 自分で自分を褒めてやりたいです。
208 名前:デフォルトの名無しさん mailto:sage [2007/06/21(木) 08:37:41 ] うわ、重そう。つーか、頭悪そう。
209 名前:デフォルトの名無しさん [2007/06/21(木) 14:47:30 ] お聞きしたいんですけど コンボボックスのプロパティのLinkedCellに値が入らないのですが どうやって入れるのか教えてください
210 名前:デフォルトの名無しさん mailto:sage [2007/06/21(木) 20:48:44 ] 普通に=で代入するか、プロパティウィンドウに入力するかだよ 間違った値入れてなければそれでOK
211 名前:デフォルトの名無しさん [2007/06/22(金) 00:02:30 ] >>208 頭わるいやつに作れるわけねーだろ。 おめぇ、つくってみ? ってか、つくれる?
212 名前:デフォルトの名無しさん mailto:sage [2007/06/22(金) 00:04:35 ] >>211 本人乙。
213 名前:デフォルトの名無しさん mailto:sage [2007/06/22(金) 00:38:54 ] >>211 煽ったら作って貰えると思って必死だな。 今宵は枕が涙で濡れてるんぢゃねぇの?
214 名前:デフォルトの名無しさん [2007/06/22(金) 00:48:37 ] バイナリーファイル(テキスト形式でないファイル)を開いて、 nバイト目の数字を読み込むっていうプログラムを組みたいのですが、 VBAでできますか?
215 名前:デフォルトの名無しさん mailto:sage [2007/06/22(金) 00:56:55 ] よゆう
216 名前:214 [2007/06/22(金) 11:34:20 ] ちょっとしたヒントだけでも教えてつかわさい。
217 名前:デフォルトの名無しさん mailto:sage [2007/06/22(金) 12:47:31 ] open filename for random as #filenumber len=1 get #filenumber, n, buf
218 名前:214 [2007/06/22(金) 15:54:48 ] えっ、まじですか。 N88BASICとまったく同じぢゃ・・・
219 名前:デフォルトの名無しさん mailto:sage [2007/06/22(金) 15:56:42 ] そりゃぁ、MicrosoftBasicの派生だからねぇ。どっちも。
220 名前:214 [2007/06/22(金) 18:54:47 ] わしもスレに貢献しよう arcsin(sin(t/T*2π)) って t/T*2π と同じでしょうw つりか・・・まじか?
221 名前:デフォルトの名無しさん [2007/06/22(金) 23:32:39 ] 教えて頂きたいです。△にぶつかった後に円を描くようにしたいのですが・・・ 難しくて。ご教授下さい。 Sub seven() ' 弾けるボール ActiveCell.Offset(5, 0).Value = "手" ActiveCell.Offset(5, 1).Value = "○" ActiveCell.Offset(5, 7).Value = "▲" For i = 1 To 6 For J = 1 To 500 ActiveCell.Offset(5, i).Value = "○" ActiveCell.Offset(5, i).Value = "" ActiveCell.Offset(5, i + 1).Value = "" ActiveCell.Offset(5, i + 1).Value = "○" Next J ActiveCell.Offset(0, i + 1).Value = "" Next i ActiveCell.Offset(5, 7).Select.Value = "☆" For i = 1 To 3 A = ActiveCell ActiveCell = "" ActiveCell.Offset(-1, 1).Activate For J = 1 To 500 ActiveCell = A Next J Next i For i = 1 To 3 A = ActiveCell ActiveCell = "" ActiveCell.Offset(1, 1).Activate For J = 1 To 500 ActiveCell = A Next J Next i For i = 1 To 3 ActiveCell = "" ActiveCell.Offset(1, -1).Activate For J = 1 To 500 ActiveCell = A Next J Next i For i = 1 To 3 A = ActiveCell ActiveCell = "" ActiveCell.Offset(-1, 1).Activate For J = 1 To 1000 ActiveCell = A Next J Next i End Sub
222 名前:デフォルトの名無しさん mailto:sage [2007/06/22(金) 23:51:21 ] >>220 前者は周期関数になる。元レスは、それを使って三角波にできると悦に入っていたらしい。
223 名前:デフォルトの名無しさん mailto:sage [2007/06/23(土) 08:35:42 ] >>221 スレ違い。>>16
224 名前:デフォルトの名無しさん mailto:sage [2007/06/23(土) 13:52:35 ] >>223 スレ違いで拒否るのもいいが、いい加減過疎ってないか?このスレ あと質問に答えても質問者もほったらかし多いし・・・ 俺はわからんから答えんだけだが
225 名前:デフォルトの名無しさん mailto:sage [2007/06/23(土) 15:11:42 ] > いい加減過疎ってないか?このスレ この板はこんなものだよ 一応ここは過疎板だから 当然、この板にもここより賑わってるスレはあるが このスレでも平均以上どころか勢い上位1割に入るほど もっと静かでもいいくらいだ
226 名前:デフォルトの名無しさん [2007/06/24(日) 08:44:32 ] あるRangeの一番左上のセルの情報を得たいのですが、 どうしたらよいでしょうか? Offsetだと、Range全体が取得されてしまいます。 左上のセルのRangeだけを得たいのですが・・・ ActiveSheet.Range("資産表[資産]").Offset(0, 0).Select
227 名前:デフォルトの名無しさん [2007/06/24(日) 08:47:10 ] >>226 自己解決しました。 ActiveSheet.Range("資産表[資産]").Cells(1, 1).Select Cellsでした。Rangeにないかと思ってました。
228 名前:デフォルトの名無しさん [2007/06/24(日) 09:49:10 ] すみません、質問です。 商品NO 値段 日付 〜 100 20 5/1 101 21 5/1 といったデータが600まである表があります。 修正や訂正をするため、月一で直さなければいけないんですが 一回別シートに抽出して,そこで変更をし、元あった行に上書きをする そのように作れと上司にいわれてしまいました。 抽出し、別シートに移すことは出来たのですが、それを元の所に 上書きするのには、どうしたらいいのでしょうか? 切実に困っています。教えていただけたら嬉しいです。
229 名前:デフォルトの名無しさん mailto:sage [2007/06/24(日) 10:20:48 ] 抽出した行と元の行を関連づければいいでしょ 方法はいくらでもあるけど 一番簡単なのは別のシートの同じ行に抽出するやり方かな
230 名前:デフォルトの名無しさん mailto:sage [2007/06/24(日) 12:15:43 ] >>228 商品Noをkeyにして.findメソッドで検索して コピーするVBAをつくる
231 名前:デフォルトの名無しさん mailto:sage [2007/06/24(日) 12:16:46 ] 同じ行への抽出だとわざわざ抽出する意味がないと言われます 関連付けっていうのはどのようにやるのですか?
232 名前:デフォルトの名無しさん mailto:sage [2007/06/24(日) 12:37:17 ] すみません、書き込みしている最中に書き込んで頂いてたみたいです。 わかりました、まだKeyとかFindメソッドの使い方が上手ではないのですが 月曜日にがんばってみます。 もしまた解らなかったら書き込みしにきます。 そのときもよろしくお願いします。 ありがとうございました。
233 名前:: [2007/06/25(月) 23:05:08 ] マクロ使って初心者でも簡単に作れるプログラムって何かあります? 課題でなんでもいいから作ってこいって言われたんですけど何を作ればいいのやら。 参考書買うしかないんすかね〜お勧めのWEBサイトありますか?
234 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 23:07:54 ] MsgBox "Hello World!"
235 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 00:59:48 ] >>1 の2番目です! しつもん! vlookupのプロパティ?に変数を使いたいんですがうまくいきません どうすればいいでしょうか? ↓こんなふうにしたい for count=1 to 10 Cells(count,4).select Activecell.Value = "=Vlookup("count"1,B:C,2,False) next count A列とB列を比較して、同じのがあったらC列をD列にコピー、みたいな? BC列も本当はRange("B65536").End(xlUp).Selectで取得した値を使いたいです。 というかそれ以前にRangeで変数を使う方法すらわからない・・・
236 名前:235 mailto:sage [2007/06/26(火) 01:07:09 ] 書きまちがいを発見 × Activecell.Value = "=Vlookup("count"1,B:C,2,False) △ Activecell.Value = "=Vlookup(1"count",B:C,2,False)" ○ ? ところで="〜"で書くのとApplication.WorksheetFunction .VLookup使うのって何か違うのでしょうか?
237 名前:デフォルトの名無しさん [2007/06/26(火) 01:08:48 ] ExcelVBAで、サブルーチンのネストはできますか?
238 名前:デフォルトの名無しさん [2007/06/26(火) 01:19:37 ] >>235 悪い、したいことが分からない。 >A列とB列を比較して、同じのがあったらC列をD列にコピー、みたいな? これってVLOOKUPか? ちなみに ActiveCell.Value="=SUM(B2:B4)" ActiveCell.Value=Application.WorkSheetFunction.Sum(Range("B2"),Range("B4")) との違いは、最初の方は、マクロ実行後にB2からB4のセルの値が変われば、ActiveCell の値も変わる。でも、下の方は変わらない。 それだけじゃないけどな。
239 名前:235 mailto:sage [2007/06/26(火) 01:33:37 ] >>238 説明悪くてすまん まずA1のセルを選択 B列のどこかにA1と同じデータがあったら(B10とする)C10をD1にコピー これをA10まで繰り返し vlookupじゃないの? 当初↓みたいなことをやってたのですが、データが各1万行とかになったら速度が恐ろしいことになりまして。 どうにかこれを高速化したいのです。 for count1=1 to Range("A65536").End(xlUp).Select for count2=1 to Range("B65536").End(xlUp).Select if Cells(count1,1).value = Cells(count2,2),value then Cells(count1,4).value = Cells(count2,3).value end if next count2 next count1
240 名前:デフォルトの名無しさん [2007/06/26(火) 01:47:48 ] >>239 ああ、確かにVLOOKUPだな。 この感じだと、セルD4に 「=VLOOKUP(A1,B:C,2)」って入るよな。 それをセルD10まで下にコピーするのじゃいけないの?
241 名前:235 mailto:sage [2007/06/26(火) 01:58:26 ] >>240 各1万行くらいで行数が不定なのです まとめて出来る(で、forより早い)方法があればvlookupでなくてもなんでもいいのですが
242 名前:デフォルトの名無しさん [2007/06/26(火) 02:17:26 ] >>241 もう頭が働かないんで… とりあえず235で質問してたRangeを変数に代入する方法 Dim targetRange As Range Set targetRange = Range("A65536").End(Xlup) これでtargetRange.Rowで最終行が何行目か分かる。 ちなみにforでも一万行くらいならあまり時間かからないような気がする。 forのネストにする意味が分からない。一致したらExit For でFor文を 抜ければいいのに。
243 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 03:15:16 ] >データが各1万行とかになったら速度が恐ろしいことになりまして 実行中の画面描画をOFFにしてないんじゃない? そこ変えるだけで解決することもあるよ
244 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 03:20:47 ] Application.ScreenUpdating = False 処理の終了段階でTrueに戻して下さい。 Application.EnableEvents = False 処理の終了段階でTrueに戻して下さい。 Application.Calculation = xlCalculationManual 処理の終了段階でxlCalculationAutomaticに戻して下さい。 マクロ動作中にEscキーで止められるのを抑制する。 マクロ動作中に一切のキーやマウス操作を制限する。 Application.Interactive = False 処理の終了段階でTrueに戻して下さい。 但し、この状態で何らかの理由でマクロが停止してしまうと、Excel自体は何も操作できない状態になってしまい、タスクマネージャで強制終了させなければならなくなります。この記述だけは確実に動作検証が終わってから設定して下さい。 マクロ動作中はマウスカーソルを「砂時計」にする。 Application.Cursor = xlWait 処理の終了段階でxlDefaultに戻して下さい。 www.asahi-net.or.jp/~ef2o-inue/vba_o/sub05_090_040.html
245 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 04:00:51 ] >>235 Range("D1").Resize(Cells(Rows.Count, "A").End(xlUp).Row).Formula = _ "=VLOOKUP(A1,B$1:C$" & Cells(Rows.Count, "C").End(xlUp).Row & ",2,FALSE)" >>244 >何も操作できない状態になってしまい、タスクマネージャで強制終了させなければならなくなります。 イミディエイトウィンドに Application.ScreenUpdating = True で、エンターキー
246 名前:デフォルトの名無しさん mailto:sage [2007/06/27(水) 00:07:51 ] A B C D 東京 東京 東京 =LOOKUP(A1,B:B,C:C) 大阪 大阪 愛知 名古屋 福岡 福岡 北海道 札幌 とするとD1が名古屋になるんだけど気のせい?
247 名前:235 mailto:sage [2007/06/27(水) 01:06:07 ] >>242 ,243,244,245さん、ありがとうございます。 >>242 逆でして、 for i=1 to Range("A65536").End(Xlup) Range("A"i).select next i みたいなことがしたかったのです。 >>243 ,244,245 本日ぐぐりまくってとりあえずそこらへんの設定をしました。 やりたいことを綴ってたらえらい長くなってしまったので表にしました(とりあえずodsとxml) 見ていただければ幸いです ttp://bebe.run.buttobi.net/up/src/be_1262.zip
248 名前:デフォルトの名無しさん mailto:sage [2007/06/27(水) 01:10:52 ] 2003personalだとエラーが出て開けない
249 名前:235 mailto:sage [2007/06/27(水) 01:21:05 ] うゆー ってか、今更xlsを発見した。すまねぇ ttp://bebe.run.buttobi.net/up/src/be_1263.zip
250 名前:デフォルトの名無しさん mailto:sage [2007/06/27(水) 01:27:13 ] なんか昔、これの横バージョンを総合相談所のほうでコード書いた気がする…
251 名前:デフォルトの名無しさん mailto:sage [2007/06/27(水) 01:52:19 ] 横バージョンじゃなくて、似たような表の作成だった。 相談所55の部品表のをいじればなんとかなるんじゃないかな。 実行速度もシートをメモリに読み込んですれば大丈夫だろう。 もう寝る。
252 名前:245 mailto:sage [2007/06/27(水) 17:46:50 ] 'Microsoft Scripting Runtime を参照設定 '結果はG,H,I列の1行目以下に出力 '結果出力用配列 出力行数を上回る行数を確保。下回るとエラー Dim ans(5000, 2) As String Dim d As New Scripting.Dictionary Dim v() As Variant Dim buf As Variant Dim vv As Variant Dim i As Long Dim n As Long v = Range("D1", Cells(Rows.Count, "E").End(xlUp)).Value For i = 1 To UBound(v) If d.Exists(v(i, 1)) Then d(v(i, 1)) = d(v(i, 1)) & vbTab & v(i, 2) Else d.Add v(i, 1), v(i, 2) End If Next i v = Range("A1", Cells(Rows.Count, "B").End(xlUp)).Value
253 名前:245 mailto:sage [2007/06/27(水) 19:00:43 ] For i = 1 To UBound(v) If d.Exists(v(i, 1)) Then buf = Split(d(v(i, 1)), vbTab) For Each vv In buf ans(n, 0) = v(i, 1) ans(n, 1) = v(i, 2) ans(n, 2) = vv n = n + 1 Next vv Else ans(n, 0) = v(i, 1) ans(n, 1) = v(i, 2) n = n + 1 End If Next i Set d = Nothing Range("G1").Resize(n, 3).Value = ans
254 名前:デフォルトの名無しさん mailto:sage [2007/06/27(水) 21:42:09 ] をいをいw
255 名前:デフォルトの名無しさん mailto:sage [2007/06/27(水) 23:38:13 ] >>254 どうした?
256 名前:デフォルトの名無しさん [2007/06/28(木) 09:32:06 ] >>252 >>245 関連ではないのだが、 > 'Microsoft Scripting Runtime を参照設定 > Dim d As New Scripting.Dictionary これってなに?VBAから、WSHのオブジェクトを呼び出しているわけ?
257 名前:デフォルトの名無しさん [2007/06/28(木) 17:31:08 ] すいません。質問です。 シート1のあるA1に「A」、A2に「B」、B1に「1」、B2に「2」が入っています。 シート2にはA1に「A」、A2に「3」、B1に「B」、B2に「4」が入っています。 シート1のA1の「A」を検索した上でその下のセルにある「1」をシート2の「A」の横にあるセルに入力し、且つそのセルにあった数値(ここでは3)を右にシフトしたいのです。 VBではどうすればいいですか?
258 名前:デフォルトの名無しさん mailto:sage [2007/06/28(木) 19:38:54 ] Shift:=xlToRight
259 名前:235 mailto:sage [2007/06/29(金) 00:17:52 ] 相談所55が見つからなかったので自力で作ったよ! よく考えたら別に一枚のシートじゃなくていいじゃん、ということに遅まきながら気付いたので for i,j=1 to 各行数 If Cells(i,1).value = Cells(j,4).value then k=k+1 Sheet("Sheet2").Cells(k,1).value = Cells(i,1).value Next j 〜(マッチしなかったときの処理とか)〜 Next i 的な流れで完成したお! 遅いお! >>252 何これ!チョー早い! 意味が全然分からないけど今から修行する!さんくす! ところで=minute(now())とかsecond(now())とか並べてるとyear(now())だけ変になるんだけど何故?
260 名前:デフォルトの名無しさん [2007/06/29(金) 00:24:35 ] 値のコピー貼付をワークブック間で行いたいのですが、 ' @コピー元 Workbook("").Sheets("").Activate Range("").Copy ' Aコピー先 Workbooks("").Sheets("").Activate Range("").Select Selection.Pastespecial Paste:=xlValues ファイルをまたぎ、かつ値貼付の場合このような段階を踏まないとエラーになってしまいます。 同シート内での値コピーに使える Range("").Copy Range("").Pastespecial またはRange("")=Range("") のような簡潔な記入法は無いものでしょうか?
261 名前:デフォルトの名無しさん mailto:sage [2007/06/29(金) 00:42:07 ] ですてぃねーしょん
262 名前:デフォルトの名無しさん [2007/06/29(金) 01:05:23 ] すみませんが、ひとつ教えてください。 階乗を計算する関数を作成したくて、 以下のようなプログラムを書いたのですが、 戻り値が0です。 なぜでしょうか? (ちなみに、xxをkfactにすると、正常に動くようです) ぜひ、ご回答お願いいたします。 Public Function kfact(n As Integer) As Integer Dim i As Integer Dim xx As Integer i = 1 xx = 1 Do While i < n xx = xx * i i = i + 1 Loop End Function
263 名前:デフォルトの名無しさん mailto:sage [2007/06/29(金) 01:26:15 ] >>262 Public Function kfact(n As Integer) As Integer Dim i As Integer Dim xx As Integer i = 1 xx = 1 Do While i < n xx = xx * i i = i + 1 Loop '↓これ追加(戻り値) kfact = xx End Function ちなみに階乗なら=fact()って関数あるけど それじゃダメなん? VBAで使うならApplication.WorksheetFunction.Fact()ね
264 名前:デフォルトの名無しさん mailto:sage [2007/06/29(金) 16:35:16 ] >>256 わけ。特に珍しい手法ではない。 Dictionaryやfsoは便利なので結構良く使うと思う
265 名前:デフォルトの名無しさん [2007/06/29(金) 20:11:27 ] エクセル2003、ウィンXPです。 以下の様なマクロを作成しました。 データの抽出後に、可視セルの値を順に特定セルに入れて、 印刷したいのですが、思った様に動作しません・・・。 どなたか、お知恵を! Sub 抽出と印刷() '書類作成用にデータを抽出。 'シート1のBP列がゼロで無いものを抽出。 Sheets("シート1").Columns("BP:BP").AutoFilter Field:=1, Criteria1:=">0", Operator:=xlAnd '抽出されたリストのBP列の値をシート2のD68に順番に入れて、2枚ずつ印刷する。 ‘抽出から除外された行は印刷からも除外したいので、可視セルだけで処理したい。 Dim i As Long For i = 2 To Worksheets("シート1").Cells(Worksheets("シート1").Rows.Count, 1).End(xlUp).SpecialCells(xlCellTypeVisible).Row Worksheets("シート2").Range("D68").Value = Worksheets("シート1").Cells(i, 1).SpecialCells(xlCellTypeVisible).Value '印刷処理をします。 Sheets("シート2").PrintOut copies:=2, Collate:=True, preview:=True Next i End Sub
266 名前:デフォルトの名無しさん mailto:sage [2007/06/29(金) 20:28:14 ] >>256 ,264 > これってなに?VBAから、WSHのオブジェクトを呼び出しているわけ? 正確には違う Microsoft Scripting RuntimeはWSHのインストーラーパッケージに含まれてはいるが Scripting.DictionaryはWSHのオブジェクトではなく、ActiveXの汎用コンポーネントに含まれるオブジェクト WSHのオブジェクトじゃないから、WSHから使う場合もWSHのオブジェクトであるWScriptオブジェクトみたいに いきなり使うことは出来ず、CreateObjectなどで外部参照してやる必要がある
267 名前:デフォルトの名無しさん mailto:sage [2007/06/29(金) 23:03:58 ] ShowしたUserFormってどうやって閉じていますか? UserForm1.Close こんなのないよね? Unload Meってのはいまいち分からない。不便。
268 名前:デフォルトの名無しさん mailto:sage [2007/06/29(金) 23:08:07 ] Unload UserForm1
269 名前:デフォルトの名無しさん mailto:sage [2007/06/29(金) 23:24:03 ] >>268 サンクス
270 名前:デフォルトの名無しさん mailto:sage [2007/06/29(金) 23:25:06 ] >>265 どこが思ったように動作しないのか説明がないけど 抽出したあとCopy使えばいいよ >>267 UserForm1.Hide
271 名前:デフォルトの名無しさん mailto:sage [2007/06/30(土) 00:04:38 ] >>270 Hideは見えなくなるだけ
272 名前:デフォルトの名無しさん mailto:sage [2007/06/30(土) 00:46:27 ] >>271 うん、でも>>268 の人がもう答えてたから他のを書いた あと一応はShowとHide、LoadとUnloadが対応になってるかなと思ってるし
273 名前:デフォルトの名無しさん mailto:sage [2007/06/30(土) 01:35:58 ] Accessではclose使えるのに どうしてExcelではだめなのでしょう?
274 名前:262 [2007/06/30(土) 01:50:26 ] 263 ありがとうございます。 ワークシート関数ってオーバーフローするイメージがあるので、あんまり好きじゃないのです。
275 名前:デフォルトの名無しさん mailto:sage [2007/07/01(日) 00:50:52 ] >>92 Application.FileSearchは削除されたよ。 以前から挙動不信だったんで、存在そのものを抹消したのだと思われ。
276 名前:デフォルトの名無しさん [2007/07/01(日) 03:23:57 ] 5人で30回じゃんけんをして、出した手をB〜Fに書き込み、勝敗をG〜Kに 書き込むマクロを短めで作りたいのですが、勝敗パターンを作る以外の方法が思いつきません。 よろしくお願いします。
277 名前:デフォルトの名無しさん mailto:sage [2007/07/01(日) 04:25:41 ] >>276 >>16 さようなら
278 名前:デフォルトの名無しさん mailto:sage [2007/07/01(日) 08:47:13 ] >>275 あー確かに挙動不振だな
279 名前:デフォルトの名無しさん [2007/07/01(日) 09:19:11 ] 置換について質問です。 以下の様にすると、"さんま"という文字列を"魚"に置換できるのですが、 "さんま"、"タイ"、"いわし"のいずれかの場合に"魚"に置換する場合はどうやって指定しますか? Selection.Replace What:="さんま", Replacement:="魚"
280 名前:デフォルトの名無しさん mailto:sage [2007/07/01(日) 09:31:10 ] >>279 with Selection .Replace What:="さんま", Replacement:="魚" .Replace What:="タイ", Replacement:="魚" .Replace What:="いわし", Replacement:="魚" end with
281 名前:デフォルトの名無しさん [2007/07/01(日) 09:38:53 ] >280 ありがとうございます!
282 名前:デフォルトの名無しさん mailto:sage [2007/07/01(日) 10:13:19 ] >>276 総合で訊いてる奴だよな?
283 名前:280 mailto:sage [2007/07/01(日) 10:20:13 ] >>281 ぉぃ! まさか、こんなこと訊いてるんじゃないよなぁ...と思いながら、 答えてみたんだが、解決かよ(-_-#);
284 名前:デフォルトの名無しさん mailto:sage [2007/07/01(日) 10:57:24 ] 釣りだろ
285 名前:デフォルトの名無しさん [2007/07/01(日) 11:57:26 ] シートAに以下のマクロ実行するボタンがあります。 シートBを選択した状態だと問題なく動作するが、 シートAから実行するとエラーがでます。 最終的にシートA以外は不可視にしたいので、 Worksheets("シートB").select をしたくないです。 何か良い方法有りますか? Worksheets("シートB").Range(Cells(1, 1), Cells(100, 100)).Sort Key1:=Range("a1"), Key2:=Range("d1"), Header:=xlYes
286 名前:デフォルトの名無しさん mailto:sage [2007/07/01(日) 14:11:49 ] Set ws = Worksheets("シートB") With ws .Range(.Cells(1, 1), .Cells(100, 100)).Sort Key1:=.Range("A1"), Key2:=.Range("D1"), Header:=xlYes End With
287 名前:デフォルトの名無しさん [2007/07/01(日) 15:26:32 ] >286 有難うございます。 試してみましたところ、シートBが選択された状態では動作しました。 シートAが表示された状態で実行すると、 「アプリケーション定義またはオブジェクト定義のエラーです」となります。
288 名前:デフォルトの名無しさん [2007/07/01(日) 19:25:16 ] Σ(゚∀゚;) ?
289 名前:デフォルトの名無しさん [2007/07/01(日) 19:45:48 ] 285です。 解決しました。 Worksheets("シートB").Range(Worksheets("シートB").Cells(1, 1), Worksheets("シートB").Cells(100, 100)) _ .Sort Key1:=Worksheets("シートB").Range("a1"), Key2:=Worksheets("シートB").Range("d1"), Header:=xlYes
290 名前:デフォルトの名無しさん mailto:sage [2007/07/01(日) 20:52:21 ] >>289 これって>>286 と何が違うん?
291 名前:デフォルトの名無しさん mailto:sage [2007/07/01(日) 22:42:36 ] Excel2003なのですが、 VBエディターで編集したマクロをリロードするための ファンクションキーってありますでしょうか?
292 名前:デフォルトの名無しさん mailto:sage [2007/07/01(日) 23:01:44 ] エクセルの2つのシートを比較するマクロを作っているのですが、 行と列のサイズが大きくなると処理が重くなります。 1000*256ぐらいで処理が重くなります。 これは、仕様なんでしょうか。 For i=0 To 65536 For j=0 To 256 比較 Next Next 使われているシートの範囲を読み取るとか 範囲を設定するとかすればいいと思っています。 指摘などありましたらよろしくお願いします。
293 名前:デフォルトの名無しさん mailto:sage [2007/07/01(日) 23:19:53 ] >>292 Dim s As Range Set s = ActiveCell.SpecialCells(xlLastCell) MsgBox s.Column & " " & s.Row
294 名前:デフォルトの名無しさん [2007/07/02(月) 20:40:46 ] arry(あ,い,う,え,お) を、 ExcelのセルA1〜E1に 一気に貼り付ける方法てないですかね。 For文で順番に セルA1に「あ」を入れて セルB1に「い」を入れて… というのは分かるんですが。 なんかもっとこう効率良いやり方ないかな。
295 名前:デフォルトの名無しさん mailto:sage [2007/07/02(月) 21:05:35 ] >>294 おしい、そこまでいけて何故できないw Range("A1:E1") = Array("あ","い","う","え","お") 是非感想を。
296 名前:デフォルトの名無しさん [2007/07/02(月) 21:14:58 ] >>295 で、できたー!! ありがとう。これでよかったのか… Pasteにばっか気をとられてたわ。
297 名前:デフォルトの名無しさん mailto:sage [2007/07/03(火) 00:16:07 ] VBAのコードを含んだブックを余所にあげたりするとき、デジタル署名とか どうしてますか? 律儀にベリサインから買ったりしてるんでしょうか?
298 名前:デフォルトの名無しさん mailto:sage [2007/07/03(火) 06:33:52 ] SelfCert 外に出すときは、署名壊れたとき用に対応策(向こうで再署名)を書いておく # ソースは見られるが管理者だけなら問題なかろう 2000ならこれでOK それ以降なら我慢して使ってもらうしか。 一応、毎回署名を確認してもらう事に… 既に署名を持っているならともかく、予算的にExcelの為に申請なんて出せないし。
299 名前:デフォルトの名無しさん mailto:sage [2007/07/03(火) 09:15:58 ] 売る場合はともかく、あげる場合は向こうで勝手に対応してもらう