
No.2ベストアンサー
- 回答日時:
文字列では、もちろんsmall関数で計算する事はできません。
文字列でそういう計算ができる関数等もありません。
まぁプログラミングに慣れた人なら、バブルソートとかちょこちょこっと実装してしまってやっつけるのもありでしょうが、そこまでしなくても例えばセルに一回データを書き出してエクセルに並べ替えさせてしまい、所定の位置のデータを拾ってくるなんて方法もあります。
ただし。
>私のエラーが起きていた中身ですが、英字を混んでいました。
>1234abcdの如くにです。
こういった「文字列の並べ替え」では、よほど条件が整ってない限り大概、大小の判定を失敗します。
上手くいかない例:
sub macro2()
dim a(15) as variant
dim i
for i = 0 to 15
a(i) = i & "abc"
next i
with range("Z1:Z16")
.value = application.transpose(a)
.sort key1:=range("Z1"), order1:=xlascending, header:=xlno
range("A1") = range("Z7").value
’.clearcontents
end with
end sub
上手くいく例:
sub macro3()
dim a(15) as variant
dim i
for i = 0 to 15
a(i) = format(i, "000") & "abc"
next i
with range("AA1:AA16")
.value = application.transpose(a)
.sort key1:=range("AA1"), order1:=xlascending, header:=xlno
range("A1") = range("AA7").value
’.clearcontents
end with
end sub
改めてあなたの「実際のデータ」をしっかり調べ、「どれが欲しい」のか、どうしてその順になるのか、キチンと整理してからそれをマクロに焼きなおすように考えてみて下さい。よくわからないときは、これ以降は確かに別のご相談内容と思いますので、何をしたいのか事実を添えて新しいご相談として投稿してみて下さい。
何回も有り難うございます。
>文字列では、もちろんsmall関数で計算する事はできません。
>文字列でそういう計算ができる関数等もありません。
了解です。
>まぁプログラミングに慣れた人なら、バブルソートとかちょこちょこっと実装してしまって
>やっつけるのもありでしょうが、そこまでしなくても例えばセルに一回データを書き出して
>エクセルに並べ替えさせてしまい、所定の位置のデータを拾ってくるなんて方法もあります。
まさに、ご指摘の方法とは違いますが、別のやり方で解決していました。
そして、smallを見つけたので使ってみようと思いやってみた。
ということです。
現在のやり方なら、英数字混在でも可能です。
現状維持としておきます。
少なくとも、「ローカルウインドー」を知ったことが成果です。
お世話になりました。
No.3
- 回答日時:
こんにちは。
変数の、hauseというものは、何の略か分かりませんが、Option Explicit をつけたらいかがですか?
基礎的な書き方を身につけたほうがよいですね。カウンター変数や特別の変数以外は、大文字・小文字を混ぜるなどします。定数は、大文字だけです。今回は、単に綴りが違っているだけの話だと思います。
'//
Option Explicit
Sub Macro1()
Dim Hause(15) As Double
Dim i As Long
For i = 0 To 15
Hause(i) = i
Next i
Range("A1").Value = Application.WorksheetFunction.Small(Hause, 7) 'houseではない。
End Sub
'//
No.1
- 回答日時:
>WorksheetFunction Smallでプロパティが取得できません
症状としては、変数hauseに数字を代入できていない(7個に足りない)ときの状況に合致します。
作成例:
Sub macro1()
Dim hause(15) As Variant
Dim i
For i = 0 To 15
hause(i) = i
Next i
Range("A1") = Application.WorksheetFunction.Small(hause, 7)
End Sub
必ず一度このマクロを実際にあなたのエクセルで作動させて、結果を確認してください。
そのうえで、あなたの動かないマクロをステップ実行させながら、とりあえずローカルウィンドウなどでhauseの中身にキチンと「数字が15個入ってる」かどうか、しっかり目で見て確かめてみてください。

早速、かつ、何時も有り難うございます。
お教えの例をやってみました。
綺麗に終了し、6が表示されました。
今回、「ローカルウインドー」なるテクニックを知りました。
今後使わせていただきます。
こんなことを知っていればこれまでに苦労しなかったと思える場面がかなりあったと
悔やんでいます。
本題ですが、
どうもsmallは数字しかダメみたいです。
私のエラーが起きていた中身ですが、英字を混んでいました。
1234abcdの如くにです。
variantという定義がエラーにならなかったので、okと思っていました。
私のexcelでも全てを数字にしたらノーマルに終了しました。
ということで、
今回の直接原因は分かった気がしますが、
英字も含めて昇順を決める命令/関数は存在するのでしょうか。
改めての質問はここを閉め、別にした方が宜しいのでしょうか。
とにかく有り難うございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【マクロ】実行時エラー '424':...
-
エクセルのVBAで集計をしたい
-
【マクロ】数式を入力したい。...
-
【マクロ】【配列】3つのシー...
-
【マクロ】元データと同じお客...
-
【マクロ】【相談】Excelブック...
-
他のシートの検索
-
【画像あり】オートフィルター...
-
Office2021のエクセルで米国株...
-
vba テキストボックスとリフト...
-
【マクロ】左のブックと右のブ...
-
エクセルシートの見出しの文字...
-
【関数】3つのセルの中で最新...
-
【マクロ】excelファイルを開く...
-
LibreOffice Clalc(またはエク...
-
エクセルの複雑なシフト表から...
-
空白のはずがSUBTOTAL関数でカ...
-
【関数】=EXACT(a1,b1) a1とb1...
-
【マクロ】【画像あり】❶ブック...
-
5単位で繰り上げしたい
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
結合したセルの並び替え(エク...
-
配列内データにsmallを使う
-
列の移動
-
【VBA】 通し番号の入力について
-
UWSCでie内のデータを取得しエ...
-
Excel VBA データ差し込みPDF...
-
エクセルのVBAで簡潔に表示...
-
エクセルのVBAについて
-
文字を書くのにエラー
-
【マクロ】元データと同じお客...
-
VBAで保存しないで閉じると空の...
-
WPSOffice_マクロの有効化について
-
Excel マクロの編集がグレーに...
-
【Excel VBA】マクロでExcel自...
-
複数のマクロボタンをまとめて...
-
エクセル関数>参照ファイル名...
-
エクセル ボタンに設定したマク...
-
Excelのマクロでボタンを押すと...
-
マクロの保存先、開いてるすべ...
-
エクセルのvbaにて thisworkboo...
おすすめ情報