Excel VBA 質問スレ Part33
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2013/10/17(木) 22:04:40.64___
___ /____ヽ ____
/____\ | |´・ω・`| | /___ヽ
.l |´・ω・`| ニX二 . ̄ ̄ ̄ 二X二 |´・ω・`| l 俺たちに任せろ
!、 ̄ ̄ ̄ ヽ | | /  ̄ ̄ ̄/
ヽ_/ヽ、 ヽ__) \__/\_/. /_/ ノヽ_/
 ̄  ̄ ̄
前スレ
Excel VBA 質問スレ Part32
http://toro.2ch.net/test/read.cgi/tech/1381151717/
このスレはコード書き込みOKです。
作成依頼もOKですが、作成依頼限定ではありません。
コードが嫌な人はこちらのスレへ
http://toro.2ch.net/test/read.cgi/tech/1381151995/l50
0736デフォルトの名無しさん
2014/06/14(土) 14:18:26.82ID:Je/qq0DA俺の体感では
システム側の問題でマクロ付きのエクセルファイルが壊れるのは、それ以外のファイルが壊れるのと差はない
マクロでおかしなことやってるか、マクロ関係なくファイル壊れるような環境かのどっちかが疑わしい
>>731
リソースの競合
>>735
パス長の問題で読み書きできないんじゃないのか?
0737デフォルトの名無しさん
2014/06/14(土) 15:36:29.51ID:UnUM1hDEこちらで質問したのですが、
こちらのスレのほうがよかったのですかね?
708です
0738デフォルトの名無しさん
2014/06/14(土) 21:48:17.67ID:ez0d87W9> マクロでおかしなことやってるか、マクロ関係なくファイル壊れるような環境かのどっちかが疑わしい
まじにこんな事言う人始めて見たw
0739デフォルトの名無しさん
2014/06/15(日) 09:58:44.35ID:2EJJf8nrB列に値が入っていない所から同じ処理をさせるようにするにはどうすればよいのでしょうか?
For wRow = 1 To Range("A" & Rows.Count).End(xlUp).Row
・・・
・・
・
Next
A B
1 x x
2 x x
3 x x
4 x ←この列から処理を始めたい
5 x
0740デフォルトの名無しさん
2014/06/15(日) 10:14:00.30ID:QD8jtgNHDim FirstB As Long
FirstB = Range("B1").End(xlDown).Offset(1).Row
For wRow = FirstB …
0741デフォルトの名無しさん
2014/06/15(日) 11:40:26.86ID:2EJJf8nr早々のレスありがとうございます。
上手くいきました!作業効率があがり助かりました!
0742デフォルトの名無しさん
2014/06/15(日) 21:21:01.30ID:2EJJf8nr度々すみません
この処理を仮に6行目からスタートさせるにはどうすればいいのですか?
0743デフォルトの名無しさん
2014/06/15(日) 21:24:01.33ID:QD8jtgNHB1をB6に変えればいいよ。
0744デフォルトの名無しさん
2014/06/15(日) 22:09:31.20ID:2EJJf8nrありがとうございます。初歩的な質問ですみませんでした
0745デフォルトの名無しさん
2014/06/17(火) 03:05:20.46ID:1LOl6xrI候補に出てきません。エクセル2002の仕様ですか?
0746デフォルトの名無しさん
2014/06/17(火) 03:10:24.91ID:1LOl6xrI[_END]の[]で括るのは、どういう意味ですか?
Enum Area
West = 0
East
[_END] = -1
End Enum
0747デフォルトの名無しさん
2014/06/17(火) 03:59:06.43ID:jPdOoXg3セル範囲の名前の定義
0748デフォルトの名無しさん
2014/06/17(火) 10:25:10.56ID:X2vvvV0A0749デフォルトの名無しさん
2014/06/17(火) 10:25:54.01ID:X2vvvV0A0750デフォルトの名無しさん
2014/06/17(火) 10:26:46.03ID:X2vvvV0A0751デフォルトの名無しさん
2014/06/17(火) 10:36:51.26ID:l2MahTzn通常指定できない変数名を使うときに[]でくくると言うVBAのルール
ExcelVBAとして>>747の使い方する時もあるけど、>>746のはそれじゃない
ちなみに_で始めた列挙名は非表示メンバになって、通常の入力補助とかに出てこない
オブジェクトブラウザで 非表示のメンバを表示 にして確認できる
0752デフォルトの名無しさん
2014/06/17(火) 10:41:48.38ID:Yj2sqA8/クラス名そのものではなく
クラス名を型として宣言した変数の後にドットを入力しましょう
それでもダメなら、どこかにコンパイルエラーがあると思うので
メニューの デバッグ > VBAProjectのコンパイル で確認しましょう
>>747
コードエリアで使う場合と、宣言エリアの列挙型で使う場合とでは意味が違うよ
>>746
列挙型では、_ で始まる名前を [ ] で囲むと、入力候補に表示されないメンバを定義できる
これは、_で始まるメンバは非表示メンバになるのと、[ ] で囲むと通常使えない名前を定義できるのとの合わせ技です
>>748
オブジェクト変数をオブジェクト変数に代入するとエラーになります
オブジェクト変数をオブジェクト変数に参照代入すると、参照代入先のオブジェクト変数でも
元のオブジェクト変数が参照しているオブジェクトを参照できるようになります
>>749
可変要素数の配列変数への代入では、元の配列変数のコピーが作成されます
固定要素数の配列変数への代入では、要素数が同じでもエラーになります
0753デフォルトの名無しさん
2014/06/17(火) 12:09:43.40ID:l2MahTznコードエリアとか宣言エリアとか
参照代入とか
微妙な俺様用語使うのやめれ
0755デフォルトの名無しさん
2014/06/17(火) 17:05:41.46ID:HVt3rccc0756デフォルトの名無しさん
2014/06/17(火) 18:58:25.63ID:Oy7I6t4Iこんな方法はどうだろうか?
3x1 の配列でTranspos問題でるなら
ReDim Preserve TestArray(1 To 3, 1 To cnt + 1)
として 3x(cnt+1) の配列でReDimして Transposする
んで読み込む時は 配列の1次元目の最終データ
つまり
TestArray(cnt+1, 1)
TestArray(cnt+1, 2)
TestArray(cnt+1, 3)
は無効データとして無視する
0757デフォルトの名無しさん
2014/06/17(火) 21:32:49.72ID:l2MahTznTransposeの仕様っぽいから、1次元の配列になるのはどうしようもないんじゃない
そもそもWorksheetFunction.Transpose使う必然性がわからん
俺なら配列そのもの変換せずに、読む方で行列入れ替えて読むが
どうしても配列変換したければ自分で配列変換する関数作る
0758デフォルトの名無しさん
2014/06/17(火) 23:57:50.59ID:SruwTgIk勝手にスクロールロックされるという怪現象に長年悩まされてます
これまでは発生頻度が低いから気にしてなかったのですが、
最近バーコードリーダーを接続したPCで頻繁に発生するようになりました
あまりにうざいので、VBAで対抗しようと考えて
まずは Call Application.OnKey("{SCROLLLOCK}", "") としてみたのですがダメでした
何か良い方法ないでしょうか
SCROLLLOCKのON/OFFを判定して、
ONならOFFにする方法なんて無いでしょうか
0759デフォルトの名無しさん
2014/06/18(水) 00:03:23.37ID:EzL2wKEq0760デフォルトの名無しさん
2014/06/18(水) 00:05:05.34ID:0b/GVhNiどうもありがとうございました!
0761デフォルトの名無しさん
2014/06/18(水) 00:47:57.54ID:+FU8wlvZ「勝手にスクロールロック」でぐぐったらこんなん出た。
マウスのチルトホイールが悪さしてたらしい。
http://orbit.cocolog-nifty.com/supportdiary/2009/08/post-2f3e.html
0762662
2014/06/18(水) 07:46:00.29ID:SiDz/mVATransposeの仕様であるなら仕方ないですね。
今はcnt=1かどうかの場合分けで対応しています。
>>756
提案ありがとうございます。なるほど、そのようにしてTransposeで1次元となることを避けることができるのですね。
参考になります。この方法ならコードの修正部分も少なさそうです。
>>757
仰るようにTransposeを使う必然性はありません。
今の知識がありゼロから作り始めるならTransposeは使わずに作ると思います。
昔の名残を活用するために必然性のないTransposeを使う羽目になってしまいました。
時間ができたら全部書き直したい気持ちはあるのですが。。。
0763デフォルトの名無しさん
2014/06/18(水) 08:21:57.79ID:ahd+98VX0764デフォルトの名無しさん
2014/06/18(水) 10:15:27.45ID:fAjoLlg4>>761
PCもキーボードもマウス何回か換えてるし
EXCELも2000から2013にかけて何回か乗り換えてるから
違う原因と思うんですが
0765761
2014/06/18(水) 10:36:30.12ID:+FU8wlvZんじゃこっちはどう?
http://blog.livedoor.jp/sigh_too/archives/51273110.html
ctrl + c と間違えて Fn + c を押しちゃってた人の話
0766デフォルトの名無しさん
2014/06/18(水) 10:39:53.19ID:+FU8wlvZFn + K とかの場合もあるって事で機種によって違うみたいね。
0767デフォルトの名無しさん
2014/06/18(水) 12:31:44.62ID:k5Dh+D1Tここでもそんな相談は見たことないし、検索でもほとんど出てこないので、
何か特別なソフトが原因じゃないのかなあ
一般人が使わないようなアプリが入っているとか、変なマクロが走っているとか
そのパソコンはあなた専用?それとも共用?
0768デフォルトの名無しさん
2014/06/18(水) 12:35:01.13ID:k5Dh+D1Tいつもまったく気付かない?
一度でもスクロールロックされる瞬間を目撃したことはある?
その時、パソコンは使用中か放置中だったか
0769デフォルトの名無しさん
2014/06/18(水) 17:42:06.75ID:fAjoLlg4http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q13105571298
http://okwave.jp/qa/q6865033.html
すばやく連続入力して一呼吸おいた後に、次の入力を始めようとして
あれ?と気付くことが多いような気がします
入力中に突然ロックされたことはないと思います
PCは基本的に自分専用です。
発生頻度は1〜2ヶ月に1回くらいでしょうか
バーコードリーダーの場合は接続して間もないですが、
1日に1〜2回は出ていそうです。
PS2接続です。
0770デフォルトの名無しさん
2014/06/18(水) 19:27:12.46ID:x3SERBGR金額計算なんですが、例えばM列に1を入れるとK+Lの合計を0.5倍にして(何も入れないとK+Lの合計)N列に表示するっていう文を作りたいんですが、色々調べてもわかりません
よろしければ教えて下さい!
0771デフォルトの名無しさん
2014/06/18(水) 19:46:58.78ID:EzL2wKEqDim i As Integer
Dim lastrow As Integer
For i = 1 To lastrow
If Cells(i, 13).Value = 1 Then
Cells(i, 14) = (Cells(i, 11) + Cells(i, 12)) * 0.5
Else
Cells(i, 14) = Cells(i, 11) + Cells(i, 12)
End If
Next
0772デフォルトの名無しさん
2014/06/18(水) 19:48:50.42ID:/mM+tAme重複するものは代表1つだけにして
その要素数の数だけ文字列型の配列変数を返り値とする関数を作りたいです。
コードをお願いします。
0773デフォルトの名無しさん
2014/06/18(水) 20:01:04.29ID:ZRwyQinVSelection.Uniquify
0774デフォルトの名無しさん
2014/06/18(水) 20:38:45.97ID:/mM+tAmeこら。そんなのないぞ。
0775デフォルトの名無しさん
2014/06/18(水) 21:22:12.13ID:+FU8wlvZ同じ質問を繰り返している人がいるように思えるのは俺だけ?
Dictionaryとか自前で配列変数作るとかやりようはそれなりにあると思うけど。
0776デフォルトの名無しさん
2014/06/18(水) 23:31:09.78ID:IQKBzqn40777デフォルトの名無しさん
2014/06/19(木) 06:51:10.55ID:Wcq0Jv47へい。
https://friendpaste.com/7AESsKfoWV1tNVQmlhrMgY
0778デフォルトの名無しさん
2014/06/19(木) 07:19:42.28ID:NPfluINM「関数が必要」とか「作って欲しい」って書け
0779デフォルトの名無しさん
2014/06/19(木) 11:17:24.00ID:Oioydr8fこら、VBAで使えないぞ。
本当にVBAの言語用なのか?
0780デフォルトの名無しさん
2014/06/19(木) 11:33:56.90ID:YZPnLqDa停止もエラーも何もなく、ただ無反応
0781デフォルトの名無しさん
2014/06/19(木) 11:39:54.47ID:w+8gDH2bこれはすごい恩知らずwww
間違いなくVBAで使えるぞ。
0782デフォルトの名無しさん
2014/06/19(木) 11:52:02.14ID:w+8gDH2bコードが書いてないからそれだけではなんとも分からないですよ。
あと、使ってるエクセルとOSのバージョンも書いてないし。
とりあえずステップインで実行してみてはどうですか?
0783デフォルトの名無しさん
2014/06/19(木) 11:55:45.95ID:Oioydr8fこら、ウソ言うな。
選択してMainを実行したら「インデックスが有効範囲にないぞ」というエラーが出る。
0784デフォルトの名無しさん
2014/06/19(木) 12:09:33.27ID:w+8gDH2bためしに縦一列に文字だけ(数字は無視される)入れて、
その範囲を選択した状態でマクロ実行してみろよ
0785デフォルトの名無しさん
2014/06/19(木) 12:13:22.03ID:w+8gDH2bちょこっと手直しすると範囲が縦一列じゃなくて
数字も無視しないようになるけど
777さんに対してあまりにも無礼だからこれ以上は教えてやらない。
0786デフォルトの名無しさん
2014/06/19(木) 13:25:10.11ID:Oioydr8fそんなバグだらけじゃ使い物にならないじゃないか。
糞ボロ。ポンコツ。
0787デフォルトの名無しさん
2014/06/19(木) 14:00:13.35ID:w+8gDH2bだからあれはバグじゃなくて仕様
0788デフォルトの名無しさん
2014/06/19(木) 14:00:36.50ID:8jNSzAvz解散
0789デフォルトの名無しさん
2014/06/19(木) 14:26:30.45ID:z2Nts7ioすみませんなぜか再起動したら解決しました
0790デフォルトの名無しさん
2014/06/19(木) 21:26:30.92ID:B42MAC9KSub Test()
On Error Go To ErrorHandler
If hogeError Than
call EndProc
End If
call EndProc
ErrorHandler:
call EndProc
End Sub
Private Sub EndProc()
'インスタンスの破棄とかScreenUpdating =Trueとか
'プログラムの終了
End
End Sub
msdnとかだとEndステートメントはすぐに停止させる時だけ使えとかって書いてあるんだけど、この関数呼べば必ず綺麗に後処理できるから便利〜
と思ってたんだけどやっぱりダメなんすかね?
0791デフォルトの名無しさん
2014/06/19(木) 21:49:00.62ID:zV78lioGEnd使うとUnloadなしでフォームが閉じたりするから、綺麗に後処理できない
だから使うなって言われてる
0792デフォルトの名無しさん
2014/06/19(木) 22:42:28.51ID:B42MAC9Kあ〜なるほど、そっかformのイベントエラーとかでEnd飛ばしちゃうとUnloadとかされないのか
やっぱりエラーは個別にやんなきゃダメっすね、ありがとうございました。
0793デフォルトの名無しさん
2014/06/20(金) 19:07:25.47ID:zU8FIBtEそのメッセージはユーザがコピペできるようにしたいんです。
一番てっとり早い方法はなんでしょう?
0794デフォルトの名無しさん
2014/06/20(金) 19:42:55.71ID:qdXxhrxPメッセージボックスって普通コピー出来るんだが、VBAのはダメなんだっけ?
0795デフォルトの名無しさん
2014/06/20(金) 19:46:15.80ID:zU8FIBtEできないんですよ。
0796デフォルトの名無しさん
2014/06/20(金) 19:47:17.20ID:zU8FIBtE普通コピーできるって、その普通とはどういう環境?
0797デフォルトの名無しさん
2014/06/20(金) 19:49:02.65ID:zU8FIBtE無理やりオボったらちゃんとコピペできてた。
0798デフォルトの名無しさん
2014/06/20(金) 19:50:50.72ID:y3Z+Q6P/0799デフォルトの名無しさん
2014/06/20(金) 19:53:22.06ID:zU8FIBtE0800デフォルトの名無しさん
2014/06/20(金) 19:54:23.75ID:zU8FIBtE0801デフォルトの名無しさん
2014/06/20(金) 20:02:43.06ID:qdXxhrxP0802デフォルトの名無しさん
2014/06/20(金) 20:11:28.85ID:zU8FIBtEそもそもインプットボックスって名のとおりアウトプットじゃないじゃないですか?
だからインプットボックスについてるボタンなどをすべて無効化したい。
0803デフォルトの名無しさん
2014/06/20(金) 20:22:09.60ID:ZokJyX4+0804デフォルトの名無しさん
2014/06/20(金) 20:28:58.52ID:qdXxhrxPこれ以外認めないんだろ?最初からそう聞けばいいのに
0805デフォルトの名無しさん
2014/06/20(金) 22:47:42.81ID:q4j+Bx57全てのボタンを無効化したら閉じることも出来ないじゃん
0806デフォルトの名無しさん
2014/06/20(金) 23:29:37.04ID:NSJkRCsBそんな凝り固まった常識をぶち壊していきたい
0807デフォルトの名無しさん
2014/06/21(土) 00:14:38.91ID:mfmIX+n9編集禁止でも選択とコピーは可能だから
テキストボックスの背景をグレーするとかでMsgBoxと区別つかんようにできるし
0808デフォルトの名無しさん
2014/06/21(土) 00:18:27.48ID:JKn6FGb9下記のコードを使うと置換のタブが開かれた状態で表示されるので、
検索タブが開かれる状態でコードを登録する方法を教えて下さい。
CommandBars.FindControl(ID:=313).Execute
0809デフォルトの名無しさん
2014/06/21(土) 01:00:45.34ID:cHoAUDWh2013の資料が手元にないけど、2007なら
Application.CommandBars.FindControl(ID:=1849).Execute
0810デフォルトの名無しさん
2014/06/21(土) 01:04:01.23ID:mfmIX+n9ちょっと違うけど一応検索
Application.Dialogs(xlDialogFormulaFind).Show
ワークシートがアクティブになってれば
SendKeys("^F")
0811デフォルトの名無しさん
2014/06/21(土) 13:03:36.05ID:BHEAfygD2013でも使えました。ありがとうございます。
0812デフォルトの名無しさん
2014/06/21(土) 13:05:15.05ID:BHEAfygDこんな検索もあるんですね。参考になりました。有難うございます。
0813デフォルトの名無しさん
2014/06/21(土) 14:15:51.51ID:62Gltl9i758です。色々ぐぐって自己解決できたのでコード載せときます
オフにするところの2行の意味がよく分かりませんが
希望の動作ができたから良しとします
Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
Private Declare Function GetKeyboardState Lib "user32" (pbKeyState As Byte) As Long
Private Sub Worksheet_Change(ByVal Target As Range)
Const VK_SCROLL = &H91
Const KEYEVENTF_EXTENDEDKEY = &H1
Const KEYEVENTF_KEYUP = &H2
Dim LockState As Boolean
Dim keys(0 To 255) As Byte
GetKeyboardState keys(0)
LockState = keys(VK_SCROLL)
'オンであれば強制的にオフ
If LockState = True Then
keybd_event VK_SCROLL, &H45, KEYEVENTF_EXTENDEDKEY Or 0, 0
keybd_event VK_SCROLL, &H45, KEYEVENTF_EXTENDEDKEY Or KEYEVENTF_KEYUP, 0
End If
End Sub
0814デフォルトの名無しさん
2014/06/21(土) 15:51:17.12ID:MWnqmoLJはいやいいえになってると、Enter連打であっさりスルーされちゃうので
ぐぐっても「いいえ」に合わせるコードはでてきでも、
フォーカス無しのコードは出てこないし
msgbox("上書きしますか?",vbDefaultButton2+vbYesNo)
上のじゃないけど、ユーザーフォーム使うしかないんでしょうか?
0815デフォルトの名無しさん
2014/06/21(土) 17:20:31.07ID:4JtY8OkT0816デフォルトの名無しさん
2014/06/21(土) 18:03:25.68ID:Qjh9DMWWそりゃ当然だろ?
融通は利かないが、良く使われる用途なら簡素化できるってのが
MsgBoxを初めとする組込ダイアログなわけで
その仕様を外れたら自作になるのは、プログラムとしては当然のこと
MsgBoxではアレが出来ないコレが出来ないではなく、
本来なら全て自前でフォーム作らなければならないメッセージダイアログに置いて
特定の制限内の機能で事足りる場合はMsgBox関数で楽できるって考えるべき
つまりメッセージダイアログは、MsgBox基準ではなく自作基準で考えよう
0817デフォルトの名無しさん
2014/06/21(土) 22:22:34.80ID:A7b0CBz5おれスルーしたい時はESCだわ
0818デフォルトの名無しさん
2014/06/21(土) 23:06:28.70ID:Ipr85krHやはりそうですか…
今のところシートの中のVBA記述だけで作れていて
「シートコピーするだけで使えるマクロだから皆で使ってね」
って売り込みしたいので、ユーザーフォームは出来れば避けたかったのですが
まず開発タブを表示してVBEを開いて…とかだと多分みんな使ってくれない(汗
>>817
ESCやALT+F4は最初から無効みたいで、大丈夫でした
はい・いいえ・キャンセルを表示してフォーカスをキャンセルにして
キャンセル押したら再度Msgbox表示する方法で妥協を考えています。
ここを参考にしました。
http://www.excel.studio-kazu.jp/kw/20050314190246.html
0819デフォルトの名無しさん
2014/06/22(日) 04:00:56.97ID:3PJ9UmquMsgBox関数みたいに、メッセージの内容次第で幅も高さも可変で
いくつかのアイコン表示が出来たり、ボタンの数も種類も変えられたりするように作るなら面倒だけど
メッセージ内容もボタンも固定で、単にEnter連打で消えないようにするだけのものなら
1,2分もあれば作れるじゃん
ここで質問したりレスを読んだりするよりも短い時間で作れるものなのに
そんな簡単なことよりも、>>818の最後に書いてるような弊害を抱える方法で妥協するのは何故?
0820デフォルトの名無しさん
2014/06/22(日) 08:34:28.55ID:icvg/MGoそれを単純に昇順に並べるとき
VBAでわざわざ新シートつくってセルA1〜A100以降にわざわざ入力して
Excelのソート機能をわざわわざVBA呼び出して
そのあとわざわざ配列変数に入れなおすということをしています。
(この間ユーザに画面を見せないようApplication.Screenupdate = Falseにしています)
もっといい方法はありませんか?
やってること自体は単にアルゴリズムでいう「ソート」なので、新シート作ったりしないで、単に配列のソートをしたいだけなのですが。
ついでにExcel本来についている機能を利用するときそのコードがどうなって見れる方法とかありますか?
0821デフォルトの名無しさん
2014/06/22(日) 08:35:41.60ID:icvg/MGo0822デフォルトの名無しさん
2014/06/22(日) 08:50:10.63ID:bqRgXzqb配列のソートなんかいっくらでもサンプルがネットにある。
そうすれば、そのためにApplication.Screenupdate = Falseするのは回避出来る
0823デフォルトの名無しさん
2014/06/22(日) 08:53:16.45ID:E7Bp6E2C0824桃白白 ◆9Jro6YFwm650
2014/06/22(日) 12:08:58.33ID:TaqxR0c4(; ・`д・´)桃白白バブルソート実装しようか?
0825デフォルトの名無しさん
2014/06/22(日) 12:09:12.69ID:HL9MA0On>やってること自体は単にアルゴリズムでいう「ソート」なので、新シート作ったりしないで、単に配列のソートをしたいだけなのですが。
「ソート アルゴリズム」でググれ
ついでにExcel本来についている機能を利用するときそのコードがどうなって見れる方法とかありますか?
「メモリエディタ」でググれ
0826デフォルトの名無しさん
2014/06/22(日) 12:42:39.60ID:LETTRPjp>>819
> なぜそこまでしてフォームを自作することを敬遠するのか意味解らないw
も相当頭悪そう
ちゃんと書かれてるやん
0827デフォルトの名無しさん
2014/06/22(日) 12:46:42.79ID:rb15rihAVBAにはソート機能がないので、ワークシートを使うかソートのプログラムを自分で作るのが定番
誰かが公開したやつをネットからコピペしてもいいし
それ以外には、Windowsのソート機能を使うという方法もあるけど、あんまり一般的じゃないしメリットも少ない
0828デフォルトの名無しさん
2014/06/22(日) 14:14:21.42ID:28X7tRhT0829デフォルトの名無しさん
2014/06/22(日) 14:15:56.96ID:ISsPU5R9PowerShellにもあるのに
0830デフォルトの名無しさん
2014/06/22(日) 16:11:48.02ID:rb15rihAいくらでもある
標準で入ってるのだとvbsとか.netの配列オブジェクトを使えばソートメソッドも付いてくるけど使うのがめんどくさい
0831デフォルトの名無しさん
2014/06/22(日) 16:36:24.01ID:28X7tRhT.Netの配列なんて標準でついてるんだ。
標準ってことはdllファイルとかにしなくても参照設定で普通に使えるってこと?
Ienumelableの実装とかどうなってるの?
0832デフォルトの名無しさん
2014/06/22(日) 18:47:31.78ID:rb15rihACrerateObject以下略だけで使える
実装までは知らんけど、基本的な使い方はvbsの配列オブジェクトと似てる
0833デフォルトの名無しさん
2014/06/22(日) 19:22:55.53ID:jr7Ep/EM細かい話だが前から気になってるんだよ
0834デフォルトの名無しさん
2014/06/22(日) 20:58:53.57ID:rb15rihAあくまでも自己責任で
半角文字のソート程度ならバージョンが違っても動作が変わることは少ないと思うけど、
あえてそこまでして使うメリットもあんまりないと思うんで、気になるならVBAでソートプロシージャを自作しとけ
速度が必要ならワークシート関数使った方がたぶん速い
0835デフォルトの名無しさん
2014/06/22(日) 21:13:25.13ID:ut82qKlb別にユーザーフォーム使ったところで、呼び出しをシートに書いておけば
「シートコピーするだけで使えるマクロだから皆で使ってね」
からは外れない故の慰問だろ?
■ このスレッドは過去ログ倉庫に格納されています