952 :
877 :04/09/24 00:30:57
>>914 さん、ありがとうございました。
希望通りにできました。
入力してEnterを押すと次に入力したいセルへ飛ぶようになりました。
入力しなければ通常通りのセルへ移動します。
シートの保護等と違って他の箇所へ入力したい場合も便利です。
※入力せずにEnterのみで移動する方法はちょっと理解不足の為、
実施できませんでした。
でも、他のシートにも反映されるのはちょっと困りますのでこれで十分です。
本当にありがとう御座いました。
>>952 良かったね。ただ、もう少し口の利き方に気をつけた方が良いと思うよ。
>シートの保護等と違って他の箇所へ入力したい場合も便利です。
シートの保護を提案してくれた人に失礼。
もっとひどいのがこれ。
>わざわざ入力したい箇所をすべてctr+クリックしないといけなくなりますので・・・。
この時は礼すら言ってないもんなぁ。
954 :
名無しさん@そうだ選挙にいこう :04/09/24 02:32:37
>>953 同意
いくらネットで顔が見えないと言っても最低限の礼儀は必要だと思う。
2chで礼儀なんていらんだろ。 漏れもいろんな板で回答者やってるけど、別にいらんと思う。 回答側は、調べて答える事での自分の技術力うpと 上に立つ事での自己満足を得たいだけなんだから。 礼がほしいというのは、より上に立ちたいという心の表れじゃないのか。
2chを無礼無法地帯にするのに荷担してる香具師はイラネ ディスプレイの向こうには人がいるという認識があれば、 管理人が内輪の馴れ合いこそを推奨してるような場所でない限り、 礼儀は必須だという事くらい常識で分かる。 解答者が質問者より立場が上と言うのは 本来解答者側は持ってはいけない間違った認識だが、 それでも礼儀知らずになんか解答したくはなくなるのはある種人情というもの。 少なくとも礼儀いらんと思ってそういう振るまいしてる香具師は、 解答が帰ってこなくてもあまつさえ叩かれても文句を言う資格はないわな。
アドバイスしても返答がないってのは、2chではよくあること。 だが、それは「情けない現実」であって、肯定するべきものではない。 それに、いくら2chとはいえ、助言に煽りで報いるなんて論外だろ。 まぁ、当人にそんなつもりはないと思うが。
お礼はあってもなくてもいいけど、 質問する側の態度はあるのでは?
みなさん、なに言うてんでっか? お礼は必要にきまってますやろ? よろしゅうたのんま。 ほな。
961 :
名無しさん@そうだ選挙にいこう :04/09/24 11:48:18
あるフォルダ内(マイドキュメント内の一つ)の中のフォルダの名前を セルに書き出す方法なのですが、 VBAでだーっと書き出すことって可能ですか? 条件は 該当フォルダ内にはフォルダとファイルが混在しています、約50個 セルA1〜下にだーっとフォルダ名のみを書き出したいです
>>941 ありがとうございます。望み通りの動作です。
>>943 ありがとうございます。
今回は表示・非表示の切り替えと言っても、非表示にするのは別の操作で行いたいので、
ゴッホさんのコードを使わせてもらうことにしましたが、実行するごとに表示・非表示が切り替わるというのは、
今回の物とは別の場所で有効に活用出来そうなので後ほど利用させていただきます。
それともう一つお聞きしたいんですが、6の倍数+1の行を非表示から表示にするにはどのようにすればいいでしょうか?
現在は「Range("7:7,13:13,19:19").EntireRow.Hidden = False」としてますがこれもワークシートの行数が増えると
VBAの行数も増えてしまうのでなんとか纏めたいんですが、調べても上記のような指定の仕方は見つからなくて・・・。
ご存じの方、よろしくお願いします。
自分じゃ何も自助努力しない教えて厨には答えない方がスレのためな気がする。 あと、質問者用のテンプレがあっさりしてるのはここのいいとこでもあると思うが 他の質問スレだと質問のテンプレがここよりかなり細かく決まってるとこもあるよな。 「このスレに書き込む前に自分でしてみたこと」を書かせたりとか。 回答者の労を省くためにもそれくらいはテンプレに入れてもいいんじゃないだろうか。
964 :
名無しさん@そうだ選挙にいこう :04/09/24 14:44:36
表計算ソフトロータスの123のデータ形式を まんま表計算ソフトのエクセル形式に変換したいのですが 便利なツールはありますか?
>>964 ファイル>開く>ファイルの種類>Lotus 1-2-3 ファイル とか
>964 123でファイルを開き、「名前をつけて保存」でexcelの形式で保存 もしくは、excelで123のファイルを開き、「名前をつけて保存」でexcelの形式で保存 いずれにしても123独自の関数とかは変換できなかったと思う。
あさはかなマルチでしたすみません。 そしてありがとう。
>>966 ありがとうございます。うまくいきました。
971 :
白痴32歳 :04/09/24 19:57:09
セルの挿入で一気に20行くらいいれたいのですが 右クリックでセルの挿入やっても 一行しかはいりません 20回繰り返してます 何か方法はありませんか? ひとつよろしくお願いします
>>961 Sub ボタン1_Click()
Dim fs, f, f1, fc, s
Dim str As String
Dim i As Integer
str = "C:\"
Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.GetFolder(str)
Set fc = f.SubFolders
i = 1
For Each f1 In fc
Worksheets(1).Cells(i, 1) = f1.Name
i = i + 1
Next
End Sub
ヘルプの使用例をちょっと改造しただけ。
ボタンを押すとCドライブ直下のフォルダが列挙される。
Cドライブの直下だと本来表示されないはずのフォルダも
列挙されてしまうみたいだけど。
モニタ上に映る部分で、 常に「合計」の欄を画面内に表示しておきたいのですが どうすればよいでしょうか? 20行や20列くらいなら画面内におさまるのですが 40行や40列以上になったら画面内におさまりません。 スクロールさせないと「合計」が見れなくなってしまいます。
>>974 合計の行を一番上の行にして、ウィンドウ枠の固定を使ったら?
どうやら俺はスルーされたようだ・・・ 負けるもんか!
>>976 ゲンキダセ(´・ω・`)ノシ(´・ω・`)
VBAしたことない人にはあのアドバイスは難しすぎたんじゃないの?
>935 877にスルーされたり失礼なことを言われたのはお前だけじゃない。気にすんな。
979 :
961 :04/09/24 21:15:15
>>972 サンキュー
早速使わせてもらいます
ヘルプに使用例がのってたけど、ファイルもフォルダも全部出るやつだったので
助かったヨ
以前質問した者ですが、もう一度質問させてください。やりたいことは
38000│ 50 │ │ │38100│ 70 │ │38200│ 80 │ │ │ │38300│ 60
のように入力してあった場合、このうち1000以下の数を右から3つまで(60、80、70)を
その行のD列、E列、F列に抜き出したいのです。
前回質問時は、1行分を4行使って求める方法などを教えて貰いましたが、
動作としては申し分無いのですが、元のデータが1000行を超えるので重くてとても使える状態ではありませんでした。
前回は関数のみでということでお願いしましたが、今回は特に関数のみということには拘りませんのでどうか知恵を貸してください。
データの範囲は「H2:GK1486(186列x1485行)」、OSはXP Pro、ExcelはOfficeXPの物です。
>>974 >>975 と同じような方法だけど、現在合計を出してるセルが40行目40列目のAN40なら、
ウィンドウ枠の固定を使って常に表示されている領域(通常なら左上)に
=AN40
って入れておけば、常に合計の数値が見られるよ。
あとはExcelのカメラ機能でも同様のことが出来る。こちらは拡大も出来るしD&Dで移動も出来るけど、
やはりウィンドウ枠の固定と兼用しないと常時表示は出来ない。
>>962 「表示・非表示の切り替え」はただのついででして、
>>938 でおっしゃってた
>ぶっちゃけ「Target.Row+1:Target.Row+5」が指定できればいいんですが、ググっても具体的な記述が解らなくて…
ということでしたので、その指定の別解を提示したわけですが・・・
気付かれなかったようですね。トホホ
どこかで使っていただけるなら幸いです。
983 :
名無しさん@そうだ選挙にいこう :04/09/24 21:41:21
マクロで、データを切り取って他のブックにに貼り付けて そのブックを閉じると「クリップボードに大きなデータがあります〜」ってやつが 毎回でます。 自動で「いいえ」を選択したいのですが、できますでしょうか?
>>983 ブックを閉じる前に
Application.CutCopyMode = False
Application.CutCopyMode = False マクロのコードでコピーしたデータが不要になった時点で 上記のコードを実行させれば、メッセージは出ない …多分
かぶったorz
>>981 俺のスキルじゃこれ以上高速に処理出来ない。
下のマクロを実行するとフリーズしたように見えるので(俺のPCがショボいだけかも)
ステータスバーに経過を表示してみました。以下を標準モジュールにコピペして実行してみてください。
Sub 抽出
Dim CheckCell As Range, RowNum As Long
Application.ScreenUpdating = False
For RowNum = 2 To 1486
Cells(RowNum, 4).Activate
Set CheckCell = Cells(RowNum, Range("GL1").Column).End(xlToLeft)
Do Until ActiveCell.Column > 6
If CheckCell.Value < 1000 Then
ActiveCell.Value = CheckCell.Value
ActiveCell.Offset(0, 1).Activate
End If
If CheckCell.Offset(0, -1).Value <> "" Then
Set CheckCell = CheckCell.Offset(0, -1)
Else
Set CheckCell = CheckCell.End(xlToLeft)
End If
Loop
If RowNum Mod 50 = 0 Then '50行ごとにステータスバーに表示
Application.StatusBar = RowNum & "件処理完了"
DoEvents
End If
Next RowNum
Set CheckCell = Nothing
Application.StatusBar = False
Application.ScreenUpdating = True
MsgBox "完了しました。"
End Sub
988 :
983 :04/09/25 00:08:51
>>987 高速処理に惹かれたので(w
少しは早いかな?
Sub 抽出2()
Const intLastRow = 1486
Dim x As Integer, y As Integer
Dim n As Byte
Dim myArray() As Integer
ReDim myArray(intLastRow - 2, 2)
For y = 2 To intLastRow
For x = 193 To 6 Step -1
If Cells(y, x).Value < 1000 Then
myArray(y - 2, n) = Cells(y, x).Value
n = n + 1
End If
If n = 3 Then
n = 0
Exit For
End If
Next x
Next y
Range("D2").Resize(intLastRow - 1, 3) = myArray
Erase myArray
End Sub
990 :
名無しさん@そうだ選挙にいこう :04/09/25 04:32:41
Excel2002です。 userform1内にテキストボックスが10個とチェックボックスが10個あります。 名前はそれぞれCheckBox1〜10、TextBox1〜10です。 これらの内、TextBox3〜5に worksheet("sheet1")のセルA1からA3の値を入れるため下記のような コードを記述しています。 Private Sub CommandButton1_Click() i = 1 For Each Control In UserForm1.Controls If Control.Name Like "TextBox*" Then a = Mid(Control.Name, 8, 3) If a >= 3 And a <= 5 Then Control.Value = Worksheets("sheet1").Cells(i, 1) i = i + 1 End If End If Next Control End Sub 古いエクセルではtextboxes(1)かtextbox(1)のようにインデックスが割りあたってて 数字で直接指定できたのですが、2002ではできないのでしょうか 困ってはいませんがブサイクなコードでしっくりしません。
>>989 おお、早い!
なるほど、先に配列に代入しておいて一気に書き出せば
これだけ早くなるのか・・・勉強になりました。
でも、これだと空白セルも1000未満扱いになってるようですけど。
If Cells(y, x).Value < 1000 And Cells(y, x).Value <> "" Then
にしたほうがいいかも。
>>990 これならどうでしょうか。
Private Sub CommandButton1_Click()
Dim i As Integer
For i = 1 To 3
UserForm1.Controls("TextBox" & i + 2).Value = Worksheets("Sheet1").Cells(i, 1)
Next
End Sub
産め
それが俺の子だという証拠でもあるのか
梅
卯女
埋め
キタ━━━(゚∀゚)━━━ !!! 超1000
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。