Q.列名がA,B,C,D,Eではなく、1,2,3,4,5になってしまいました。 アルファベットに戻すにはどうしたらいいですか? A.ツールメニュー:「オプション」 -「全般」タグで 『R1C1 参照形式を使用する(C)』のチェックを外せば直ります。 Q:列を256個(IV列)よりたくさん広げることはできませんか? A:エクセルのシートは65536行×256列が仕様上の上限です。 シートを分けるとか、行と列を入れ替えるとか、データの方をまとめるとか、 列数を増やさない方向で工夫するしかありません。
Q:印刷プレビューではセル内に収まっていた文字が 実際に印刷してみるとはみ出してしまうのですが、 何とかなりませんか? A:「印刷プレビューと印刷結果が一致しない」のは 昔からのExcelの弱点で、どうにもなりません。 セルの幅や高さに余裕を持たせるか、 書式設定で「縮小して全体を表示する」にチェックを入れましょう。
Q.マクロを削除したのに、ファイルを開くたびにセキュリティの確認が出ます。 A.モジュールの解放が必要。 【モジュールの解放方法】Alt+F11→Ctrl+R→Module1を右クリック→解放
Q:たくさんの数値のリストがあって、
リスト中のいくつかの数の合計と思われる数値が与えられました。
リスト中のどれとどれの合計か調べることはできますか?
A:ナップザック問題(knapsack problem)として知られている難問です。
一般的には総当りで調べるしかありませんが。
しかし、データに特徴がある場合(桁数が限られているなど)には、
うまい方法があって、速く解けることもあります。
下記のページを参照してみてください。
ナップザック問題をExcelで解く
http://www.geocities.co.jp/SiliconValley-Oakland/8139/
Q:セルの内容を判断して、表示を変えたい A: IF関数を使います。 =if(条件,条件が成立した場合,成立しなかった場合) 例1:基本 セルA1が1の場合○、それ以外の場合×を表示 =IF(A1=1,"○","×") 例2:if文の中にif文 A1が、1の場合○、2の場合△、それ以外×。 =IF(A1=1,"○",IF(A1=2,"△","×")) 例3:ANDやOR活用 A1が、4〜6の場合は、普通と表示 =IF(AND(A1>3,A1<7),"普通","少ないか多い") 例4:計算も出来る A1が10までなら、A1を10倍して表示、それ以外なら2を引く。 =IF(A1<11,A1*10,A1-2) 詳しくはヘルプを参照しましょう。
Q1:データの空白部分があって、そこで折れ線が切れてしまいます。 繋げたいのですが如何したらいいでしょうか? A1:グラフを選択>ツール>オプション>グラフ>空白セルのプロット「補間してプロットする」にチェック Q2:棒グラフに重ねて、折れ線グラフを表示するにはどうしたらいいのでしょうか? A2:最初、すべてのデータを棒グラフで作成。 次に、折れ線で表わしたいデータ系列のどこかを、グラフ上で右クリック サブメニュー>グラフの種類>折れ線>OK Q3:ある系列だけ、縦軸を別にしたいです。 A3:その系列のどこかを、グラフ上で右クリック データ系列の書式設定>軸>使用する軸「第2軸」にチェック>OK
Q.セルに入力した値が勝手に変わってしまうのですが 入力したままの形で表示させるにはどうしたらいいですか? A.数字でよくあるケース(先頭のゼロが消えてしまう、日付として解釈されてしまう) 入力する時、先頭にアポストロフィ(')をつけるか、 該当するセルで右クリック−「セルの書式設定」−「表示形式」で「文字列」を選択。 文字列ではなく数値として扱いたいときは 「セルの書式設定」−「表示形式」で「ユーザー定義」を選択し、工夫する。 A.文字でよくあるケース(i⇒I、teh⇒the など) ツール→オートコレクト→入力中にオートコレクト の該当する箇所を削除。
エクセルの知識として知りたいんですが、 すべてのセルを同じフォントにしたい場合、 「全てを選択」をしてまとめて変える方法以外 他にないですよね?
ひとつづつ変えてもいいんだよ。 めんどくさいけど。
13 :
名無しさん@そうだ選挙にいこう :04/08/04 21:47
>>12 なるほど〜、その手があ・・・・・・ っておい!
でも、レスサンクス。
できました。ありがとうございます。
列番号0〜9 行番号0〜9 (行列の番号はソートされていません) で、各表に人名が入っています。 表の範囲(A1:K11) の表があります。 で、セルL1に「2」 セルL2に「3」 と入力して、 セルL3に行番号2且つ列番号3の人名を表示させたいのですが・・・ 行列の番号をソートさせたら、L3=VLOOKUP(L1,A2:K11,L3+2) で求められますが、行列をソートさせずに答えを求める方法はないでしょうか?
=INDIRECT(CHAR(98+L2)&L1+2)
>>16 自分ばらば、OFFSET関数を使います。
セルL3に = OFFSET(B2,L1,L2,1,1) を入力します。
今回の場合、行番号、列番号がバラバラと言うことなので、
変換テーブルを別のセルに作っておいて、
L1の代わりに vlookup(L1,N2:O11,2,FALSE) などとすれば良いと思います。
変換テーブルは、N2:N11に0〜9を、Q列にそれに対応する値を入れておきます。
L2も同様です。
自分はこれでうまくいきました。
ところで、誰か >13 分かりませんか?
なんか気持ちわるくて。
ソートされていない、てそういう意味かぁ。 訂正(offsetでも桶) =INDIRECT(CHAR(MATCH(L2,B1:K1,0)+97)&MATCH(L1,A2:A11,0)+1)
>>18 ユーザー設定のツールバーで新規にツールバーを作成。
ツールバーを添付する(添付ボタンがありますよね?)
作成したツールバーにアイコン、マクロを割り当てる。
これだけです。
23 :
名無しさん@そうだ選挙にいこう :04/08/05 15:37
ある分布をエクセルを使用して対数正規分布に近似する方法を教えていただけませんか? (1/((SQRT(2*3.1415))*σ*x))*EXP(-((LN(x)-μ)^2)/(2*σ^2)) μ:平均値,σ:標準偏差 ↑の対数正規分布の式でμ、σをソルバーを使って変化させ、元の分布にもっとも近い形になるような値を求めてみましたが、 どうもうまく行きません。 正しい近似法などがありましたら教えていただけないでしょうか? 一応、自分でも検索してみましたがなかなか見つからないのでここでお訊きしようと思いました。
>>21 レスありがとうございます。
これだけなのですね。
なにかもっとすごいテクを駆使しているのかと
思っていました。
25 :
名無しさん@そうだ選挙にいこう :04/08/06 02:10
お初 WindowsXP Office2000 です。 =FIND(", "&MOD($U$657,AI658)+1&",",AJ658) #VALUE!になって表示してくれません。 ナニがおかしいとでしょう。 MODは単体で正常に計算しています。 ヘルプよろ。
FIND関数で#VALUE!が返ってくるときは 文字列が見つからないのが原因と思われ。 "カンマ・半角スペース・MODの返り値+1・カンマ" を検索するようになってるみたいだけど、 本当にそういう文字列を含むモノがAJ658に入ってますか?
27 :
名無しさん@そうだ選挙にいこう :04/08/06 08:35
>>26 お返事ありがとう
解決しました
文字が無い時にはゼロとか返してくれれば良いのにね
ISERRを噛まして対応しました。
ついでですが、
VBAでセルに値を貼り付けるのはヤタラと遅いようです。
極力セルへのアクセスを避けるように記述すると早くなりますが
なにか根本的な良い方法はあるのでしょうか?
28 :
名無しさん@そうだ選挙にいこう :04/08/06 10:08
複数のシートを選択して、すべてのシートを縮小印刷したいのですが、やってみると最初のシートしか縮小されません。なにかいい方法はないでしょうか?WindowsXPでエクセル2000を使っています。
VBAを使ってセルに連番を振りたいと思っています 0〜9では足りないので 9の次はA〜Zを使うことになっています。 0123456789ABCDEFG........... と連番を上から順にふって行きたいのですが 0〜9なら FORループで振れますが、A〜Zの場合って ループでは振れないのでしょうか?
同じ環境ですが、複数シートタブを選択してページ設定すると、 全てのシートに反映されます。 どうすれば最初のシートだけになるか逆にお訊きしたい。
31 :
名無しさん@そうだ選挙にいこう :04/08/06 11:18
>>30 レスありがとうございます。
ページ設定→用紙サイズがA3のシートを3つ作り、
次にシフトを押しながらシートを複数選択、
そのままファイル→印刷し、プロパティから用紙指定変倍で
A4に縮小して印刷しているのですが・・・。
リコーのプリンタの問題なのでしょうか。
>29 例えばこんな風 Sub hoge() For i = Asc("A") To Asc("Z") Range(Chr(i) & 1) = Chr(i) Next End Sub 当然、〜9とA〜は分けること >30は>28に対してです。(判ると思うけど)
>31 プリンタのプロバティは複数シート同時に設定できないみたいですね。 エクセル側のページ設定の縮小なら全部に反映されます。
34 :
名無しさん@そうだ選挙にいこう :04/08/06 12:32
>>33 あ、なるほど。
ページ設定で用紙サイズをA3→A4にして
拡大縮小で65%ぐらいに調整したらできました。ありがとうございます。助かりました
35 :
名無しさん@そうだ選挙にいこう :04/08/06 20:44
どなたか教えていただけると幸甚です。 一列に1,2,3がズラーッとランダムに入力されいます。 この数字列の並び方のパターンを分析する方法はありますでしょうか。 たとえば,セルに「1」が入力されていたら,下のセルに入力されている 最も出現確率の高い数字は「3」である,といった感じです。 できれば,1->3 だけでなく 1->3->2 などと範囲を拡大できれば と思っています。 1 3 3 2 1 3 2 1 2 Excel 2000です。
分析は一定の法則に従って行います。 法則性を教えてください。
>>35 それがA列に100行目まで並んでるとする。
B1セルに =A2 と入れて、99行目までコピーする。
C1セルに =A1&"_"&B1 と入れて99行目までコピーする。
E1セルからE9セルまで
1_1
1_2
1_3
2_1
2_2
2_3
3_1
3_2
3_3
と入れる。
F1セルに =COUNTIF($C$1:$C$100,E1) と入れてF9までコピーする。
37さん どうもありがとうございます。 完璧です :o)。
教えてください。今、Excel2000で Dim strDate1 As String Dim strDate2 As String Dim strJouken1 As String Dim strJouken2 As String strDate1 = Range("F2").Value strDate2 = Range("F3").Value strJouken1 = ">=" & strDate1 strJouken2 = "<=" & strDate2 Application.ScreenUpdating = False Sheets("東京").Activate With Sheets("原本") .Range("H7").AutoFilter Field:=8, _ Criteria1:=strJouken1, Operator:=xlAnd, Criteria2:=strJouken2 .Range("H7").CurrentRegion.Copy _ Destination:=Sheets("東京").Range("B11") .Range("H7").AutoFilter End With Sheets("東京").Columns("A:L").AutoFit Application.ScreenUpdating = True と言うマクロを組んでデータを抽出、転記しているのですが、これだと2つしか条件を指定できません。 例えば原本から8月4日〜8月9日までの東京のデータを自動で(3つの条件を指定して)抽出したいのですが どうすればよいのでしょうか?わかる方がいらっしゃいましたらよろしくご教授お願いします。
40 :
名無しさん@そうだ選挙にいこう :04/08/07 14:21
店名と氏名のフリガナを入力すると、 「店番」「氏名コード」「漢字」 を検索できるようにしたいのですが、 どのようにすればよいのでしょうか? 「店番」は=VLOOKUP(B2,A5:D8,2,0) で検索できるのですが「氏名コード」「漢字」がわかりません。 宜しくお願いします。 A B C D E 1 店番 __ 2 氏名 __ 3 4 フリガナ 店番 氏名コード 漢字 区別 5 ミナミダイイチ 1 0 南第一 1 6 ミナミダイニ 2 0 南第二 1 7 キタダイイチ 3 0 北第一 1 8 キタダイニ 4 0 北第二 1 9 ヤマダタロウ 1 010 山田太郎 2 10 ヤマダハナコ 1 058 山田花子 2 11 ヤマダヒロシ 2 107 山田博 2 12 カトウタカシ 3 001 加藤隆 2 13 カトウハナコ 3 075 加藤花子 2 14 カトウミチコ 4 044 加藤通子 2
41 :
名無しさん@そうだ選挙にいこう :04/08/07 14:33
エクセル関数のLOGNORMDISTで平均値と標準偏差を入力しますが、この場合の平均値と標準偏差というのは幾何平均値と幾何標準偏差のことでしょうか? それとも、通常の平均値と標準偏差でいいのでしょうか?
42 :
名無しさん@そうだ選挙にいこう :04/08/07 17:46
>>40 「店番」は=VLOOKUP(B2,A5:D8,2,0)つうのもおかしいぞ。
A4:D8ではなくてA4:D14としないと。
同一氏名の人がいるから店番とフリガナの二つのキーで
検索する必要があるってこと?
だったら、A列に フリガナ&店番 というデータを追加しておいて、
これで検索しないといけない。
>>42 ありがとうございます
A4:D14ですね!間違ってしまいました。
>A列に フリガナ&店番 というデータを追加して検索
とはどういうことでしょうか?
一応「店番」と「氏名」を区別するために、
E列に「1」「2」と入れてあるのですが、
初心者なもので、どう使えばよいかわかりません。
具体的にどのような式にすれば良いのでしょうか?
2つのフィールドをキーにして検索するのは厳しい。
1つのフィールドに店名と氏名が混在しているのもまずい。
本来なら2つのリストに分けて扱うべきだけど
>>42 の言うように「ミナミダイイチヤマダタロウ」「ミナミダイイチヤマダハナコ」
といったデータを追加で作成すれば機能するのかもしれない。
あと、通し番号はもっとも左の列に作るべきかと。
45 :
名無しさん@そうだ選挙にいこう :04/08/08 05:49
Excel2002なんですが、TEXT関数で文字色を指定するにはどうしたらいいのですか? 「セルの書式設定」の「表示形式」と同じ記述では文字色を指定できませんでした。 やりたいことは、数式の結果が参照先(のひとつ)の数値の1/3以下なら文字色を赤にしたいのですが、 「セルの書式設定」では条件に他のセルを参照させることは出来ないし、条件付き書式は他で3つとも使ってしまっています。 「TEXT関数で文字色の指定」、「条件付き書式を1シートに3つ以上適用する方法」、「上記のようなことをVBAでやる方法」 どれかご存じの方教えてください。因みに書式を設定したいのはK21:k216、条件となる参照先はA21:A216です。
>>45 「TEXT関数で文字色の指定」
→出来ないそうです
「条件付き書式を1シートに3つ以上適用する方法」
→確か3つまでです
「上記のようなことをVBAでやる方法」
→シートのChangeイベントで出来そうな気がしますが、
検証のしようがないのでなんともいえません
>>45 「TEXT関数で文字色の指定」
⇒_
「条件付き書式を1シートに3つ以上適用する方法」
⇒1つのセルに3つじゃね?
「上記のようなことをVBAでやる方法」
⇒狩野。でもコード書くのは自分ででしれ
48 :
名無しさん@そうだ選挙にいこう :04/08/08 14:13
Windows XP、Excel2002 です。 セルに入力した数値を他のセルの関数内で反映させるにはどうすればいいのでしょうか? 具体的には、 「=シート(セルA1に入力した数値)!B2」 のようにしたいのですが・・・。 よろしくお願いします。
>>45 (1) [ALT] + [F11] で VBAエディタ(VBE)を開く。
(2) VBE の「挿入」→「標準モジュール」
(3) プロジェクトに追加された Module1 をダブルクリック。
(4) Module1 のコードに下記をコピペ。
VBE は閉じてよい。
(5) Excel の該当シートの任意のセルをクリックしてアクティブにする。
(6) 「ツール」→「マクロ」→「マクロ」→ macro を選択して実行。
(7) おわり。
Sub macro()
Dim i As Long
For i = 21 To 216
If Range("K" & i) <= (Range("A" & i) / 3) Then
Range("K" & i).Font.Color = vbRed
End If
Next i
End Sub
>>48 普通に =関数($A$1) じゃないの?
それとも、例からすると
=INDIRECT($A$1&"!B2")
みたいな事?
>>50 ええと、関数内で参照させるセル番号/シート番号を変数で置きたいのです。
例えば、シート2のセルA1に 「=シート1!A1」 とあるとします。
ここの参照させるシート番号、セル番号が、別のセルに入力した数値を更に参照するようにしたいのです。
ここで、参照させる別セルに”3”と入力するとシート2のセルA1の関数は、「=シート3!A3」となるような・・・。
よろしくお願いします。
>>48 >>51 での「別セル」がC1という前提で…
=INDIRECT("シート"& C1&"!A"&C1)
つか、せっかく
>>50 が肝となる関数を示してるんだから
少しは調べろと(ry
>>49 いや、実はこういう事かしれん
Sub macro()
Dim i As integer,t as integer
For i = 21 To 216
for t = 21 to 216 step 1
If range("a" & t) > 0 and Range("K" & i) <= (Range("A" & t) / 3) Then
Range("K" & i).Font.Color = vbRed
End If
next t
Next i
End Sub
ひねくれすぎですか、そうですかorz
>>46-47 前者2点についての回答ありがとうございます。
そうじゃないかなとは思ってましたが、ここで回答を頂けたことで確証がもてました。
前者2点は無理ということで諦めます。
>>49 ,53
回答ありがとうございます。
しかし、数値の変更が頻繁なので、いちいちマクロを実行するのではなく、関数の自動計算みたいに
参照先セルを書き変えたら自動で実行されるものでないと使えません。
また、VBAは殆ど解らないので間違ってるかも知れませんが、それだと一度でも条件(KがAの1/3以下)に一致したら
文字色は赤になったままじゃないですか?過去に一度でも条件に一致したものを赤文字にしたいのではなく、
現在条件に一致しているものだけを赤文字にしたいので。(それだけなら<=を>に、vbRedをvbBlackに変えればいいのかな?
コードの丸投げになってしまいますが、リアルタイムで「K(21=216)がA(21〜216)の1/3以下」という条件に一致する場合のみ
K列の文字を赤で表示するVBAの書ける方、よろしくお願いします。
>>55 >参照先セルを書き変えたら自動で実行されるものでないと使えません。
その参照先セルが回答者側にはわかりません
>「K(21=216)がA(21〜216)の1/3以下」
の(21=216)と(21〜216)が示している意味がわかりません
なので、
>>49 ,
>>53 のように解釈の違いが生まれると思います
もうちょっとくわしくお願いします
>それだと一度でも条件(KがAの1/3以下)に一致したら
>文字色は赤になったままじゃないですか?
条件付き書式でどのような設定をしているかわからないのと、
前述の情報不足で、
>>46 では「検証のしようがない」と書きました
ついでに言うと、K列の数式・A列の数値がどうなっているかも 必要かもしれません。
マクロの記録ってなにげにイイ 自分のやりたい事を記録しといて、それを加工すればいいんだもんな。 今まで自分で一から入力してた。。やられた
>>45 情報の小出しはよくない。
何がしたいのか正確に書きましょう。
(1) [ALT] + [F11] で VBAエディタ(VBE)を開く。
(2) プロジェクトの VBAProjectに表示されている該当シート
(たとえばSheet1)をダブルクリック。
(3) 下記のコードをコピペ。
VBE は閉じてよい。
(4) A列またはK列が変更されると、条件に応じて色が変わる。
(5) エラーチェックはしていない。
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Column = 1 Or Target.Column = 11 Then
If Cells(Target.Row, 11) <= (Cells(Target.Row, 1) / 3) Then
Cells(Target.Row, 11).Font.Color = vbRed
Else
Cells(Target.Row, 11).Font.Color = vbBlack
End If
End If
End Sub
条件をひとつ忘れていた。 Private Sub Worksheet_Change(ByVal Target As Excel.Range) の次に下記の3行を挿入。 If Target.Row <21 Or Target.Row>216 Then Exit Sub End If
さて、そろそろ真面目に
>>45 へ回答していいですか?
それとももう少し放置の方がいいですか?
62 :
名無しさん@そうだ選挙にいこう :04/08/08 23:32
Excel2000使ってます。マクロについて質問させてください。 名前・数値1・数値2の3列×約50行のデータを、 名前を基準にした自分で考えた並び方に並び替えたいのです。 (50音順とか数値順でもなく、とにかく自分で設定した並び方) どうすればよいんでしょうか。 A列に自分で考えた並び方にした名前の列を置き、 それをkeyにしてC〜E列に置いた3列のデータを並び替える・・・ なんてやってみたんですけど、優先するキーは並び替える範囲に入ってないとダメ ってエラーが出るし どなたか教えてください。お願いします。
ツール→オプション→ユーザー設定リストで一覧を作成。 あらかじめシート上に作成しておいたリストを選択してからこの画面を出して インポートのボタン一発で取り込みも可。 その後、データ→並べ替え→オプション→並べ替え順序の指定。 …たぶん2000にもあったと思う。
>>62 A列の左に1列挿入して、そこに並べたい順に番号をふる。
ぜんぶ選択して、新A列で並べ替え。
または、
50行くらいなら、行番号をクリックして行全体を選択し、
「切り取り」→「切り取った行の挿入」で、手動で並べ替える。
66 :
名無しさん@そうだ選挙にいこう :04/08/09 11:10
Workbooks.Add template:="パス〜.xls"のように Worksheets.Addでテンプレートを指定したいのですが (Before, After, Count, Type)しかないのですが、どうやったらいいのでしょうか
67 :
名無しさん@そうだ選挙にいこう :04/08/09 12:46
エクセルでデータをいくつか入力してグラフを作成して そのグラフの、あるxの値からyの値を求めることはできますか? できたらやりかた教えてください。
グラフの元になった表のほうを見るとか Xの値が昇順ならVLOOKUPあたりでYの値を検索するとか グラフツールバーでデータテーブルを表示するとか 系列の右クリックでデータラベルを表示するとか 系列にポインタを合わせてポップアップする情報を見るとか
69 :
名無しさん@そうだ選挙にいこう :04/08/09 13:34
>>68 説明不足でした
元になった表にないxの数値を求めたいんです
FORECASTという関数でやってみたんですが、
範囲によって数値が大きく異なってしまいます
70 :
名無しさん@そうだ選挙にいこう :04/08/09 14:59
>>69 表にない値を求めるということは、何らかの近似をしなければならないわけで、
=FORECAST()はその近似として一次回帰を使っているわけだが、
それが不満なら自分で近似の方法を考えるしかないんじゃないの?
自分で予測している値があるようだから、
元のデータの特性はわかってるんでしょ。
指数なら =GROWTH()というのがある。
71 :
名無しさん@そうだ選挙にいこう :04/08/09 15:06
FORECASTじゃダメなんですか? >範囲によって数値が大きく異なってしまいます というのは、具体的にどういう数値になるんでしょうか? xとyには何らかの相関関係がありますか?
72 :
名無しさん@そうだ選挙にいこう :04/08/09 15:16
>>70 関数をだしたものでややこしくなりました
グラフを作成して、グラフから元のデータに無いxが示してるyの値を知る方法ありませんか?
たとえば元のデータ x=1 3 5 7 9 で y=10 20 30 35 40
のグラフを作成して、そのグラフにおいて x=4 のとき yの値はどこをとってるかってわかりませんか?
素人なものでお願いします
73 :
名無しさん@そうだ選挙にいこう :04/08/09 15:19
>>71 指数関数みたいな感じです
xの増加とともにyも増加して、徐々にyの増加が緩やかになっていく、といったものです
74 :
名無しさん@そうだ選挙にいこう :04/08/09 15:53
>>72 折れ線グラフを作った場合に通る点でいいのだったら、
X=4の両側のX=3とX=5の2点だけを使ってFORECASTで出る。
そうではなくて全部の点を使用して滑らかな線を引くというのなら、
それが近似であり、どういう近似法を使うのかは自動では決まらない。
散布図を書いて、Excelに用意されている近似曲線を眺めて考えたら?
>>56 >その参照先セルが回答者側にはわかりません
>>45 で書いたように参照先はA21:A216です。K列の数式は他も参照してますが、
他はほぼ固定数値なので変更毎に実行される必要はありません。
>の(21=216)と(21〜216)が示している意味がわかりません
=と〜を書き間違えましたが、
>>45 で書いたように
「書式を設定したいのはK21:k216、条件となる参照先はA21:A216」ということです。
「K21がA21の1/3以下ならK21を赤文字」、「K22がA22の1/3以下ならK22を赤文字」、・・・
・・・「K216がA216の1/3以下ならK216を赤文字」というように21行目から216行目まで設定したいのです。
>条件付き書式でどのような設定をしているかわからないのと、
「数式が」「=$A$6>=$D1」、「数式が」「=$C1>$D1」、「数式が」「=$B$6>A$11/(A$6*6.25)」
3つとも、対象はシート全体で、書式は「パターン(セルの網掛け)」のみです。
>ついでに言うと、K列の数式・A列の数値がどうなっているかも必要かもしれません。
A列、K列共に加減乗除程度の簡単な数式です。
>>59-60 セルに直接数値を入力した場合は望みの動作になりますが、数式の結果が書き変わったときには動作しません。
>>55 で書いたようにリアルタイムで条件に一致するものを赤文字にしたいので。
入力以外の要因でセルの値が変動することもあるので、VBAではセルへの入力は監視できても、
セルの値の変動は監視できないと言うなら諦めますが。
>>75 やっとわかった。これでいいんじゃない?
下のコードをシートモジュールにコピペ。
Private Sub Worksheet_Calculate()
Dim i As Long
For i = 21 To 216
If Cells(i, 1) / 3 >= Cells(i, 11) Then
Cells(i, 11).Font.Color = vbRed
Else
Cells(i, 11).Font.Color = vbBlack
End If
Next i
End Sub
幾ら考えても分からないので誰か教えて欲しいのですが、 オフコンからcsvに吐き出したデータに日付データとして150106 (平成15年1月6日の意味)という形になっています。セルの書式設定 で日付の表示を変えたいのですが、150106の数値がシリアル値として 認識されているので2310年12月22日と表示されます。 =TEXT(A2,"0!/00!/00")*1 とTEXT関数を使い何とか15/01/06と表示させているのですが、excel では2015/01/06と認識しています。 単純に15/01/06の「15/」を「H15/」に置換してゆけば150106を平成15年 1月6日にセルの書式設定にて変更出来ますが、ただそのやり方は スマートでないように思います。 関数だけで150106から平成15年1月6日に変更する事は出来るの でしょうか? 使用Ver Office XPです。 長文すいませんが、よろしくご教示願います。
>>62 です
>>63 ダメでした・・・。
並べ替え順序の指定のあと、最優先にするキー&昇順降順を選ばなくてはいけなくて
順番が変わってしまいました
>>65 データはランキングなので順番は毎回変わるので、毎回数字を降ってられないんです・・・
79 :
名無しさん@そうだ選挙にいこう :04/08/09 23:19
>>77 B3に150106が入っていたら
=DATE(MID(B3,1,2)+88,MID(B3,3,2),MID(B3,5,2))
80 :
名無しさん@そうだ選挙にいこう :04/08/09 23:20
>>79 ありがとうございます!うまく行きました。
>>62 並べ替え順序の指定は、最優先するキーにしか使えない。
並べ替え順序の指定でユーザー設定リストを指定、
並べ替えのダイアログボックスで名前の列を最優先に指定して
並べ替えるだけでいいはずなんだけど…
名前以外を最優先にして名前は2番目に優先したい、ということなら
まず名前を最優先で並べ替えた後、名前以外でまた並べ替えを行う。
っていうかそろそろ具体的な数字とか挙げてくれませんか?
83 :
名無しさん@そうだ選挙にいこう :04/08/10 00:21
かれこれ8時間ぐらい試行錯誤しましたが、答えが出ません。 どうかご教授くださいませ。 excel2002使用。 1行に、左から右に向かって日付を並べています。(1セル1日、計1ヶ月分) ファイルを立ち上げた現在の日にちの日付のところへカーソルを持って行きたいのです。 通常であれば自分の目で見てマウスでクリックすればいいのですが、 マクロに組み込むようにしたいのです。 とりあえずTODAY関数で現在の日にちは出せるのですが、 これをどう組み込んでよいか解りません。 menuバー>編集>検索 を使えばカーソルは飛んでくれますが、 「検索する文字列」の欄にコピーペーストはできないし・・・・ よろしくお願いいたします。
>>83 Cells(1, Day(Now())).Select
じゃダメ?
>>84 おかげさまで解決しました。
本当にありがとうございます。
悩みすぎて頭が重い・・・
>>62 です
>>82 =63さん
>>並べ替えのダイアログボックスで名前の列を最優先に指定して
指定すると昇順降順も強制的に選ばないといけなくて・・・
わかりにくくてすみません。具体的に書きます。
地域にあるフランチャイズ店のある商品のランキングを、担当社員順に並べ替えたいのです。
店名 販売数 廃棄数
○○店 100 31
△×店 89 13
■■店 89 19
□☆店 50 10
・ ・ ・
・ ・ ・
・ ・ ・
データ(ランキング)はこんな感じで、当然毎日変わってしまうので
社員さんたちが見慣れた並び方に変えたいんです
その並び方は、50音順等の規則性は全くありません。(社員名も50音順じゃないです)
ランキングというのは[販売数]か[販売数-廃棄数]あたりの降順で、
それが毎日どこからか送られてきて、そのリストを見慣れた店名の順番、
たとえば
■■店
○○店
△×店
□☆店
の順番に並べ替えたい…ということでいいでしょうか?
それなら
>>63 および
>>82 そのままなんですけど。
並べ替え順序の指定でユーザー設定リストを指定した場合の昇順・降順は
昇順 降順
■■店 □☆店
○○店 △×店
△×店 ○○店
□☆店 ■■店
こういう意味になりますが、これは求めているものとは違いますか?
それから、担当社員の列は存在しないようですが、
これは無視しても構いませんか?
88 :
名無しさん@そうだ選挙にいこう :04/08/10 10:40
デフォルトのページ設定って設定できないんですか? 毎回、エクセルを新規で開くたびにヘッダ、フッタとか、 ページ設定するのがめんどくて。 前作ったシートをコピーして、 全部のシートを選択して、 ページ設定→OKするしかないんですかね?
Excel2002を使っています。 行の高さ、列の幅を変更して表を作り、写真など挿入して アルバムなどを作っているのですが。 一旦保存して次に開けると、行や列が設定した値とおり開きません。 画像は変形し、文字は隠れて物になりません。 うまく、開くときもあります。 対応方法があれば教えてください。お願いします。
90 :
名無しさん@そうだ選挙にいこう :04/08/10 12:07
>>89 そんなことってなるんでつか?
初めて聞きました。
なるんです。 OSは、Meです。 なるときと、ならないときがあります。 つらいです。悲しいです。ウキウキさせてください。
>>90 お。ありがと!
なるほど。
テンプレートとして保存しとくってことか。
2点教えてください。 ・ファイルを開くときのダイアログで,各カラムの幅を任意の数値で記憶する方法 ・メニュー → ファイルの下方にあった「最近使ったファイル」の履歴(?)がなくなってしまいました。 それを復活させる方法 よろしくお願いします。
95 :
名無しさん@そうだ選挙にいこう :04/08/10 15:53
グラフを作成するとY数値軸に入力したものが、後半のほうが切れてしまいます。 4文字入力したら3文字目の半分で切れている、といった具合です。 それと、数値軸に入力するとき2乗の右上につける小さい2に変換することができません。
>>94 1つ目:右上の表示ボタンで詳細を選んで、好きな幅に調整すれば記憶されるかと。
2つ目:ツール→オプション→全般で。すでに消えた分は復活しないけど。
>>95 どちらも軸ラベルではなくて、グラフ内にテキストボックスを作れば問題なし。
小さい2は、たとえば102と入力して、2だけをテキストボックスの書式設定のフォントで上付きに。
ごめ、任意の数値ね。 たぶんできない・・・・つーかそんなん意味あんの?
99 :
名無しさん@そうだ選挙にいこう :04/08/10 23:59
すごい素人発想な質問かもしれないんですけど、どなたかご教授ください。 一つのファイル(ブック?)にシートがどんどんどんどん増えていって、 今26シートあります。1ヶ月1シートで家計簿つけていっているので、 これからもどんどん増えていきます。 なんとなくこんなに増えて大丈夫なのか?と思うんですが、 大丈夫でしょうか。何シートでも作ってもかまいませんか? バージョンはエクセル2000です。
>>99 別ファイルにすれば?
(年ごとに分ける等)
101 :
名無しさん@そうだ選挙にいこう :04/08/11 00:28
複数のエクセルファイルを開いたとき、タスクバーで表示を切り替えてたんですが
一番上に見えてるファイルしかタスクバーに表示されないようになってしまい、
ウインドウメニューでしか表示を切り替えられません。
どうしたら元に戻せますか。excel2000です(もちろんwindowsも)。
windows板で聞いたほうがいいですか?
>>99 95の話ですけど。
新規ブックには最大 255 枚までのシートを用意でき、既存のブックには必要なだけのシートを追加できる。
しかし、実際にはその数は使用しているコンピュータのメモリ容量によって制限される。
http://www.keep-on.com/excelyou/2000lng5/200003/00030109.t
102 :
名無しさん@そうだ選挙にいこう :04/08/11 00:29
>>100 各月のシートから別のシートに参照して、平均値出したりしたいので、
同じファイルのほうが都合よいので。
あ、別ファイルからでも参照できるんですか?
103 :
名無しさん@そうだ選挙にいこう :04/08/11 00:30
↑すいません拡張子txtで。
104 :
名無しさん@そうだ選挙にいこう :04/08/11 00:38
>>101 お答え有り難う御座いました(´▽`)
よく分からないけど一応。102≠103
>>104 リンク先のURLのコピーに失敗してしまったんで、最後を .t じゃなくて .txtにして飛んでください。
106 :
名無しさん@そうだ選挙にいこう :04/08/11 00:54
ああ、そういうことでしたか。気づかなくてスミマセン。 ありがとう御座いました。
107 :
名無しさん@そうだ選挙にいこう :04/08/11 05:06
>101 ツール→オプション→表示→ウィンドウをタスクバーに表示 >102 去年と今年のブックに分けたとして、 去年の4月のシートから必要な部分をコピーして、 今年の4月のシートの前年同月欄に形式を選択して貼り付け。 リンク貼り付けにするか、値のみ貼り付けにするかはお好みで。 個人的には、リンクにすると各ブックの管理に少し制限が出たり リンク先の更新がどうとかでいろいろと面倒なのと、 去年のデータは(ミスがなければ)変わらないはずなので、 値の貼り付けでも十分かと思います。
EXCEL で、特定の行をページヘッダのように 指定することができますが、 (「ページ設定」の、「シート」のところで、 「行のタイトル」として、行範囲を指定して、 ページヘッダのように指定することができますが、 同じように、行範囲を指定して、 ページフッタのようにすることはできないでしょうか。 ご存知の方、よろしくお願いします。
109 :
名無しさん@そうだ選挙にいこう :04/08/11 10:13
教えて下さい。 901〜1107(数値で入力してあるが時間を表す) の間の時間を分で表したいのですが計算式教えて下さい。
110 :
名無しさん@そうだ選挙にいこう :04/08/11 10:23
MACの方は2004年版が出ましたが、WINのほうはいつ頃になるでしょうか?
>>109 >901〜1107(数値で入力してあるが時間を表す)
の意味がわかりません
09:01から11:07ってことだろ?
さあ
>>94 です。
>>96 常時,「詳細」にして使っています。
カラムを伸ばしばらくは記憶されているのですが,ブックを全て閉じたり,
EXCEL自体を立ち上げ直すと狭い幅に戻ってしまっています…
「最近使用したファイルの一覧」がグレーアウトしていて,数値を
いじることができない状態なんですが…
116 :
名無しさん@そうだ選挙にいこう :04/08/11 12:25
>112さんの言ってる通りです。 >114さん 経過時間を分で知りたいです。
これでとりあえずできたけど、もっと簡単にできるのかも・・ =TEXT(IF(LEN(B1)=3,TIME(LEFT(B1,1),RIGHT(B1,2),0),TIME(LEFT(B1,2),RIGHT(B1,2),0))-IF(LEN(A1)=3,TIME(LEFT(A1,1),RIGHT(A1,2),0),TIME(LEFT(A1,2),RIGHT(A1,2),0)),"[mm]")
>>117 てか、素直に時間に打ちかえるのがいいんでないの?
そしたら足し算引き算できるわけだし、、、
てか、おれ109じゃないし
=INT(B1/100)*60+MOD(B1,100)-INT(A1/100)*60-MOD(A1,100)
すいません、小数点以下を切り上げるエクセルの関数ってありましたっけ?
122 :
名無しさん@そうだ選挙にいこう :04/08/11 16:29
>>121 右上のほうに「小数点表示桁上げ」、「小数点表示桁下げ」ってのがありますが四捨五入です
117さん。120さん。ありがとうございました〜! できました!
>>107 有り難う御座いました。
年ごと分けることにしようと思います。
Excel200でヘッダー・フッターに文字に入れて、その文字だけ赤にすることって できましゅか?
できましゅよ
130 :
名無しさん@お腹いっぱい :04/08/12 02:36
Mac で、Excel を使っています。Windows では、Lotus1-2-3 を使っています。 Lotus1−2−3の使い勝手が悪いので、Windows の Excel にしたいのですが、 昔はマクロ・ウイルスとかで、TOYOTA が、社内使用禁止にしたとか言う事があ りました。最近は、大丈夫なのでしょうか。
132 :
名無しさん@そうだ選挙にいこう :04/08/12 14:10
最近、Excelで保存して終了した後、再度そのファイルを開いても保存される前の状態になっています。 OSは、XPでExcelも2003なのですが、入力中に上書き保存を度々しているのにもかかわらず、終了後に開くと、なぜかPC起動時の状態に戻っています。 最近その症状の頻度が上がってきて、3時間かけて入力したデータも全て消えてしまっているという状態で、一気に萎えてしまいます。 特に、エラーメッセージ等も出ないので、本当に上書き保存、終了時保存が出来ているのか分かりません。 いったい原因はどこにあるのでしょう?
133 :
名無しさん@そうだ選挙にいこう :04/08/12 14:17
割れだから
134 :
名無しさん@そうだ選挙にいこう :04/08/12 16:40
Excel2000を使用しております。 メールアドレスやURLをセルに入力すると 自動的にクリッカブルになってしまうのをデフォルトで止めたいのですが、 どのような設定行えばよいでしょうか? 宜しくお願いいたします。
135 :
名無しさん@そうだ選挙にいこう :04/08/12 19:57
Excelのグラフタイトルをどこかのセルの 参照にすることは可能でしょうか? 例えば 1Aに 「ぐらふたいとる」 と書かれていた場合 グラフのタイトルが「ぐらふたいとる」となり 1Aを変更し、「Graph Title」にすると グラフのタイトルもGraph Titleに変化するといった感じです。 バージョンは2002です。 お願いします。
136 :
名無しさん@そうだ選挙にいこう :04/08/12 20:44
1 2 4 3 空欄 4 3 4 ・ というように延々と続く数列があるとして、 ここで例えば上のblankのセルに"4"という数字を入力すると、 下のように4以降の数字が全て1づつずれてくれるようなことって可能でしょうか? どなたか教えていただければ幸いです 1 2 5 3 4←ここに新入力 5 4 5 ・
もう1つ質問させてください。 グラフを作成したときにY軸を対数にし、書式を指数にすると 1.0E○○ のようになりますが、 ○○が3の場合はk ○○が6の場合はM ○○が9の場合はG (1.0E5 の場合は 100k) のように表示することは可能でしょうか? わかりずらいのですが、指数表示ではなく キロ(3乗)、メガ(6乗)、ギガ(9乗)、テラ(12乗)、 ミリ(-3乗)、マイクロ(-6乗)、ナノ(-9乗)、ピコ(-12乗) の表記を使用したいと考えています。 よろしくお願いします。
>>135 グラフタイトルが選択されて枠が付いた状態で
=を入力してから目的のセルをクリックしてEnter。
単位の表記はわからない。
>>136 手作業になっちゃうけど、あいている列にずらっと
「=A1+1」の数式を作って、それをコピーしてA列に値の貼り付け。
あるいは適当なセルに1を入力してそれをコピー、
1ずつずらしたい範囲を選択して加算貼り付け。
VBAはわからない。
>>138 どうもありがとうございます!!
グラフでも参照できるとは知りませんでした。
グラフ軸はキロなどの表記が無理ならば
乗数の上付きが出来ればうれしいんですが。
・・・もっと無理か。。
>>138 レスありがとうございます、
簡単にはできないみたいですね、
141 :
名無しさん@そうだ選挙にいこう :04/08/13 21:19
Excel 2002 です。 A1:C10に表があり A1:C10内の範囲でデータ記入のあるものだけを 上から順に並び直した表を作成させなおすようにするにはどうすればいいのでしょうか? A B C D E F 1 2 3 4 1 2 3 4 2 5 6 7 2 5 6 7 3 8 9 1 3 8 9 1 4 4 1 2 3 5 → 5 4 5 6 6 7 1 2 3 8 4 5 6 9 10 例えば上の様な感じで、A1:C10を別の表を同シート上に表示させる際に B4:C6は入力がないのではしょられてA7:C8のデータが別表では4、5行目に入ってくるような・・・ よろしくお願いします。
エクセル2000でオートシェイプに自作の図形を登録するというのは無理なんでしょうか?
143 :
名無しさん@そうだ選挙にいこう :04/08/13 21:42
>141 A1:C10を選択→F5キーでジャンプ→セル選択→定数→コピー →D1を選択→Enter ここまでをマクロで記録する。
143マクロ使わないとやはり駄目ですか・・ 有難うございました(^^
がいしゅつだったら本当に申し訳ないんですが、 複数のブックを一括でページ設定できないでしょうか? わかる方がいらっしゃったら教えてください。よろしくお願いします。
>>145 ページ設定って?
マクロでするしかないと思われ。
擬古(猫) を縦書きにしたいと思い、縦にした所 擬 古 ( 猫 ) って風になってしまいました。 縦書き用の括弧に猫と収めたいのですが どうすればいいでしょうか?? 一応記号で縦括弧をさがしてみましたがみつかりませんでした。
>>147 どう縦にしたんだ?
セルの書式-配置-方向を変えたか?
俺のExcelは、括弧も上下で挟むようになるぞ
>147 括弧を全角にすれば縦書きにならないかな?
>>147 それってもしかして、ただ1文字ごとに改行しただけ?
>>148-149 さん
()を全角にしてみた所、出来ましたm(_ _)m
どうもありがとうございますm(_ _)m
>>150 さん
>>148 さんと一緒の方法で
セルの書式-配置-方向とやったんですが
()を半角にしてたのが失敗の原因みたいです(´・ω・`)
>>152 そっか。Excelのバージョンが違うんかな。
2002だと、半角のままでもセルの書式-配置-方向で勝手にカッコが
全角になってるみたい。
ちなみに、2002だと、フォントの前に@つけて(MS Pゴシックなら@MS Pゴシック)
セルの書式-配置-方向の角度を-90度にすると、カッコは半角のままだけど。
>>146 さん
レスありがとうございます。複数のブックを一括でページ設定
(つまり印刷の設定:例えば107%拡大でB4用紙で印刷したい)
ってやつなのですが・・・やっぱりマクロしかないようですね。
ご意見本当にありがとうございました。
>>154 プリンタ機能に依存するけど、プリンタのプロパティにある拡大/縮小印刷で設定すればいい気ガス
156 :
名無しさん@そうだ選挙にいこう :04/08/15 04:05
EXCELのグラフについての質問です。(EXCEL2000or2002使用中) A列に資産名、B列に各金額、C列に資産総額に対する%が記載されています。 これを、上下に長い、帯のようなグラフにしたいです。 例えば縦に10cmの帯のうち、全体の10%を占める資産なら上下に1cmの幅、30%なら3cmとなります。 目的は、貸借対照表の資産側、負債資本側の帯を二つ並べて視覚的に各資産の割合をみることです。 EXCELに組み込まれているグラフではうまく表示できませんでした。 このようなグラフの作成方法を教えて頂けませんでしょうか。 よろしくおねがいします。
100% 積み上げ縦棒ではダメですか? グラフの元データで、系列を「行」にする必要はありそうですが。
>>157 「行」にしたらできました。
ありがとうございました。
159 :
名無しさん@そうだ選挙にいこう :04/08/16 02:23
ファイルを開いただけで再計算を始め操作がものすごく重くなります。 さっきまでは普通に操作できたのですが、突然のことでなにが原因なのかわからず、 開いたsheet以外のsheetでなにかが行われているかんじはするのですが、 それがわからなく、仕事がすすみません。 とりあえず、再計算を手動にし対処しているのですが、他にいい方法はないでしょうか。 よろしくお願いいたします。(わかりづらくてすみません!) 使用OSWin2000pro Excel2000です。ファイルはマクロを使用しております。
160 :
名無しさん@そうだ選挙にいこう :04/08/16 03:26
任意のセル結合をいくつも連続させたいのですが、一括して行う方法 はありますでしょうか? 例えば、1行3列で作成したセル結合を行方向に連ねたりする操作を 範囲指定⇒セル結合を1行ごとに繰り返すのではなく、一度に複数行 分セル結合を作りたいのですが。
>>159 マクロを無効にして開くとどうなります?
もし動作が軽くなるのなら、マクロが原因かもしれません。
また、データが多くなってきたせいで、再計算やマクロの処理が重くなった可能性もあります。
>>160 データ入力前なら、結合したセルをオートフィルで下に伸ばすだけです。
入力後なら、ツール→ユーザー設定→コマンド→書式の中にある[横方向に結合]ボタンを
ツールバーの適当な場所にドラッグで引っ張り出してきて、
○○行3列選択して[横方向に結合]。
>>161 ありがとうございます!
今まで一つ一つやってたんでかなりの手間でしたが、おかげで助かり
ました!
163 :
名無しさん@そうだ選挙にいこう :04/08/16 12:33
>>161 ありがとうございます。
お盆休みも今日まで、明日から仕事・・・と憂鬱でしたがすっきりです。
マクロを無効にした場合、マクロの実行はできないものなのでしょうか。
>>163 マクロが原因だってわかったなら、マクロを修正すればいいんじゃないですか?
セルにワイルドカードを含む文字列が入っているんですが、 このセル内からワイルドカードのみを他の文字に置換するには (例えば左のデータを右のようにする) AAA* AAA+ BBB* BBB+ CCC* CCC+ 何か方法があるのでしょうか。
>>166 できました。
ありがとうございました。
168 :
名無しさん@そうだ選挙にいこう :04/08/16 19:36
>>164 まだ仕事にいっていないのでファイル(Book)にはさわってもいないので
マクロが原因かどうかはいまのところはわかりません。
他に考えられることはないかと・・・
1MB以上もあるファイルだとこんなこともありますでしょうか。
その場合はどうしたら・・・
169 :
名無しさん@そうだ選挙にいこう :04/08/16 21:02
昨日の休日悩んだけど、結局出来なかった馬鹿なんで質問させてください。 A1在庫数:10 B1売上枚数:0 この時、在庫数を手動で−1して9にして売上枚数を+1をしてくれるような式ってどう作ればいいんでしょうか? とにかく在庫数を減らしたとき、売上枚数を+1を自動でなるようにしたいです。 同時に2、3も在庫を減らすことはありません。 それから在庫が0になって売上枚数が10になったとします。 それで新たに在庫を10追加したとして、売上枚数は10のままで、また在庫が1減ると売上枚数が+1されて11になるような 計算式が欲しいんですよ。IF関数でいろいろやったけどダメでした。。。 ちなみに在庫数は手動で−1します。日に100近の商品の在庫移動をやらなければならないんで 在庫減らして売上枚数増やすのが面倒になりました。 そこで重い腰をあげてエクセル勉強しだしたんですが・・・私にはどう頭ひねっても式が浮かびません(TT) 皆さんのお知恵を拝借させて下さいませm(__)m
170 :
名無しさん@そうだ選挙にいこう :04/08/16 22:03
>169 回答になっていないかもしれませんがこういう考え方では駄目ですか? -------------------------------------------------------- | 商品名 | 在庫上限 | 在庫補充回数 | 在庫数 | 累積売上数 | -------------------------------------------------------- | 商品A | 10 | 1 | 9 | 11 | -------------------------------------------------------- @在庫補充回数と在庫数を入力領域にします。 A在庫が無くなった時、 在庫補充回数に1加算した値を設定し、 在庫数に10を設定します。 B累計売上数に=(B2-D2) + (B2*C2)と数式を入れます。
171 :
名無しさん@そうだ選挙にいこう :04/08/17 01:20
>>169 在庫を減らしたら売り上げが増え、在庫を増やしたときには売り上げが変わらない、
というのは考え方が変だし、間違いの元だから止めた方がいいんじゃない?
売れてないのに間違えて在庫を減らしちゃったら、元へ戻せないよ。
ごく単純に、
入庫数、在庫数、売り上げ
の3つの欄を作って、
売り上げ=入庫数-在庫数
のような式にしたらいいだけじゃないの?
172 :
名無しさん@そうだ選挙にいこう :04/08/17 02:13
EXCEL97を会社で使っています。 会社のパソコンの中に、EXCELで作成したファイルが沢山あるのですが、 ファイル名が個々に勝手に付けていて中身をあけて見ないと、どんな内容かがわからない状態です。 そこで、たとえば、「オリンピック」といれたら、全部のEXCELのファイルの中から、 文章内に「オリンピック」という文字があるファイルだけを抽出するような方法。もしくは フリーソフトがあったら教えて下さい。
WindowsXPで普通に検索できるんだけど、、 あ フリーじゃないか。
Excel2000でマクロを組んでいるのですが、例えばA1からD6までを範囲指定して その範囲を囲むように罫線を引くときは「BorderAround」を使うといい事までは調べられたのですが Bordesと違って、BorderaAoundを使った時の罫線のプロパティの指定方法が今ひとつ理解できません。 サンプルにあったように With Range(Cells(1, 1), Cells(6, 4)) .BorderAround LineStyle:=xlContinuous .BorderAround Weight:=xlMedium End With とすると「実線」「太さ中」の線が引けるのですが、それに色指定「紺」を付け加えようとしてもうまくいかないです。 例えば With Range(Cells(1, 1), Cells(6, 4)) .BorderAround LineStyle:=xlContinuous .BorderAround ColorIndex:=11 .BorderAround Weight:=xlMedium End With とすると紺色の線は引けますが、1番下のxlMediumは無視されてしまいます。 順番を入れ替えても、1番下のプロパティだけが無視されてしまうようなのです。 どなたか解決策をご教授お願いします・・・
>174 いちいち引数を分けるのは何故? Sub Test() With ActiveSheet .Range(.Cells(2, 2), .Cells(6, 4)) _ .BorderAround xlContinuous, xlMedium, 11 End With End Sub じゃだめなわけ?
176 :
名無しさん@そうだ選挙にいこう :04/08/17 14:05
A列に日付、B列にデータを入力してグラフを作成。 B列には順次データが追加される。 常に最新のデータを含んだグラフに更新するにはどうすれば良いのでしょうか? これだと、エラーになってしまいます。 Sub graph4() Sheets("graph(1988〜)").Select ActiveChart.SetSourceData Source:=Sheets("data").Range("A6", Range("B6").End(xlDown)), PlotBy:= _ xlColumns End Sub
>>175 すいません。構文が理解出来なかっただけです
基本的な事かもしれませんがBorderAround LineStyle:=xlContinuousの「:=」とか
.Range(.Cells(2, 2), .Cells(6, 4)) _
の末尾の「_」はどういう意味なんですか?
参考文献としてアンクのExcel2002VBA辞典を読んで個人用途のマクロを組んでいるんですが、
こういった事についてはなんとも記述が無くお手上げ状態・・・
もし何かよい参考書があれば教えていただければ嬉しいです
重複した項目を集計する関数はあるでしょうか。 ラーメン、ラーメン、そば、うどん、ラーメン、そば、というデータで ラーメンが好きな人:3人、みたいな。 ただしデータは任意の入力のため無限のパターンが考えられるものとする場合の話。(有限ならcountifでよさそうなので。)
>>174 BorderAroundを3回実行しているから最後の引数だけが有効で
他はデフォで上書きされてますね。
引数の並び通りに記述するのなら >175 で
名前付きで記述すれば引数の省略や並びも自在、
Range(Cells(1, 1), Cells(6, 4)).BorderAround Weight:=xlMedium, ColorIndex:=11
LineStyleはデフォなので略、Withも1行で済むから略
1行が長くて見難かったらアンダースコアで次の行に書く。
INDEXのしっかりした参考書をお奨めします。
>>176 データ範囲を下に変えてみたら、上手くいくと思います。
Range(Sheets("data").Range("A6"), Sheets("data").Range("B6").End(xlDown))
>>178 その集計に、適当なタイトルをつけて、データのピボットテーブル。
テーブルの、行とデータの範囲にそれぞれ、その項目を入れて、データの個数で集計。
というのはどうですか?
181 :
名無しさん@そうだ選挙にいこう :04/08/17 21:38
1〜9はA 10〜19はB 20〜29はCといった具合に表があるのですが 2だったらA、20だったらCとすぐ表示されるように 関数を組みたいのですが、どうやればいいのでしょうか? お願いします。
>>181 =CHOOSE(INT(A1/10)+1,"A","B","C")
>179 Range 内の Cells は明示的に指定した方が間違いがないよ。 以下、ヘルプの Range オブジェクト より抜粋 Range プロパティおよび Cells プロパティ Range オブジェクトを取得するには、Range(cell1, cell2) プロパティを使用します。 引数 cell1 には最初のセルを指定します。引数 cell2 には最後のセルを指定します。 次の使用例は、セル範囲 A1:J10 の罫線の線の種類を設定します。 With Worksheets(1) .Range(.Cells(1, 1), _ .Cells(10, 10)).Borders.LineStyle = xlThick End With 上の使用例では、すべての Cells プロパティの前にピリオドがあることに注意してください。 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 使用例の最初の行にある With ステートメントの結果に Cells プロパティに使用するには、 ピリオドが必要です。上の使用例では、Cells プロパティをワークシート 1 に使用することを、 ピリオドが示しています。ピリオドを記述しなかった場合には、Cells プロパティは作業中の ワークシートのセルを返します。
Office2000のExcelを使っています コメント内の文字を置換したいのですが出来ないようです 何か良い方法は無いでしょうか?
>>180 解決しました。
ありがとうございます。
>183 >174にはシートの指定が無かったからね。 指定するなら Range(Sheets(1).Cells(1, 1), Sheets(1).Cells(5, 5)).Borders.LineStyle = xlThick 確かにRangeひとつとCellsふたつあるから Withで省略もありかなと思うけど、 1行にWithはなんとなく抵抗がある。 でも考え違いをしていた部分もあって勉強になった。thx
187 :
名無しさん@そうだ選挙にいこう :04/08/18 11:20
エクセル2003でWebクエリを使って株価を取得しています。 これをタスクマネージャーでAM9時に自動起動させたいのですが、 エクセルが立ち上がったら、注意(Webクエリを継続するかどうか)が出て止まってしまいます。 何か良い方法はありませんか?
>180 それで我慢します(;; thx
>>136 INDIRECT を使ったらどうでしょうか。
>>178 我慢って…。
関数ではおそらく無理です。マクロでやるなら、こんな感じで可能ですが。
シートのモジュールに記述します。A列のデータから検索し、C列に結果を出します。
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 Then
Dim myC As Long, i As Long, j As Long, k As Long, Num As Long, Favorite() As String, YN As Boolean
myC = Target.Column
j = Range("a1").End(xlDown).Row
Num = 0
YN = True
ReDim Favorite(0)
For i = 1 To j
For k = 0 To Num
If Favorite(k) = Cells(i, myC) Then
YN = False
Exit For
End If
Next
If YN Then
Favorite(Num) = Cells(i, myC)
Num = Num + 1
ReDim Preserve Favorite(Num)
End If
YN = True
Next
For i = 1 To Num
Cells(i, 3) = Favorite(i - 1) & "が好きな人は" & Application.WorksheetFunction.CountIf(Range(Cells(1, 1), Cells(j, 1)), Favorite(i - 1))
Next
End If
End Sub
すいません。下から4行目、変更します。 Cells(i, 3) = Favorite(i - 1) & "が好きな人:" & Application.WorksheetFunction.CountIf(Range(Cells(1, myC), Cells(j, myC)), Favorite(i - 1)) & "人"
1〜31まであるシートがあります。 そこでそのシート1のA1に8月1日、シート2のA1に8月2日、シート3のA1に8月3日 というような感じに連続したシートの日付をまとめていれる方法はあるのでしょうか?
194 :
名無しさん@そうだ選挙にいこう :04/08/19 14:34
Excel2000を使用しています。 セル範囲を選択しないで、例えば C1から順に入力していきC20のセルに入力しEnterするとD1のセルに移動させる事は出来ますか?
196 :
名無しさん@そうだ選挙にいこう :04/08/19 14:53
単純に、シートの名前をセルに反映させたいんですけど、 そんな関数ってありませんか? 探したんですけどありそうで、見つからないんで・・・
>>193 いい案が思いつかない・・・
起動時に次のようなマクロを実行させるとか・・・
あまりに愚案で薦められないけど。
Dim sht As Worksheet
For Each sht In Worksheets
sht.Range("A1") = "8/" + sht.Name
Next
B1 に「=A1」と入れると、A1 の内容が表示されますが、 B1 の内容を数式のまま、表示される文字の一部の書式(文字の大きさなど)を 変更することはできるでしょうか?
200 :
名無しさん@そうだ選挙にいこう :04/08/19 15:51
普通にできまんがな
202 :
名無しさん@そうだ選挙にいこう :04/08/19 16:04
条件1もしくは条件2もしくは条件3のどれかに当てはまる時、 処理を実行するということマクロで表すにはどうしたらいいのでしょうか?
>>202 ifの組み合わせ、select caseを使う。
どっちがいい?
select caseというのはちょっとわからないのですが・・・。 ifのほうだとどうすればいいのでしょうか?
>>204 if 条件1 then
条件1を満たしたときの処理
else
if 条件2 then
条件2を満たしたときの処理
else
条件1も条件2も満たさないときの処理
end if
end if
206 :
Excel2000です。 :04/08/19 16:26
100未満 100以上200未満 1 あ い 2 う え 3 お か 上記の様に列に厚さ、行には長さで書いてある表があるんですが、 厚さのセルに「2」、長さのセルに「50」と打てば、100未満だと計算して求めるセルに「う」と返って来るナイスな関数を教えて下さい。 同じく、厚さのセルに「3」、長さのセルに「150」と打てば、100以上200未満と計算して求めるセルに「か」と返って来るパターンもお願いします。
>>205 やはりそうやるしかないのでしょうか?
条件がたくさんあるので処理の文はまとめて1つだけにしたいのですが。
208 :
名無しさん@そうだ選挙にいこう :04/08/19 16:35
グラフについて質問です(EXCEL2000) グラフの「元のデータ」の「データ範囲」、系列の「名前」、「値」には 相対参照で指定は出来ないのでしょうか? グラフの横にデータエリアがあって 複数個のグラフをコピペで作成したいのですが・・・ 1つ1つのグラフにデータ範囲を再設定しなければならないのでしょうか?
>>206 厚さのセル:A5
長さのセル:B5
厚さは1.5と4とか表の中の厚さに含まれていないものはエラーを吐き出すという条件で
=VLOOKUP(A5,A2:C4,IF(B5<100,2,3),FALSE)
こんな感じでどうでしょう?
>>207 If 条件1 Or 条件2 Or 条件3 Then 処理
>>196 =RIGHT(CELL("filename",A1),LEN((CELL("filename",A1)))-FIND("]",CELL("filename",A1)))
>>202 If 条件1 or 条件2 or 条件3 Then
処理
End If
もしくは、
Select Case 条件の式(範囲)
Case 条件の結果1, 条件の結果2, 条件の結果3
処理
End Select
>>205 if 条件1 then
条件1を満たしたときの処理
elseif 条件2 then
条件2を満たしたときの処理
elseif 条件3 then
条件3を満たしたときの処理
else
条件1も条件2も満たさないときの処理
end if
それでやるなら、↑のほうが可読性があると思う。条件3までネストしたら、かなり見づらい。
>>210 普通にはできないと思うけど。できるなら、俺も知りたい。
>>213 可読性があるとおもえないけど、ボソッ。
>>213 =RIGHT(CELL("filename",A1),LEN((CELL("filename",A1)))-FIND("]",CELL("filename",A1)))
??????????????????????
>>196 シート名といってもどのシートの名前なのかがわからないんだけど・・・
アクティブなシート名を返す関数でよければ標準モジュールに下の関数を追加する。
挿入=>関数でユーザ定義のなかにretshtnameという関数が出てくる。
Public Function retshtname() As String
retshtname = ActiveSheet.Name
End Function
ブック内のすべての関数を返す関数という意味だったらスマソ。
質問させてください〜。Excel2002を使っています。 IP電話からの発信通話料明細を作ろうと思っていまして A1に電話番号を入力、その頭3桁を判断してB1に通話料単価を入力しようと思います。 で、ひとまずは・・・ =IF((LEFT(B5,1)="0")*(MID(B5,3,1)="0"),"携帯","固定") とやって、左から1,3桁目が0なら携帯、そうでなければ固定電話、と判断できましたが これだけでは050が携帯と判断されてイカンと。 ここからさきどのような場合分けをすればいいのかなと思いまして。 もしくはもっと効率的なアクセス方法がありますか? よろしくご教授頂ければと思います。
>>217 普通に080と090が携帯って判断すればいいんじゃない?
=if(or(left(B5,3)="090",left(B5,3)="080"),"携帯","固定")
>>214-215 へ?
>>217 単純に050をIP電話とするだけなら、
=IF(LEFT(B5,3)="050","IP電話",IF((LEFT(B5)="0")*(MID(B5,3,1)="0"),"携帯","固定"))
>>218 >>219 おお〜ぅ!即レスサンクスです!
自分の書きたかったモノに近いのは
>>219 サソの記述ですね。
見事思い通りの場合分けができますた。
お二人ともありがとうございます〜!
>>213 >>214 私の書き方の癖なんですけど条件3までになると確かに見づらいですよね。
if 条件1 then
条件1を満たしたときの処理
else
if 条件2 then
条件2を満たしたときの処理
else
if 条件3 then
条件3を満たしたときの処理
else
条件1も条件2も条件3も満たさないときの処理
end if
end if
end if
>>211 うぉぉぉぉぉぉーーーー!!!
ばっちりです、有難う御座いました!
PS。一緒の墓に入りませんか?
>215はCELL("filename")を試してみるべち。 >ゴッホタン、CELLの中のA1はイランだろ。
ってゆーか4.0マクロ使えば
228 :
名無しさん@そうだ選挙にいこう :04/08/19 23:12
へっぽこ知識しかないのですが、教えていただけるとありがたいです。 オフィス2000です。 例えば、A=田中さん B=佐藤さん C=鈴木さんというきまりがあって、 列にAと入れれば自動的に隣の列に田中さんと出るような方法ってありますか? ぶっちゃけヤフオクの顧客管理をエクセルでやってるのですが、 落札される方もそろそろ決まってきたので、IDをコピペしただけで、 隣のセルに名前が出るというようなルールを作れるとラクチンだなーと思ったのですが。 馬鹿でアホですいませんが宜しくお願いします。
229 :
名無しさん@そうだ選挙にいこう :04/08/20 01:08
>>228 変換表をどこかに作っておいて、VLOOKUPなど。
>>229 様
有難うございました。こんなアホに教えてくださって。
あなた様に幸あれ!!!!!!!!
何度ももうしわけないのですが、 条件1かつ条件2または条件3かつ条件4の時処理するというのを表す場合、 if 条件1 and 条件2 or 条件3 and 条件4 then 処理 で大丈夫ですか?
>>231 > 条件1かつ条件2または条件3かつ条件4の時処理するというのを表す場合、
カッコでくくって書いた方がいいよ。、
あなたの意図している条件と他人が理解した条件と違う場合がでてくる。
>231 OrよりAndの優先順位が上なので大丈夫。 ただ>232の云うように、あなたの意図が 条件1かつ(条件2または条件3)かつ条件4 かも知れないので、その場合は駄目です。
>>233 そうなんだよね、日本語をカッコでくくってもらわないと
質問者が意図するところがよくわからないんだよね。
csvファイルをインポートしてExcelで編集し、 また、csvファイルとして書き出しテキストエディタで開くと、 元のcsvファイルにはあった文字列の引用符「""」が消えてしまいます。 誰か知恵を貸してくれ
236 :
202=231 :04/08/21 00:05
すみません、以下のとおりです。
(条件1かつ条件2)または(条件3かつ条件4)の時処理をするです。
これだと
>>231 のやつで大丈夫ということでしょうか?
237 :
名無しさん@そうだ選挙にいこう :04/08/21 02:31
おしえてエロイ人!! 改行を表す数式ってありませんか? (数式バーの中に、式として書き込めるもの)
質問です。 ┌A─┬B─┐ 1 8/21 1156 2 8/25 1345 3 9/10 1845 の様な表を折れ線グラフにすると、8/21〜8/25、 8/25〜9/10の期間を考慮してグラフ化されるんで すが、これを時間も考慮出来るような方法はあり ませんでしょうか。 ┌─A───┬B─┐ 1 8/21 13:12 1156 2 8/25 14:00 1345 3 9/10 23:00 1845 の様に不規則な間隔で数値を取得して、その変化 をグラフで表示させたい場合です。 説明が下手ですみません。
240 :
名無しさん@そうだ選挙にいこう :04/08/21 06:12
以下の2点をおしえてください。Excel2002、WinXPで使用しています。 オートシェイプの中にテキストを入れておいて、保存して再びファイルを開くと、 多数のオートシェイプの中のテキストが勝手にかなりの幅だけ右にずれます。 編集するたびに直すのがかなりしんどいのですが・・・ また、テキストを貼り付けると、勝手に書式が標準書式になってしまいます。 たとえば、左寄せでフォントサイズをばらばらにしてあったテキストも、 すべて同じ大きさでセンタリングされてしまいます。 「HTML形式」「書式つきテキスト」「書式なしテキスト」のどの貼り付け方とも違うみたいです。 貼り付けたあとに右下に表示されるオプションで「元の書式をそのまま使う」を選べば、 もとの書式に戻ることはわかるのですが・・・ 以前は貼り付けたときに標準で元の書式を適用してた気がします。 以上2点、特に1点目をお教え願います。
すいません、補足です。 > また、テキストを貼り付けると、勝手に書式が標準書式になってしまいます。 太字・下線は保持されます。でもフォントは標準フォントに直されます。 この区別がどこからくるのかさっぱり検討がつきません・・・
何度もすいません。さらに補足です。 > オートシェイプの中にテキストを入れておいて、保存して再びファイルを開くと、 > 多数のオートシェイプの中のテキストが勝手にかなりの幅だけ右にずれます。 ずれが生じるスライドは、標準画面のスライド編集部分(右の一番広い場所)で スライドが左に寄って表示されています。 なにか関係あるのでしょうか・・・
245 :
名無しさん@そうだ選挙にいこう :04/08/21 09:13
CSVを、エクセルで開くと 「090XXXXXXXX」(←TEL番) といった数列の頭の0が消えてしまったり、 「4−8−11」(←住所) が日付のシリアル値に変換されてしまいます。 基本的にこれを文字列として開くと言うことは出来ないでしょうか?
246 :
名無しさん@そうだ選挙にいこう :04/08/21 09:55
顧客情報を管理するエクセルファイルを共有で使っているのですが、 たまに書き込んだ筈のコメントがコメント欄からなくなっている事があります。 コメント欄も複数で編集しています。 バグなのか、使い方が悪いからなのか分からないのですが、 こういった現象はよく起こるものなのでしょうか? また解決方法はあるのでしょうか? もしお分かりになる方がいらっしゃいましたらお願いいたします。 共有して編集するPCのOSは全て2000で、エクセルのVer.は2002です。
>>245 CSV開くときにデータの種類が指定できる。
これを文字列とすればよい。
248 :
名無しさん@そうだ選挙にいこう :04/08/21 12:30
>245 CSVファイルをダブルクイックで開くのではなく、 空のエクセルシート=>データ(D)=>外部データの取込(D) =>テキストファイルのインポート(T)=>ファイルの種類全てで取込
だっだっだっ、ダブルクイックだっ。
EXCEL VBA でセルをコピーしてペーストするというのを延々と 繰り返すコードを書いてます。 処理が長いので、「中止」のボタンが付いたフォームを表示して 「中止」のボタンを押すと処理が中止するようにしています。 マクロが始まると自動的にマウスポインタが砂時計なるのですが、 これを「中止」ボタンにマウスポインタを合わせると矢印になるように したいのです。 ボタンのプロパティのmousepointerにfmMousePointerArrowを指定 しても、砂時計から変わりません。どのようにしたら良いのでしょうか?
ダブルクイック=>ダブルクリックの誤謬ですm(__)m
解決しました。
253 :
名無しさん@そうだ選挙にいこう :04/08/21 20:12
VBAでフォント指定やセルの結合情報などのセルの情報が取得できる命令ってありますか? ヘルプでちまちま探してたんですけど見つからなくて…
>>253 フォント指定って、フォントの名前のこと?
ABC = Range("a1").Font.Name
見たいに、プロパティを取得すればいいと思うけど。
統合情報は、
ABC = Range("a1").MergeArea.address(false, false)
とか。
255 :
名無しさん@そうだ選挙にいこう :04/08/21 22:08
中学から6年間パソコンやってて、もちろんオフィス98時代から 一通りいじってるんだけど、ワードはもちろん、アウトルックはなんとか いじれるようになった。けれどもどうしても、エクセルだけは上達の兆しが 無いんだよなあ。関数の概念が難しくて、、、('∀`;)
256 :
名無しさん@そうだ選挙にいこう :04/08/21 22:37
EXCEL2000を使用中なのですが、データが2000行ぐらいあって その中から特定の条件を満たす行の数をカウントして、セルにその値を出すには どのようにすればいいでしょうか? 例えば、A列に性別、B列に出身地、C列に年齢が入力されていたとして A=女、B=東京、C=18の行はいくつあるか?とか。
>>256 オートフィルタとsubtotal関数。
>>246 他PCとの同時使用なら、
もうAccessに移植しちゃったほうが良いと思われ。
共有が事務所内レベルでの話ですが。
それ以上の規模だとSQLだの何だのと色々あるようだが、
俺は知りません。
>>255 会社に入って嫌でも使わざるをえない状況になれば覚えるのでは。
目的もなく使ってても覚えにくい。
>>256 フィルタのオプション使って抽出、 という手も
263 :
名無しさん@そうだ選挙にいこう :04/08/22 19:02
関数を他の行にも適応させる時って セルの右下にカーソルを合わせてドラッグさせるじゃないですか。 行数が多いんでドラッグするの面倒くさいんで 他の方法ないですか?コマンドとか・・・・
>>263 右下をWクリック。
隣の行と同じところまでピーコされる。
>>263 適応ってのが何したいのかよくわからないんだけど、
Ctrl+Shift+矢印とかで範囲選択するとか、
Shift+クリックとか、範囲に名前を定義しとくとか・・・
説明が下手で申し訳ありませんでした。
>>264 の方法がすごく効果的でした。
ですが、この方法だと「マクロの記録」ができないようなのですが
記録できるようにする方法ありますか?
269 :
名無しさん@そうだ選挙にいこう :04/08/23 10:38
オートフィルタの機能で検索条件を決めるときに [セルに入力されている数字] [より大きい] とかできるのですが、 [セルに入力されている数字]の部分を任意のセルに することができるのでしょうか? office2000です
VBAで隣の列が一定の値ならば、そのcellを除いたRangeが欲し いんです。そのため、下記のようなスクリプトを組んでみまし た。 Dim targetRange As Range For i = 1 To 10 If Not (Cells(i,1) = "×") Then Set targetRange = Union(Cells(i,2), targetRange) End If Next targetRange.Select End Sub 当然ながら >Set targetRange = Union(Cells(1,2), targetRange) ここで、targetRangeが無効とエラーが出ます。 targetRangeを空のRangeにすれば良いかとも思いましたが、方 法が分かりませんでした。それならば空かどうかチェックして、 ifで最初はcell(i,2)を代入するかと思いましたが、空かどうかの チェックもどうすれば良いか分かりませんでした。 ここで質問です 1)空のRangeは作れないのか? 2)Rangeが空かどうかの判定はどうするのか? 3)もっと上手い方法があったら教えてください。 ご教示頂ければ幸いです。
271 :
名無しさん@そうだ選挙にいこう :04/08/23 12:05
他のシートの値を参照してきて、それに文字を付け加えるということはできますか? 例えばこんな感じです シート1 A1に16 A2に8 A3に23 で、シート2に "平成" + シート1のA1 + "年" + シート1のA2 + "月" + シート1のA3 + "日"と表示したいのですが
ちゃんと「=」で始めて 「+」じゃなくて「&」で繋げばおk
蛇足かもしれないけど・・・ そのブックを長く使い続けるつもりなら >A1に16 この入力方法は避けたほうがいいと思われ
>>270 k = 1
Do
If Cells(k, 1) <> "×" Then
Set targetRange = Cells(k, 2)
Exit Do
Else
k = k + 1
End If
Loop While True
For i = k + 1 To 10
If Cells(i, 1) <> "×" Then
Set targetRange = Union(Cells(i, 2), targetRange)
End If
Next
targetRange.Select
>272 &でできました!何故かできない場合もありましたけど^^; こんなこと可能かな?と実験してみたかっただけなのでおKです ありがとうございました(^^)
>>267 できるけど。
>>269 任意の数字なら、手入力すればいいけど、
任意のセルは多分できないと思う。
フィルタオプション(オートフィルタのオプションじゃなくて)などで、代用してみてはいかがでしょうか。
>>270 forの前に、
Set targetRange = Cells(1, 2)
と書いておけばいいのでは?
>>276 Cells(1, 1)="×"のときは期待する結果が得られない悪寒。
>>277 あ、そりゃそうだ。失礼しました。
Dim targetRange As Range
Set targetRange = Nothing
For i = 1 To 10
If Not (Cells(i, 1) = "×") Then
If targetRange Is Nothing Then
Set targetRange = Cells(i, 2)
Else
Set targetRange = Union(Cells(i, 2), targetRange)
End If
End If
Next
targetRange.Select
もちろん
>>274 のでもいいけど。
Ctrl + Endでデータを消したはずの何も無いセルに飛んでしまうのですが、 これをデータ入力されてるセルで止まるようにできないでしょうか。 よろしくお願いします。 WinMe、Excel2000です。
>>280 保存したら直りました。
どうもありがとうございます!
282 :
名無しさん@そうだ選挙にいこう :04/08/23 20:23
Excel2002です 条件付き書式でアクティブセルの行に色を付けています =ROW(A2)=CELL("row") こんな感じです。 これをトグルボタンがオンの時に色が付き、オフにしたら 色が消えるようにしたいんですが、さっぱりできません。 トグルボタンは5つくらい配置して トグル1をクリックすると、1行目 トグル2をクリックすると、2行目・・・ のように色をつけたいのですが。 宜しくお願い致します。
>>282 たぶんもっとスマートなやり方があるはず。
Private Sub ToggleButton1_Click()
If Range("1:1").Interior.ColorIndex = xlNone Then
Range("1:1").Interior.ColorIndex = 6
Else
Range("1:1").Interior.ColorIndex = xlNone
End If
End Sub
>>282 ん?どういうこと?
「トグルボタンを押したら、セルに色をつける」ということ?
「トグルボタンを押したら、『セルに色をつける条件付き書式』を有効にする」ということ?
前者なら、
Private Sub ToggleButton1_Click()
If ToggleButton1 Then
Rows(1).Interior.Color = vbRed
Else
Rows(1).Interior.ColorIndex = xlNone
End If
End Sub
後者なら、
Private Sub ToggleButton1_Click()
If ToggleButton1 Then
Rows(1).FormatConditions.Add Type:=xlExpression, Formula1:="=ROW(A1)=CELL(""row"")"
Rows(1).FormatConditions(1).Interior.Color = vbRed
Else
Rows(1).FormatConditions.Delete
End If
End Sub
>>283 ん〜、トグルボタンである必要ないね、もしそういう意味だったら。
>>284 ありがとうございます!!
前者のようのなことがやりたかったのです!
前者のやり方ですからトグルボタンでOKですよね?
丁寧なレスありがとうございます!
>>282 どういたしまして。
「…こんな感じです。」までの文は、書かないほうがわかりやすかったです。
あと、回答者は俺だけじゃないので、答えてくれた人全員にお礼を言ってくださいね。
トグルボタンでOKです。
がんばってください!
>>283 すみません。お礼を忘れておりました・・・。
マクロでのやり方、大変参考になりました!
ありがとうございました!!
>>274 >>277-278 >Set targetRange = Nothing
おぉ、これスゴいです。大変参考になりました。
どうもありがとうございました。
A1 2ちゃん A2 スレッド こう入ってるとして B1 2ちゃん スレッド という感じでセル内で改行して表示出来ますか?
>>290 何がしたいの?
A1 A2 は絶対指定?
292 :
名無しさん@そうだ選挙にいこう :04/08/24 11:07
1週間前からエクセルをはじめた厨学生です。 だれか教えてください A B 1 3 3 2 4 7 3 2 9 4 4 13 5 1 14 というようにB列にA列の累計を出したいのですが、どうしたらいいでつか? 1000行くらいあるのですが、 =A1 =SUM(A1:A2) =SUM(A1:A3) =SUM(A1:A4 と一々書くのが大変です。 よろしくお願いします。
なんか見づらくなってすみません。 左側の1,2,3,4,5は行番号です。 よろしくお願いします。
教えてください。 環境はWinXP、Excel2003を使っています。 IEからCSVファイルのリンクをクリックすると保存するダイアログが出るのですが そのダイアログでの保存名が ○○○.xls になっています。 拡張子が変わるのはなぜでしょうか? Excelの設定なのでしょうか?
295 :
名無しさん@そうだ選挙にいこう :04/08/24 11:21
296 :
名無しさん@そうだ選挙にいこう :04/08/24 11:23
>>292 B1に =SUM($A$1:A1) として下にコピーすりゃいいだろ?
EXCELのオートシェイプでAdobeのイラレ並みに絵を描いているおばさんがいたと 思うのですが、URLご存知の方いらっしゃいませんでしょうか? あの人のサイトからも学びたいです!
298 :
名無しさん@そうだ選挙にいこう :04/08/24 11:31
>>290 Sub test()
Range("B1").Value = Range("A1").Value & vbLf & Range("A2").Value
End Sub
>>291 A1 A2 は絶対指定です。
例えば
B1に =A1&A2 と入力すると、
B1は 2ちゃんスレッドって表示されますよね。
これを改行して
2ちゃん
スレッド
とういう様に表示したいのですが。
>>290 =A1&CHAR(10)&A2
書式、セル、文字の制御、折り返して全体を表示する。
>>296 出来ました!!
$A$1なんて便利なのがあるんですね。初めて知りました。
ありがとうございました。
>>259 ああ、やっぱりそちらのほうがいいんですね…。
うちのオフィスPCの殆どはアクセスが入っていないという嫌がらせ環境にあるので、
どうにかエクセルで誤魔化したかったのですが。
現状はコメント欄代わりのセルを一つ用意することにします。
ご回答有難うございました。
304 :
名無しさん@そうだ選挙にいこう :04/08/24 13:54
だれか
>>292 や
>>296 に突っ込む人いないのか?
そういえば金種計算で配列数式使うアホがいるが、似たようなものだな。
305 :
名無しさん@そうだ選挙にいこう :04/08/24 13:57
おいらなら、1行あけて =SUM(A2+B1)を下にコピー
なんでSUMが必要なんだよ
いらんの?俺いつも入れてるわ_| ̄|●
308 :
名無しさん@そうだ選挙にいこう :04/08/24 16:14
違うシートのセルをそれ以外のシートに自動的に異動させることは 不可能ですか? できる方法があるなら是非教えてください たとえばシート1のA1に入れたデータをシート2のB3に…といった具合で
>>308 意味がよくわからんが、普通に=で参照するとか、
カット&ペーストするとかマウスとAltキーで移動させるとか、
そんなことなのかな?
310 :
名無しさん@そうだ選挙にいこう :04/08/24 16:34
>>308 参照なら、シート2のB3に
=シート1!A1
本当に移動(A1を消したい)なら、VBA 使わないと無理だと思う。
311 :
名無しさん@そうだ選挙にいこう :04/08/24 16:45
>>308 自動で移動するなら、ThisWorkBook で
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If (Worksheets("Sheet1").Range("A1").Value <> "") Then
Worksheets("Sheet2").Range("B3").Value = Worksheets("Sheet1").Range("A1").Value
Worksheets("Sheet1").Range("A1").Clear
End If
End Sub
で、Sheet1 の A1 に値を入れた直後に Sheet2 の B3 に“移動”するよ。
312 :
名無しさん@そうだ選挙にいこう :04/08/24 17:11
すみません、教えてください。 1| C100 2| 3| C101(A1+1) 4| 5| C102(A3+1) 6| 7| C103(A5+1) こんな感じのファイルを作りたいんですが、「C」という文字列がある為にエラーが出てしまいます。 こういう場合はどうやればいいんでしょうか? OSは95でExcelもおそらく95だと思います。 職場のPCなので不確かですみません。
>>312 表示形式で”C”が頭につくようにすれば?
314 :
名無しさん@そうだ選挙にいこう :04/08/24 17:30
>>313 できました!ありがとうございます。
こんなに簡単なことだったんですね…。
315 :
名無しさん@そうだ選挙にいこう :04/08/24 17:31
日付を+みたいのででコピーする場合デフォルトじゃ連続ですよね? あれ同じでコピーするようにできないの?
317 :
名無しさん@そうだ選挙にいこう :04/08/24 17:37
高橋愛ちゃんってご存じですか?
318 :
名無しさん@そうだ選挙にいこう :04/08/24 17:47
Q.列名がA,B,C,D,Eではなく、1,2,3,4,5になってしまいました。 アルファベットに戻すにはどうしたらいいですか? A.ツールメニュー:「オプション」 -「全般」タグで 『R1C1 参照形式を使用する(C)』のチェックを外せば直ります。 ってことは、列を数字にすることもできるんだすねーφ(。。)メモメモ...
320 :
名無しさん@そうだ選挙にいこう :04/08/24 20:51
質問します!送られてきたエクセルの文章をコピーしたいのですが、 題名のオリジナルで作られた特殊な文字だけコピーできません。 コピーする方法を教えてください
321 :
名無しさん@そうだ選挙にいこう :04/08/24 22:05
チャートマクロの質問をさせてください チャートのある系列のデータラベル存在の有無を確認する コードを書きたいのですが、どうやったらいいのかわかりません。 とりあえず、データラベルを消したいのですが、データラベルが存在しない場合において ActiveChart.SeriesCollection(1).DataLabels.Delete とするとエラーになります。よってデータラベルがない場合は何もせずに、ある場合はそれを 削除するというコードを書きたいのです。 よろしくお願いします
>>320 ワードアートか何かでしょうか?
ワープロにワードアートをコピーするならそのままコピーペーストすればいいけど、
テキストデータにしたいのなら、手打ちで入力してください。
>>321 If ActiveChart.SeriesCollection(1).HasDataLabels Then
ActiveChart.SeriesCollection(1).DataLabels.Delete
End If
チャートマクロありがとうございました。 hasdatalabelsっていうのがあるなんて知りませんでした。。。 目からうろこ。。。
324 :
名無しさん@そうだ選挙にいこう :04/08/25 01:09
Excel2000を使っています。 データ編集中に、間違って「上書き保存」してしまいました。 保存前の状態に戻したいのですが、 どのような方法があるでしょうか? よろしくお願いいたします。
325 :
名無しさん@そうだ選挙にいこう :04/08/25 01:11
ヘッダーかフッターにページ数を表示したいのだけど、たとえば4の倍数に することってできませんか?1ページは4(ページ)、2ページは8(ページ) 足し算・引き算はできるけど、乗算はできないのですか?
326 :
名無しさん@そうだ選挙にいこう :04/08/25 01:11
無理ぽ_| ̄|●
質問があります。 エクセルのセル中に5:30と入力しました。 すると私の設定で5:30AMという表記になっています。 これを自動で午前5時30分に表示させたいのですが 方法がわかりませんので教えてください。
>>327 13:30は午後1時30分とするのか?
だったら表示形式では無理。
午後13時30分でよければ
[<0.5]"午前"h"時"mm"分";"午後"h"時mm"分"
で簡単。
でもこれじゃ12時が昼なのか夜なのか分からんな。
[<0.5]"午前h時mm分 Ctrlを押しながらj AM/PM;午後h時mm分 として、書式の配置を折り返して全体を表示するにすりゃできそうだな。 ただし行の高さを高くすると駄目だよ。
スマソ。ゴミが入ってるし間違いだ。 [<0.5]午前h時mm分;午後h時mm分 (Ctrlを押しながらJ) AM/PM として、書式の配置を折り返して全体を表示 ただし12時はExcelの仕様で午後12時00分となるみたいだな。 午後0時00分になればいいんだけど。
>>326 さんのレスは
私宛の回答でしょうか。
その後、グーグルなどで自分なりに検索した結果、
どうも無理っぽいことが分かりました。
数年かけて入力したデータが一瞬にパーになるとは・・・
「上書き保存」の怖さを見せ付けられました。
どうもありがとうございました。
OS Win2000 エクセル 2000 (SP-3) ある日突然カーソルキーを押下しても セルのカーソルが上下左右に動くのではなく、 シートがスクロールするようになってしまいました!! 元通り、カーソルキーを押下したらセルのカーソルが動くように する為には、どうすれば良い? 教えてくだせえ!
>>333 スクロールロックがおされてるとかそんなオチじゃないよね?
335 :
名無しさん@そうだ選挙にいこう :04/08/25 18:00
たぶんな┐(´ー`)┌
スクロールロック?? ってキーがあるんですか? 探してみまつ 初心者でゴメンさい
337 :
名無しさん@そうだ選挙にいこう :04/08/25 20:44
関数を入力→マウスでドラッグして他のセルにも同じ関数を入力 この操作をキーボードでやるにはどうすればいいですか?
最初に入力するセルを選択 一番上のセルに関数を入力(ctrl+enterキー)
339 :
名無しさん@そうだ選挙にいこう :04/08/25 21:54
340 :
名無しさん@そうだ選挙にいこう :04/08/25 21:57
有り難うございます。 別の質問なんですが、 隣りの列の値が入力されている点まで 一気にセルを選択する方法無いですか?マウス無しで。
341 :
名無しさん@そうだ選挙にいこう :04/08/25 22:19
vbaでマッチ関数を使いたいんですけど、マッチしないときにエラーがでて困ってます。 matchvalue = application.worksheetfunction.match(range1,range2,0) マッチするときはちゃんと値が返されるのですが、マッチしないときはvbaのエラーになってどうしようもなくなってしまいます。 戻り値として#N/Aみたいなのを出せないんでしょうか?
>>341 どういう目的かわからないけど、Findじゃだめなの?
>>332 Windows\Tempフォルダですよね?
探してみましたがありませんでした・・
find使ったことないんでちょいとわからないんです。 やりたいこととしては、range1の値がrange2に存在しなければ (マッチしなければ)何も処理をせずに、逆にマッチするようだったら その値がほしいんです。それで、その値を使ってその行を削除するマクロを 書きたいんです。
>>344 1の入力されているところ
MsgBox Range("A1..A10").Find(1).Address
感激! if Range("A1..A10").Find(1) is nothing then でいけました!!!ありがとうございます!!
>>340 下のようにA1:B3の矩形の元データがある時、
セルの位置が■の位置で□まで選択したいのなら
A B C
1 ○ △ ■
2 ○ △
3 ○ △ □
(shift+ctrl+end)→(shiftだけ押したまま→)
349 :
名無しさん@そうだ選挙にいこう :04/08/26 06:10
選択された領域に対して 1行置きに、互い違いに二色の色で塗りつぶす方法を 教えてください。
>349
2行選択→コピー→設定したい範囲選択→形式を選択して貼付→書式
それともマクロがいい?
>>339 ( ゚д゚)ポカーン
例えば名簿のワークシートがあって、A列に氏名、B列にログインアカウントがあった場合、C列にパスワードを自動生成したいのです。 rand関数のように、ランダムにパスワード(出来れば数字とアルファベット小文字のみで、8桁で構成したい)を生成するには、どんなモジュールを書けばよろしいでしょうか。
ベクターにパスワード生成ソフトがあるけど
>>351 もっとよい方法がいくらでもあるとは思うがとりあえず
Dim strPass As String
Dim lngChar As Long
Dim i As Long, j As Long
For i = 1 To 10
strPass = ""
For j = 1 To 8
lngChar = Int(Rnd * 36)
If lngChar < 10 Then
strPass = strPass & CStr(lngChar)
Else
strPass = strPass & Chr$(lngChar + 87)
End If
Next
Cells(i, 3).Value = strPass
Next
Randomize Dim s As String, pass As String, i As Integer s = "0123456789abcdefghijklmnopqrstuvwxyz" For i = 0 To 7 pass = pass + Mid(s, Int(Rnd() * 36) + 1, 1) Next とりあえず、8桁のパスを作るところまで。
まあ順当なとこやね。 Rndは毎回同じ数値になるから その辺注意。
質問です。 dbfファイルから xlsファイルへの一括変換を出来る手法やツールは無いでしょうか? ここで聞いていいものか判りませんが、スレ違いでしたら 適切な誘導先を教えて頂けないでしょうか。
358 :
名無しさん@そうだ選挙にいこう :04/08/26 20:54
A列に、ホスト情報とIPアドレスが混在していて これを振り分けるために、B列に 同じ行のA列の文字列の先頭がアルファベットだったら空白 同じ行のA列の文字列の先頭が数字だったらA列の値をそのまま入れる という風にしたいのですが、関数で記述できませんか?
Office2000入りの中古ノートPCを買ってOfficeに初挑戦の初心者です。 早速書店に行ってExcel2000の参考書を探したんですが、 Excel2000の参考書よりExcel2003の参考書の方が充実してました(当たり前ですね) しかもパーフェクトマスターシリーズ!?が分厚くて、また中身も読みやすかったです。 この板のレスを読んでると、Excelは2000も2003も変わらないというレスを多くみたんですけど これからExcel2000を勉強していこうと考えてるoffice初心者が Excel2003の参考書を買っても大丈夫でしょうか?
>>358 =IF(ISNUMBER(VALUE(LEFT(A1,1))),A1,"")
>>359 別に大丈夫じゃない?
基本的な操作は同じだし。
>>361 レス有り難うございます。
しかし実行してみたのですが、
アルファベットの時は空白が出てOKだけど
数字の時にA列の値ではなく、行番号-1の値が表示されます。
>>362 A列のセルを選択したとき、同じ値が数式バーに表示されてる?
すみません、うまくいってました。 本当にありがとうございます。 二度手間で申し訳ないのですが、 逆にアルファベットの時に値をそのまま出して 数字のときに空白を返す記述もお願いします。
=IF(ISNUMBER(VALUE(LEFT(A1,1))),"",A1)
重ね重ねすみません! おかげでバイト代増えそうです。 ありがとうございます。
フィルタにかけたできあがったデータ表を そのまま新しい表にするのってできない? フィルタ状態のままだと一番左の数字が飛び飛びになってて まずいんだけど。
ゴッホ様 どうもです。Excel2003の本を買うことにします
エクセル2000を使っています。 アクセスからエクセルへ住所録のデータをエクスポートしました。 データの先頭にすべてアポストロフィ(')がついているのを消去 したいのですが、ひとつひとつ消す以外に何かよい方法がありましたら ご教授お願いします。
>>370 そのままコピーして、新しいシートに「形式を選択して貼り付け」で「値」を選択して貼るとか。
列をいくつか削除した後に Ctrl+Shift+Endを実行したら 遥か遠くの列まで選択されてしまいました。 データの存在する最右列の直後の列だけ選択されるようにするには どうすればいいですか? エクセル1997です。
VBAでアクティブなセルを無くすことは出来ますか?
>>371 出来ました!新しいシートにすればよかったのか・・・。
同じシートの上で、値のコピーをしたり、置換で消そうとしたり
してました。もー気になって仕方ありませんでした。
ありがとうございました!
>>372 保存すれば直る。
>>373 VBAを実行したとき、たまにそういう状態になるけど、
どうするとなるのかは、わからないです。
>>374 いえ。
まあ、新しいシートというか、同じシートでも、違うセルに値の形式で貼れば、アポロストロフィーはなくなります。
関数出した値を、絶対的な値にする方法を教えてください。 変数に使った値を変えても、数値を変わらなくさせたいんです。
>>376 コピーしてそのまま右クリック。
「形式を選択して貼り付け」で値にチェックを入れ、OK。
ESCキーを押す。
>>377 こんなにあっさりできると思わなかった・・・・どーもです。
初心者です〜 今、メールのテンプレートを項目別に作ってるんですが いざマウスで文章コピー → メール作成で貼り付けすると 漢字の表記の上にルビがふられちゃうんですが・・・ メモ帳では大丈夫なんですが・・・エクセル側の設定でしょうか・・ メールソフトはアウトルックエクスプレスです。
381 :
名無しさん@そうだ選挙にいこう :04/08/27 04:58
セルA1に日付が入ってて、 セルB1に(日付)〜(日付の6日後)と表示させたいけど どうすればいいですか? A1に 2004/08/27 と入ってたら B1に 2004/08/27〜2004/08/03 と表示させたいです。
訂正 A1に 2004/08/27 と入ってたら B1に 2004/08/27〜2004/09/02 と表示させたいです。
383 :
名無しさん@そうだ選挙にいこう :04/08/27 06:51
>>381 =TEXT( A1, "yyyy/mm/dd" ) & "〜" & TEXT( A1+6, "yyyy/mm/dd" )
384 :
名無しさん@そうだ選挙にいこう :04/08/27 14:54
EXCEL97で セルに abc1 abc2 abc3 abc3 abc3 abc4 abc5 abc5 とある時に abc1 abc2 abc3 abc4 abc5 と重複行を削除する方法はないでしょうか?
>>384 Sub A列のcleaner()
'調査範囲の決定
For i = 1 To WorksheetFunction.CountA(Range("a:a"))
'重複のチェックと消去
If WorksheetFunction.CountIf(Range(Cells(1, 1), Cells(i, 1)), Cells(i, 1)) = 2 Then Cells(i, 1) = ""
Next
'並べ替え
Columns("A:A").Sort Key1:=Range("A1"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, SortMethod _
:=xlPinYin, DataOption1:=xlSortNormal
End Sub
もっと効率的な方法ありそう
386 :
名無しさん@そうだ選挙にいこう :04/08/27 16:22
385さんへ 返事ありがとうございます。 並べ替えの部分が実行時エラー1004で止まってしまいました。 Excel97だと無理でしょうか。
388 :
名無しさん@そうだ選挙にいこう :04/08/27 17:14
出来ました。ありがとうございます。
389 :
名無しさん@そうだ選挙にいこう :04/08/27 17:23
外国人参政権絶対反対。外国人に参政権を与えると、外国人の 裁判官が登場し、国が滅びます。ナチスドイツはこれに似た方法で ヨーロッパを次々と支配しました。外国人参政権が成立すると、合法的に日本を地域ごとに乗っ取る ことが可能になり、旧ソ連、ユーゴ、レバノンのように内戦が勃発します。 (特に対馬に注意:人口4000人のこの島は常に韓国がねらっています。 すでに対馬は歴史的に韓国領土どいう捏造論文を大量に韓国は出しています。 参政権獲得→在日大量移住→住民投票で韓国領土) 今回の法案が成立してしまったら、二度と取り返しのつかない事態になります。 「地方参政権だけという言葉を信じますか?大阪城の堀を うめるだけという言葉を信じて殺された淀君と秀頼を忘れてはいけません」 「国ぐるみで反日運動をしている国の人間に参政権を与えますか?」 「日本の領土を不法占拠してる国の人間に参政権を与えますか?」 「強制連行だと嘘をつき、60年におよび日本に居座る国の人間に参政権を与えますか?」 ●工作員がよくいう言葉 ○「成立するわけないからメールやデモなどの運動は必要は無い」 →その根拠はどこにあるんですか? 昔消費税のときに同じことを言っている人がいましたが、消費税は成立しました。 ○「参政権反対運動しても、かえって反感かうだけ」 →反感かう人間より、圧倒的に「知らなかった。コピペではじめて知ったよ。 これは許してはならない」という人間のほうが圧倒的なはずです。 中国の石油盗掘はやはり有志のしつこいくらいの大量コピペと大量スレ立て 大量メール攻撃で政府が動きました。 ○嫌韓厨房おつかれさま(笑 あきらかに好き嫌いのレベルではありません。「参政権のことを話すのは幼稚だ」 と油断させて議論の中心から話をそらす作戦です。(狡猾な政治家がよく使う手) どんなことがあっても戦おう。これは「民間防衛」(スイス政府編)いわく、 「戦争のもう一つの様相」である。コピペ、メール、はがき、デモ、なんでもいい 私たちはできる限りのことをしよう。
>>390 ヘッダーに"4"と設定して1ページ目を印刷、
ヘッダーに"8"と設定して2ページ目を印刷、・・・
を最後のページまで繰り返すマクロならつくれそうだ。
392 :
名無しさん@そうだ選挙にいこう :04/08/28 05:47
質問です。 縦に20個並んだ、それぞれ1桁の数値群をコピーし、テキストエディタに貼り付けたいのですが、 当然一つ一つ改行されてしまいます。 そこで、貼り付けた時に一つ一つ改行されないように(横に連続した20桁の数字になるように)するにはどうしたらいいでしょうか?
393 :
名無しさん@そうだ選挙にいこう :04/08/28 06:37
>>392 A1:A20にその数字が入っているとして、
B1に=A1と入れ、
B2に=B1&A2と入れ、
B2をB20まで下にコピー。
B20をコピーして、エディタにペースト。
394 :
名無しさん@そうだ選挙にいこう :04/08/28 08:08
>>393 ありがとうございます。
A1:A20 B1:B20 C1:C20 …とたくさん並んでいるのですが、
一列ずつやるのは時間が掛かるので、一度に
>>393 のような結果には出来ないでしょうか?
395 :
名無しさん@そうだ選挙にいこう :04/08/28 08:16
>>393 すいません。出来たようです。
A1:A20 B1:B20 C1:C20 と並んでいる時、
D列で
>>393 の方法を行い、その後D1とD2をE1とE2へそれぞれコピーし、E2をE20までコピーすればいいんですかね?
これならx1:x20の数値群がたくさんあっても出来そうですが合ってますか?
396 :
名無しさん@そうだ選挙にいこう :04/08/28 08:33
Excel2002のマクロです。 シートを別のブックにコピーしたときマクロも同時にコピー する方法はないでしょうか。試行錯誤の上、今は下記の方法に たどり着きましたが、いまいちです。 ・元のブックのコピー対象Sheetにマクロを記載 ・そのSheetに Private Sub Worksheet_SelectionChange(ByVal Target As Range) を使って、マクロを開始するためのボタンに割り付けてあるマクロ を書き換えてそのSheetに記載してあるマクロに変更。 単純なコピーをすると、マクロは元のブックのSheetに記載されている マクロが割り当てられて、せっかくSheetに記述しているマクロを 使用しません。それで無理やり割り付けたマクロを書き換えています。 この方法だと、コピー直後にいったんどこかのセルをクリックしないと マクロの割付を変更できません。自分で使うのであればどうにでも なるのですが、不特定多数の人が使うので、これをスマートに行い たいのです。(コピーは他の人が行います)
397 :
名無しさん@そうだ選挙にいこう :04/08/28 13:55
>>395 それでいいが、
列の数が多いのだったら、
A21あたりに =A1&A2&A3&...A20 と入れると、
式は長いが一発で答えが出るので、
これを右にコピーすればいい。
それでもいいが 行と列を入れ替えてからエディタにコピペ エディタで区切り文字を空白に置換汁。
399 :
名無しさん@そうだ選挙にいこう :04/08/28 16:20
毎日一回自動的にマクロでバッチ処理を行いたいんですけど、 タイマーとして以下のようにapplication.waitを使うとCPUが100%常時回ってしまいます。 どなたかこの問題を回避する方法をご存知ですか? sub dailytask() While True call batchprocess() Application.Wait CDbl(Int(Now())) + 1# wend end sub
>>399 起動時に前回実行時間から24時間以上たってたら1回実行するとかにしろよ。
401 :
名無しさん@そうだ選挙にいこう :04/08/28 21:27
>>397 理解できました。
ありがとうございました。
縦のデータが無数にあるので、一つ雛型を作れば簡単に出来そうですね。
>>398 「行と列を入れ替える」とはどのようにするのですか?
>>401 縦にコピー
形式を選択して貼り付け
行列を入れ替える
403 :
名無しさん@そうだ選挙にいこう :04/08/29 00:21
404 :
名無しさん@そうだ選挙にいこう :04/08/29 01:27
初めて質問します セルにコンボボックスを埋め込みたいのですが、どうしたらよいのでしょう? コントロールのツールボックスからコンボボックスを選ぶと 十字のカーソルになります それで範囲指定するとコンボボックスが出来るのですが それをセルにはめ込む方法がわかりません どなたかご教授お願いします
>>404 ユーザーに一覧からデータを選択させて
セルにデータをセットしたいのかい?
「入力規則」でヘルプを検索してみよう
406 :
名無しさん@そうだ選挙にいこう :04/08/29 10:44
>>405 さん
いえいえ、そういうのではなくて
コンボボックスが画像の添付ファイルのように
エクセル上で動かせたり、大きさを変えられたりしてしまうので
セルに固定したいんです
その方法をお願いします
>>406 動く?
デザインモード以外ではコンボボックスクリックしたときは
カーソルが出るだけだと思ったけど。
408 :
名無しさん@そうだ選挙にいこう :04/08/29 11:11
>>407 そのコンボボックスをセルにきっちり埋め込む方法なんですが・・・
セルに埋め込まれてなければ、たとえば、
セルを消したときにコンボボックスは残りますよね
セルと同一化する方法をどなたかご存じないでしょうか?
>>408 特定のセルが選ばれたらVisibleプロパティで表示して、
それ以外のセルだったら消すというマクロ組め。
410 :
名無しさん@そうだ選挙にいこう :04/08/29 14:38
>>408 何がしたいかイマイチ不明ですが、以下のAND条件ですか?
1.セルにきっちり位置合わせしたい
2.セルの拡大や移動・削除とともに自動で拡大・移動・削除されて欲しい
まあ、ともにムリですね。コントロールはセルではなくシートに貼り付くのです。
あと、2は必要性があるのでしょうか。。コンボボックスがセルと一緒に
移動や削除されてしまったら逆に困ると思いますが。
413 :
名無しさん@そうだ選挙にいこう :04/08/29 15:26
「=A1」というものを縦方向に伸ばすとA1 A2 A3・・・ って伸びていってくれますが 横に伸ばすとA1 B1 C1・・・と伸びていってしまいます。 横に伸ばしてもA1 A2 A3・・・というようにできませんか? Excel2000 OS:XP です
>>415 入力値の種類をリストにして、ドロップダウン リストから選択するに
チェックをつければ、コンボボックスになるでしょ。
当然元の値のところは設定しなきゃいけないけど。
>>416 藻前には回答者は無理。
リストボックス=>リスト以外のものは入力できない。
コンボボックス=>リストからも選択できるし、リスト以外のものも直接入力できる。
リストボックスとコンボボックスって見た目の違いなの?
>>417 >コンボボックス=>リストからも選択できるし、リスト以外のものも直接入力できる。
無効なデータが入力されたらエラーメッセージを表示する
のチェックを外せばリスト以外のものも直接入力できるでしょ。
そんなこと知ってるのにコンボボックスとリストボックスの違いがわからなかったのか。
間違えた!417さんすまん!
>>421 419に聞いた。
417には聞いてない。
別にチャチャ入れてるだけだから気にしないで。
>>413 「=」無しのA1をオートフィルしてから置換で「A」を「=A」に置換
ブック内の絶対参照を全て外したらファイルサイズが減ったのですがそんなものなんですか?
違いました ファイルサイズが増えたんでした。240KBくらいのファイルが242KBくらいに増えました。
上書きするたびにファイルサイズが増えていくのがExcelの特徴です(w
>>429 理由は分かりませんが即答ありがとうございました
はじめまして。xlsでハイパーリンク化され クリックしないとURLがわからない状態になってます。 ハイパリンクを解除すると文字列になってしまいます。 どなたかURL化して表示する方法をご存知でないでしょうか?
432 :
名無しさん@そうだ選挙にいこう :04/08/29 21:31
>>431 「挿入」-「ハイパーリンク」でURL調べたら?
てか、表示文字をURLに変えればいいだけの話。
>>431 右クリックして「ハイパーリンクの編集」ってのを選ぶと、
リンク先を指定する窓が開くはずだ。
で、その下のほうにURLが表示されてるだろうから、
それをコピーして適当なセルに貼り付けれ。
被った。。すまん。
グラフの作成なのですが、 A B C 2004/8/29 46 16 2004/8/30 45 16 2004/8/31 46 15 ・・・ このような三つの項目でのグラフを作成した場合、 グラフにぴったり収めるには8/29〜8/31までの選択をしなければいけませんが、 それだと2004/9/1を記入した場合、また選択をしなおさないといけないので手間が掛かります。 かといって、A行に2005/1/1くらいまで書いてしまうと、グラフがその日数分分割され、 まだ記入すらしていないところにも場所を使ってしまうので、一日一日が凄く小さくなってしまいます。 B、C行に記入したとき、そこまでの分だけその都度グラフに表していくような方法ありますか? 上手く伝えられないのですが、四苦八苦しております。お願いします。Excel2000です。
>>435 マクロでいいのなら、次の方法があります。
Alt + F11をクリックして、当該ブックの当該シートをダブルクリックして、現れた白いテキスト欄に以下の
コードを貼り付けてください。
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Saisho As Range
Set Saisho = Range("A1")
If Target.Column = Saisho.Column Then
ActiveSheet.ChartObjects("グラフ 1").Select
ActiveChart.SetSourceData Source:=Range(Saisho, Saisho.End(xlDown).Offset(, 2))
End If
End Sub
多少書き換えが必要です。
データがA1からあるものと過程してます。もし違う場合は、以下のように書き換えてください。
・3行目
A1のところを、一番最初の日付が入ってるセルの住所に書き換えてください。
グラフの名前を入れてください。
・5行目
グラフを右クリックし、グラフウィンドウにチェックを入れ、ウィンドウに現れた「シート名、グラフ名」のグラフ名が「グラフ 1」でなかったら、
5行目の「グラフ 1」のところをその名前に書き換えてください。
>Alt + F11をクリックして 「Alt + F11を押して」です。 失礼しました。
誰か格安でマクロ(アドイン)作ってくれる方いませんか?
あ、たびたびごめん。 日付の行には、初めから将来の日付があるんですよね。 以下のコードを使ってください。 Private Sub Worksheet_Change(ByVal Target As Range) Dim Saisho As Range Set Saisho = Range("B1") If Target.Column = Saisho.Column Then ActiveSheet.ChartObjects("グラフ 1").Select ActiveChart.SetSourceData Source:=Range(Saisho.Offset(, -1), Saisho.End(xlDown).Offset(, 1)) ', PlotBy:=xlColumns End If End Sub 3行目に書いてあるセルは、日付の右隣のデータの一番上のセルです。 グラフ名の変更の仕方は、さっきのとおりです。
なんどもごめんなさい。 6行目の ', PlotBy:=xlColumns は、いらないです。 もしくは、最初の「'」は削除してください。
ほんとにごめんなさい。 Private Sub Worksheet_Change(ByVal Target As Range) Dim Saisho As Range Set Saisho = Range("B1") If Target.Column = Saisho.Column Or Target.Column = Saisho.Column + 1 Then ActiveSheet.ChartObjects("グラフ 1").Select ActiveChart.SetSourceData Source:=Range(Saisho.Offset(, -1), Saisho.End(xlDown).Offset(, 1)) End If End Sub これを使ってください。 変更の仕方はさっきのとおり。
>>435 既存のグラフにデータを追加したい、ってことであれば、
その追加データをグラフ上にドラッグ&ドロップするか、
コピー → 貼り付け っつー手もある。
…見当違いな答えだったらごめんね。
>>436-441 や、わざわざどうもありがとうございます。
それにしても凄いですね、見事に上手くいきました。
何度も苦心して頂き恐縮です。利用させていただきます。
>>442 なるほど、こんな方法でも出来るんですね。
先ほどのマクロで手に負えないことが出てきたら、活用します。
ありがとうございました。
>>438 どういうマクロよ?
格安っていくらよ?
メバチマグロを700円くらいで
Excel2000なんですが、所要時間の計算をするのには セルの書式を「時刻」にして普通に「12:00」みたいに入力したものを 引き算させるだけで良いのでしょうか?
>>446 ここで聞くより
やってみたほうが早いだろ?
あと時刻の取り扱い方などはヘルプに詳しく書いてある。
449 :
名無しさん@そうだ選挙にいこう :04/08/31 01:26
フィルタをかけた時に、縦方向に範囲指定してコピー、 フィルタのかかっていない所に貼り付けると、 フィルタで絞られたセルのみ貼り付ける事ができますよね。 同様にして、横方向に指定したセルだけ絞って、 コピペ出来る様にできませんか?
コピペしたくない列を右クリで非表示にしてから範囲選択、 ジャンプ機能で可視セルのみ選択してからコピペ。 コピペしたくない列が毎回固定なら、 非表示の操作をマクロで記録しておくと楽になるかも。 可視セルの選択はツールバーにボタンで追加できる。 (※2002でのみ確認)
>>449 普通にコピーしたいセルだけ選んでコピペじゃだめなの?
2003を使っているんですが、 ファイルを開くと毎回、 「非表示モジュールAutoExecNew内でコンパイルエラーが発生しました。」と出ます。 そして終了時には、 「非表示モジュールDistMon内でコンパイルエラーが発生しました。」と出ます。 どうやったら直りますか? 宜しくお願いします。
453 :
名無しさん@そうだ選挙にいこう :04/08/31 07:48
そろそろOSの再セットアップをしようかと思ってます。 これまで、何度もやってきたんですが、毎回Excelのツールバーに登録している ボタンの作り直しがウザいので、これをバックアップしておいて、 書き戻す方法って無いでしょうか? やっぱ、レジストリ(?)とか難しいことしないと駄目でしょうか…。 (そうなるとよく分からないです…)
454 :
名無しさん@そうだ選挙にいこう :04/08/31 07:49
>>452 サン
Excelを再インストールしてみた?
>>454 さん
まだしてません・・・
直らないもんですかねぇ。
456 :
名無しさん@そうだ選挙にいこう :04/08/31 16:26
VBAのリストボックスで行列に枠線が表示できませんか?
>>453 拡張子 .xlb のファイルを探して、どこかにバックアップしておく。
再インスト後にそのファイルを読みこめば尾k。
>>458 さん
ありがとう
アクロバットリーダーが原因でした。
エクセルを再インストしなくてもなおりました。
460 :
名無しさん@そうだ選挙にいこう :04/09/01 07:36
VBAでセルの先頭にあるアポストロフィってFormulaとかValueでは取得できないのですが 取得の仕方を知ってる方教えてください。
Excelの再インスコに何の問題があるのかって話。
だな。再インスコの方が早いだろうに。
463 :
名無しさん@そうだ選挙にいこう :04/09/01 08:33
Excel2003 windowsXP使用 質問いたします アルファベットと数字の混在を多く入力しているのですが 書式→セルの書式設定→フォントからの文字の上付きで困っています。 たとえば、W1W234と入力した場合、2番目の1と4番目の2は上付きの設定で 右上に小さく表示しているのですが、今までとりあえず普通に入力して その後、上付き文字の部分だけひとつひとつ選択して設定を変えていますが もっと効率的なやり方はないでしょうか? また、連番で入力していいますので、オートフィルをつかってドラッグすると 数字がすべて上付き文字になってしまいます どうかご伝授お願いいたします
03-1234-9999 → 0312349999 090-7777-5555 → 09077775555 022-222-0001 → 0222220001 0999-11-9999 → 0999119999 電話番号なんですけど、上記の様に変換する良い方法は無いですか?
>>464 =SUBSTITUTE(A1,"-","")
>461、462さん 原因くらいは知っときたかったんで。
>>467 気持ちは分かるけど、
それなら自分で調べてよ。
初心者なら再インスコはいい解決策。
ACCESS総合相談所 その11 223 名前:名無しさん@そうだ選挙にいこう[] 投稿日:04/09/01(水) 11:58 教えて下さい。 電話番号変換。 03-1234-9999 → 0312349999 090-7777-5555 → 09077775555 022-222-0001 → 0222220001 0999-11-9999 → 0999119999 なにか方法ありませんか ?
マルチかよ┐(´ー`)┌
時間が変だな? 464無実決定!!
473 :
名無しさん@そうだ選挙にいこう :04/09/01 13:31
教えて下さい A1に 平成16年8月16日(月) B1に 平成16年8月17日(火) C1に 平成16年8月18日(水) てな感じでA1に初日だけ打ち込むと、B1からは単純に次の日に自動で代わってほしいんですけど、 何かないでしょうか?
行1の書式を、ggge"年"m"月"d"日"(aaa)にする。 ↓ A1に日付を数値で入力。 ↓ B1=A1+1 ↓ C1〜任意の列までB1をコピペ
>>474 速レスありがとうございます!
できました。
476 :
名無しさん@そうだ選挙にいこう :04/09/01 15:31
改ページプレビューで自動で入る改ページの青点線と 印刷プレビューのページの境目のセル位置が1つずれてしまうのですが どうしたらよいのでしょうか。 印刷すると印刷プレビューと同じページ範囲で印刷されます。
477 :
名無しさん@そうだ選挙にいこう :04/09/01 21:05
俺の質問全部答えられないんだな。駄目だなここ。
お前誰だよ。
私の名はゴア!
>>460 質問内容と違うかも知れないけど
データ>区切り位置>カンマやタブ... をマクロの記録してみると道は開かれるかも
481 :
名無しさん@そうだ選挙にいこう :04/09/02 01:32
特定の2列をすべて結合したいけど 行は結合したくないときに、一つずつやらなくてもいいやり方はありますか?
>>481 ツール>ユーザー設定>コマンドタブ>書式から
「横方向に結合」のボタンをツールバーにドラッグ&ドロップして使うといいかも
484 :
名無しさん@そうだ選挙にいこう :04/09/02 01:46
485 :
名無しさん@そうだ選挙にいこう :04/09/02 02:10
あと、AとBの2列が結合しているとき AとBの文字も結合してAだけにすることは出来ますか?
A列とB列が結合されていたら、 それぞれの列にデータを入力することはできないのだが… けどまあ、言わんとするところはわかるから答えておく。 C1=A1&B1 (C列に余裕がない場合は先に新しい列を挿入) これを下にコピー、形式を選択して貼り付けで値のみ貼り付け、 最後にA列とB列を削除する。
あーなんかよく分からなかったけど 色々やってたら自己解決しました。 ありがとうございました。
すみません、教えて下さい。 セルの一定範囲を比較し、一番右にある文字列が有った場合に その内容を別のシートにコピーするという方法をご教授頂きたいのです。 具体的には< 今日は 4日目 1(日目) 2 3 4 5 ABCD ABCD ABCD ABCD ABCD ゴラァ社 ○ △ ○ モナー商事 ○ △ 有限会社釣 > という内容で、(BCDは○、△がある場合コメントが記述) △ = 予定 ○ = 実施 空白=何もなし という識別子をAのセルのセルから判断して、別のシートに 最新の実績 最新の予定 ゴラァ社 4日目のBCD なし(空白) モナー商事 なし(空白) 3日目のBCD 有限会社釣 なし(空白) なし(空白) を転写するということがしたいのです。 この場合、飛びセル参照・比較と列の最大値の予定を拾い出し転写 (=EOF?)がポイントになると思うのですが、これはVBAになりますでしょうか? 列の最大値は30(1ヶ月)を予定しています。 お願い致します。
489 :
名無しさん@そうだ選挙にいこう :04/09/02 15:36
コメントのところに画像をのっけることはできませんか?
490 :
名無しさん@そうだ選挙にいこう :04/09/02 15:56
>>464 さん
ご迷惑かけました。 Accessで回答もらいました。
ACCESS総合相談所 その11
223 名前:名無しさん@そうだ選挙にいこう[] 投稿日:04/09/01(水) 11:58
教えて下さい。 電話番号変換。
03-1234-9999 → 0312349999
???
492 :
名無しさん@そうだ選挙にいこう :04/09/02 18:46
excel2003なんですが ファイルを開いた直後に、マウスのホイールを回すと 垂直スクロールバーが使用不能になります (一番上と下にある三角のボタンがなくなり、バーがつかめなくなります) 既存のファイルでも、新しいブックでも起きます マウスを変えても同じです どなたか同じ症状の方解決法を知りませんか?
493 :
名無しさん@そうだ選挙にいこう :04/09/02 20:25
EXCELでAPI使いたいんですが、APIビューアが見つかりません。 どこにあるんでしょうか?
セルの縦1〜150までが1ページ、151〜300までが2ページ、移行150毎にページが増える・・・のように マクロで改ページ位置を指定する方法はありませんか? A4サイズの紙に複数の伝票を作成するマクロを組んでいるのですが 作成枚数が増えてくるとだんだんずれてくるので困っています。
496 :
名無しさん@そうだ選挙にいこう :04/09/03 14:33
基本的なことかもしれませんが質問です。 測定機器からのデータをエクセルにインポートしてグラフを書いています。 エクセルにするとデータはx軸が270〜600で、私は「300,400,500,600」と目盛りをふりたいのに「270,370,470,570」となってしまいます。データ範囲は270〜600のままで300から100きざみで目盛りをふるにはどうすればいいのでしょうか?既出の質問でしたら申し訳ありません。 エクセルのバージョンはmacX用のものです。
497 :
名無しさん@そうだ選挙にいこう :04/09/03 15:16
>>496 X軸をダブルクリックして、軸の書式設定の目盛で
最小値やY軸との交点を変える。
最小値が300で交点が270にするとグラフの左が切れてしまうので
最小値が200で交点が200か、最小値が200で交点が270にするしかないみたいだけど。
(Excel 2001の場合)
>495 挿入−改ページをマクロ記録してみれ。 づれて来るのは設定がおかしいんでないの?
499 :
名無しさん@そうだ選挙にいこう :04/09/03 17:31
>497 ありがとうございます。おっしゃるやり方だと欲しい範囲にならないんです。200まで見えてしまったり。 なんかいい方法はないですかねぇ。
500 :
名無しさん@そうだ選挙にいこう :04/09/03 23:43
当日の日付をファイル名(例:20040903.xls)にした上で保存するような vbaのコードはどのように書けばよろしいのでしょうか。 ご教授ください。(Excel 2000です)
>>500 Dim s As String
s = Format(Now, "yyyymmdd")
以上を今日実行すると変数sには、「20040904」と入る。
あとは、これを使って「名前をつけて保存」。
502 :
名無しさん@そうだ選挙にいこう :04/09/04 01:00
>>500 様、ありがとうございます。ご指導のとおりやってみましたが、うまく
日付がファイル名に入りませんでした。お手を煩わせて申し訳ありませ
んが、変数sに、「20040904」と入った後のコードもお示しくださいませ。
503 :
名無しさん@そうだ選挙にいこう :04/09/04 01:24
>>500 様、なんとかできました!ありがとうございました。
504 :
名無しさん@そうだ選挙にいこう :04/09/04 01:40
教えてください。 A列にズーっと8桁の数字が入ってます。 12345678 78365978 34558697 コレを 123456-78 783659-78 345586-97 というふうに6桁と2桁に分けて間に - を入れたいんですけど何かありませんでしょうか?
505 :
名無しさん@そうだ選挙にいこう :04/09/04 01:58
=LEFT(A1,6) & "-" & RIGHT(A1,2)
>>506 うおー!凄い!出来ました。ありがとうございます。
色々便利なのがあるんですね。
見た目だけでいいなら書式設定で 000000-00
509 :
名無しさん@そうだ選挙にいこう :04/09/04 21:03
どなたか御教授下さい。 AVERAGEの結果をROUNDで四捨五入するのはどうしたらいいですか? 式の入力の仕方が分かりません。
例えば =ROUND(AVERAGE(A1:A3),0)
511 :
名無しさん@そうだ選挙にいこう :04/09/04 21:26
できました。ありがとうございました。 2チャンネルのイメージ変わりました。
>511 >2チャンネルのイメージ変わりました このスレッドじゃ、大体こんなモンだぞ。
Σ('A`)
>>498 オブジェクト.VPageBreaks.Add Before:=セル ですね?
やはり根本原因は、指摘された通り列幅や高さを設定するマクロがおかしな挙動をしていたので
枚数を重ねるごとにずれが大きくなってきてたようです・・・
現在は先に教えていただいた改ページと併用しているのでトラブルはなくなりました。
どうもありがとうございます!!
515 :
名無しさん@そうだ選挙にいこう :04/09/05 16:45
エクセル2002なんですが、下記のような表で項目の入力してあるセルをクリック、又はダブルクリックしたら その項目行の今日の日付のセルに移動するようにするにはどのようにすればいいですか? 例えば9/5に項目2のセルをダブルクリックしたらF3セルにジャンプするようにしたいんですけど。 A B C D E F G 1 9/1 9/2 9/3 9/4 9/5 9/6 2 項目1 3 項目2 4 項目3
>>515 ダブルクリックするとその行の今日の日付のところに行くようにしてみました。
ダブルクリックでセル内の編集することはできません。
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
rem A2から順に9/1、9/2、・・・となっているとします。
rem 10月以降は考えてません。
Cells(Target.Row, Day(Date) + 1).Select
Cancel = True
End Sub
>516
なるほど、入力されてる日付は無視して、選択した行の今日の"日+1"列目に移動するVBAですね。
しかし3ヶ月分の表なので、最初の一月しか望みの動作はしてくれないわけか。
まあ、月が変わるごとに"Day(Date) + 1"を"Day(Date) + 32"とか書き替えれば使えないこともないだろうけど
出来ればそういった手間無く動作するものをキボンです。
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Column = 1 Then Range("1:1").Select
For Each CheckCell In Selection
If CheckCell.Value = Date Then CheckCell.Select
Next
End Sub
過去ログ漁って見付けたコードを改造して今日の日付のセル(
>>515 のF1)に移動するVBAは作れたのですが、
指定行の日付列に移動する方法が解らない・・・・・引き続きよろしくお願いします。
518 :
名無しさん@そうだ選挙にいこう :04/09/05 20:52
エクセルで統計解析(回帰分析しかも単回帰分析)する時の質問です。 ある2つの関係が相関があるとして、回帰直線をひきます。 そこで、個々の値とその値の回帰直線がグラフ上に現れます。 質問1.その回帰直線(1次)の95%信頼区間をグラフ上に描かせたい。 質問2.個々のデータの95%信頼区間をグラフ上に描かせたい。 といった場合、エクセルの機能を使ってできるのでしょうか? それともそれぞれ計算してその値をグラフにしないといけないのでしょうか? よろしくお願いします。
>>518 それぞれ計算してその値をグラフにしないといけない。
>>517 作ってくださいじゃなくて、ヒントがあるんだからすこしは考えろよ。
B1を基準日として移動。
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Rem B1から順に9/1、9/2、・・・となっているとします。
Rem 10月以降は考えてません。
Dim c As Integer
c = Date - Range("B1").Value + 2
If c > 0 Then
Cells(Target.Row, c).Select
End If
Cancel = True
End Sub
>>520 コメント直してなかった。
> Rem B1から順に9/1、9/2、・・・となっているとします。
> Rem 10月以降は考えてません。
↓↓↓↓↓
Rem B1から順に9/1、9/2、・・・となっているとします。
Rem 10月以降も考えてますが、
Rem 9/30と10/1など月変わりも隣り合ったセルに並ぶものとします 。
522 :
名無しさん@そうだ選挙にいこう :04/09/06 01:32
>518 俺も先週同じことをしたくて悩んだが、結局バラして計算した。 がんがれ。
>>517 For Each だと列番号を得るのに2度手間なので
直接カウンタを回した方がよさげ。
Private Sub Worksheet_BeforeDoubleClick(ByVal r As Range, Cancel As Boolean)
If r.Column = 1 Then
For i = 2 To 256 '3ヶ月なら93とか
If Cells(1, i) = Date Then
Cells(r.Row, i).Select
Exit For
End If
Next
End If
End Sub
>523 いい感じです。ちょっと変えて Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If Target.Column = 1 Then For i = 2 To 256 If Cells(1, i) = Date Then Cells(Target.Row, i).Select Exit For End If Next End If End Sub で使うことにしました。ありがとうございました。 >520 度々回答ありがとうございます。動作としては問題ありませんが "月変わりも隣り合ったセルに"という制限があるので、今後表を変更するときのことを考えて 今回は523氏の方を使わせて頂くことにします。
525 :
名無しさん@そうだ選挙にいこう :04/09/06 14:09
>>495 亀レスだが、
まずどこかのセルに(仮にZ1)ページ枚数を計算する
例)
Z1=ROUNDUP(COUNTA(A1:A65536)/150,0)
で、
Sub()印刷
x = Range("Z1").Value
ActiveWindow.SelectedSheets.PrintOut From:=1, To:=x, Copies:=1, Collate _
:=True
End Sub
これでどうかな?
>524 うん、確かにちょっと変えてあるねw >525 Z1を使う意味は? 行高さがまちまちでもそれで150行づつ印刷できる?
あ、今回はちゃんと礼を言ってるw でも、「俺はズブの素人じゃないよー。少しは分かるぜベイベ。」っつー、 低レベルなアピールは健在か。無駄な行の多いこと多いこと。
528 :
名無しさん@そうだ選挙にいこう :04/09/06 17:04
グラフの軸の長さを指定する方法ってありますか?
>>526 >Z1を使う意味は?
いや別にZ1じゃなくてもどこでもいいんだけど。
>行高さがまちまちでもそれで150行づつ印刷できる?
できるよ
行高さがまちまちだと、150行が1ページに収まらない場合がありそうだけど。
伝わらなかったようなので、 変数を使わずにZ1とかセルを使って 式を埋めておくのに何か意味があるのですか? 行の高さがまちまちならページ数を指定しただけで 150行づつ印刷できるはずがないでしょ?
まあ、
>>524 も深夜の24時ごろ使うこともないだろうし、
日付の位置がころころ変わらないのならブックの起動時に
一度検索して変数に入れといてもいいかもしれない。
534 :
名無しさん@そうだ選挙にいこう :04/09/06 20:41
特定のセル(D1又はD2)の値が変更される度に実行されるVBAはどのように書けばいいのでしょうか? 変更方法は入力規則で設定したドロップダウンリストからの選択、入力される値は数値、実行したいコードは下記のものです。 Range("A2:A2,B3:B31,D3:E31,J3:J31").ClearContents Excelは2002を使ってます。分かる方よろしくお願いします。
>>534 Private Sub Worksheet_Change(ByVal Target As Excel.Range)
if Target.Column=4 And Target.Row<3
〜
End Sub
>>519 ,
>>522 ご返事ありがとうございます。
そうですか。やっぱり無理ですか・・・
楽しようと考えず、地道に計算しようと思います。
537 :
名無しさん@そうだ選挙にいこう :04/09/06 22:25
質問よろしいでしょうか? Vlookupの場合、検索値はひとつのセルしか指定できないと思いますが それを2つのセルをキーにしたいのですが、 そのようなことは可能でしょうか? 例えば このようなデータがあります 日付 番号 2004/01/01 00001 2004/01/01 00002 2004/01/01 00003 別シートに 日付 番号 料金 その他複数項目・・・・ 2004/01/01 00001 ¥100 2004/01/01 00002 ¥200 2004/01/01 00003 ¥300 という別のデータがあります。 この場合、日付と番号をセットにして検索し、一番上のデータに料金を当てはめたいのですが どうやればいいのでしょうか? データが何千件とあるので、早くできる方法をお願いします。
この例だと、番号で検索すれば問題無しにも思えるわけだが・・・ きっと 2004/01/02 00001 ¥1100 とかもあると想定して答えると、 別シートの番号と料金の間に一列挿入し、(これをC列と考える) C2=A2&B2 とし、下にオートフィル。 検索したいセル =VLOOKUP(A2&B2,Sheet2!$C$100:$D$100,2,0) リスト範囲は行数は任意で。
539 :
名無しさん@そうだ選挙にいこう :04/09/06 23:28
537です データの例が悪かったですね。 日付 番号 2004/01/01 00001 2004/01/01 00002 2004/01/01 00003 2004/01/02 00001 2004/01/02 00002 というパターンなんですよ。 最終的にはやはり、日付&番号でデータを 結合させなければ、いけないかなと思っておりますが、 その作業なしでも出来るのであれば 是非、お願いします
作業列ぐらい入れればいいじゃん。
列A1:A100内に数値が入っていますが、数値でないゴミも 入っています。 このゴミを除いた数値の和を得るには どうしたらいいのですか。 sumif関数あたりかなと思うのですが、 第二引数にisnumberが効いてくれません。
アクセス使え
解決しました average関数が文字列や空白を無視することがわかったので。
544 :
名無しさん@そうだ選挙にいこう :04/09/07 06:25
534です
>>535 どうもありがと
ばっちりだけど2行目Trueが抜けてますね
…なんて書くと上のほうの方みたいに527さんに怒られちゃうのかな(・∀・;)ドキドキ
(´-`).。oO( Then と間違えたのかな、、、
546 :
名無しさん@そうだ選挙にいこう :04/09/07 10:24
教えてください。 Win98、excel2000です。 セルの表に数字or文字列が虫食い状態で入力されていて 小計のところに「何か文字や数字が入っていればカウントする」 という条件を入れたいのですが・・・ A │ B │ ──┼──┼ │ bP│ ──┼──┼ │ │ ──┼──┼ │ 78 │ ──┼──┼ 小計│ 2 ←こんな感じに =COUNTIF(B1:B3," ")という式の空白の中に どんな検索条件を入れればいいのでしょうか・・・。
548 :
名無しさん@そうだ選挙にいこう :04/09/07 10:49
>>547 できました!助かりました。
そんな関数あったのですね;
素早い解答ありがとうありがとう(ノ∀`)
下記の様な表があって、4つの空白の次に○がある場合に買いシグナルを出すのはどうすれば良いのでしょうか? =IF(AND($A6:$A9="",$A10="○"),"買い","")という式をB10にいれてもエラーがでます。 よろしくお願いしますm(_ _)m A 1○ 2○ 3 4 5○ 6 7 8 9 10○ 11○
ABCD・・・っていう列の区切りがあるんですが、 ページの上半分と下半分とかで、別々の列区切りを使いたいです。 たとえば、上が横5マスの表、下が横6マスの表とかにする場合。 セルの結合でまとめないで、上部分、下部分でそれぞれ別のABCD・・・と区切る方法はないでしょうか?
質問させていただきたいのですが、 たとえば10万円の予算のなかで、予算の残が最小(0円がベスト) となるように、何件かの支払をしたいという場合、この支払の組合せを エクセルにさせることは出来るのでしょうか。 下のようにB1が予算とし、A列には30件から40件ほどの金額があります。 よろしくお願いします。 A B 1 300 100,000 2 850 3 328 4 1,357 5 981 6 2,804
>549 あんまり芸がないが手っ取り早く、 =IF(AND(A6="",A7="",A8="",A9="",A10="○"),"買い","")
ワイルドカードを使って 110+1や23+50などの数式の+〜の部分を削除したいのですが substitute(文字列,"+*","")と打ち込んでも*を認識してくれません。 +1や+25等を認識させるにはどのように打ち込めば良いのでしょうか?
これじゃだめ? =LEFT(A1,FIND("+",A1)-1)
お見事です、どうしてそんな簡単に思いつくんだ〜orz ところでワイルドカードはひょっとして検索条件にしか使えませんか? +*と打てば110+25なら+25だけ抽出してくれるのかと思ったんですが +〜を含む式を抽出するのみです?
>>555 substituteはワイルドカード使えないみたいだね
>>554 は「山田 太郎」みたいにスペースで区切られた名前から姓と名を分けるための定番だよ
>>556 ありがとうございました。
やはり慣れて定番を憶えるまで頑張るしかないですね。
しかし特定の式だと使えないとかあるのか・・・。分からないって;
558 :
名無しさん@そうだ選挙にいこう :04/09/07 17:37
期間を指定(例 04.09.01〜04.09.30)して、その間の合計を出したいのですが、 ネットで検索、ヘルプ参照しても分かりません。 方法を教えて貰えないでしょうか?よろしくお願いします。 excel2000 SP-3です。
たぶんそれだけじゃレスできない
A列に"04/09/01","04/09/03"という感じに日付、 B列に項目名、C列に金額(\1,000)という風に入力してあるんですけど、 A列に入力された日付が04/01/01〜04/12/31まで多数あるとして、 B列の項目別にC列の金額を月別にして集計を出したいのです。 これで補足になったでしょうか? どの部分を説明したら良いか分からないので、どうぞ言って下さい。
すみません。 ナップザック問題でした。 出直します。
562 :
名無しさん@そうだ選挙にいこう :04/09/07 18:39
Excelのマクロで以下のようなことは出来ますか? 社員番号の列に1,3,5,7,9とあり、それに対応して成績が50,30,40,50,60とあるファイルがあります。 もう一つのファイルには社員番号が1,4,6,8,9とあり、それに対応してボーナスが10,20,30,40,50とあります。 この二つのファイルを一つのファイルにまとめて、社員番号と成績、ボーナスを一緒に見る方法はないでしょうか? 社員番号が二つのファイルともまったく同じだったら移動するだけなのですが、合成することがどうしてもできません。 もしやり方があったら教えてください。
563 :
名無しさん@そうだ選挙にいこう :04/09/07 18:40
562です。 二つのファイルと書きましたが、別に二つのシートでも、二つの列のグループでも構わないです。 どうかよろしくお願いします。
565 :
名無しさん@そうだ選挙にいこう :04/09/07 19:55
株売買の管理をエクセルでしようと思います。 IF文で参照先に「買」という文字列があれば数字の頭に「-」を付けたいのです。 @IFの中で〜という文字列を含むと言う意味で *買* は使えないのでしょうか? Aセルに数値が入っているとき、「-」を付けれるでしょうか?100 → -100 みたいに
>>565 =IF(LEFT(A1,1)="買",B1*(-1),B1)
または
=IF(FIND("買",A1,1)>=1,B1*(-1),B1)
辺りではどうでしょうか?
>>564 全然思いつきませんでした。
レスありがとうございました。
568 :
名無しさん@そうだ選挙にいこう :04/09/07 20:24
>>566 レスどうもです。
LEFTとFINDですが 買いの種類に「株式現物買」や「分売買い」など
いくつか種類があり先頭から何文字目に「買」という文字があると決まっていないのです。
ま、ここはIFを2つ3つ重ねたら何とかなりそうなのですが。
B1*(-1),B1の部分ですが値が全部0になってしまいます・・
569 :
名無しさん@そうだ選挙にいこう :04/09/07 20:33
連投スマソ >>B1*(-1),B1の部分ですが値が全部0になってしまいます・・ のぶぶんですが、循環参照になってだめみたいです。
>>568 >先頭から何文字目に「買」という文字があると決まっていないのです。
FIND関数なら、「買」がどこにあっても対応可能です。
>B1*(-1),B1の部分ですが値が全部0になってしまいます・
0にはならなかったのですが、「買」が無いときにエラーを起こしていました。
下のように直します。
B1セルに数値が入っているか確認してください。
=IF(ISERR(FIND("買",A1,1)),B1,B1*(-1))
式はC1セルなど、A列・B列以外に入力してください。
>>570 出来ますた!
ありがd。
MOUS所持者ですか?
>>549 =IF(AND(COUNTBLANK($A6:$A9)=4,$A10="○"),"買い","")
>>552 さん
>>573 さん
ありがとうございますm(_ _)m
COUNTBLANKって知らなかった・・・_| ̄|●
B1*(-1)ってやるのはなにかあるのでしょうか?
()は不要ですよというレスつけさせて、 実は-B1で十分だという、2段落ちだとか。
>>576 いや、-B1より計算量が少ないとか何かあるのかと思っただけ。
578 :
名無しさん@そうだ選挙にいこう :04/09/08 10:59
562です。 564様 統合を使うとデータの合計などは出来ますが、合成やソートはしてくれないようです。 他に良い方法はないでしょうか?
579 :
名無しさん@そうだ選挙にいこう :04/09/08 12:23
OS:Windows2000 エクセルのバージョン:Excel 2000 どなたかお助けください。簡略化させていただくと下記のようなエクセルのファイル で、 解決法がわからずこちらに投稿させていただきます。 Sheet1 A1=お B1=A1(=お) C1=Sheet2!A1(=お) A2=う B2=A2(=う) C2=Sheet2!A2(=う) A3=え B3=A3(=え) C3=Sheet2!A3(=え) A4=い B4=A4(=い) C4=Sheet2!A4(=い) A5=あ B5=A5(=あ) C5=Sheet2!A5(=あ) Sheet2 A1=Sheet1!A1(=お) A2=Sheet1!A2(=う) A3=Sheet1!A3(=え) A4=Sheet1!A4(=い) A5=Sheet1!A5(=あ)
>>579 のファイルにおいてSheet1を列Cをキーとして並び替えを行うと、
Sheet1
A1=あ B1=A1(=あ) C1=Sheet2!A5(=お)
A2=い B2=A2(=い) C2=Sheet2!A4(=え)
A3=う B3=A3(=う) C3=Sheet2!A2(=い)
A4=え B4=A4(=え) C4=Sheet2!A3(=う)
A5=お B5=A5(=お) C5=Sheet2!A1(=あ)
といように列Cの「A5」といった部分が並び替えされてしまって困っています。
列Cを列Bと同じ様に、並び替えても変数部分が変わらない様に、つまり列Cをキーとして並び替え後に
Sheet1
A1=あ B1=A1(=あ) C1=Sheet2!A1(=あ)
A2=い B2=A2(=い) C2=Sheet2!A2(=い)
A3=う B3=A3(=う) C3=Sheet2!A3(=う)
A4=え B4=A4(=え) C4=Sheet2!A4(=え)
A5=お B5=A5(=お) C5=Sheet2!A5(=お)
このように並び替える方法はありませんでしょうか?
前に列Bをキーにして並び替えたときに、列B自体の変数部分は並び替えされなかった
(
この簡略化された例においても列Bをキーにして並び替えたときはB列の変数部分は並
び替えの対象になりません)ので、
てっきり他のシートを参照しても同じ様に並び替えはされないものと勝手に思ってい
ました。
どうかお知恵をお貸しください。
参照部分を並び替えたくなければ A列だけ並び替えれば?
A列を範囲指定すれば良いだけじゃないの?
>>581 様
>>582 様
回答下さりありがとうございます。
ファイル内のデータについて説明不足でした。大変申し訳ありません。
本当は外したいのですが、なぜか私にはできないのです…(頭悪い)
実際のファイルのごく一部を以下にアップロードしました。もし宜しければどうかご覧下さい。
ttp://members.lycos.co.uk/ipxh65/list.xls このファイルで、列Aの号数の最初に0をつけずに、号数ページまでを正しく整列させた上で、
列B,W,X,Yの参照が入れ替わらないようにするにはどうしたらよいのでしょうか?
(文系なので大変見苦しい行為をSheet3で行っているのかもしれませんが、どうかご容赦ください)
>>581 様
>>582 様
すみません。アップロードしたファイルの列Bを列Aにして、
列B以降を選択しながら6回程度並び替えを繰り返す方法でなんとかうまく並び替えることができました。
勝手にご質問して勝手に解決してしまってごめんなさい。
どうもありがとうございました。
585 :
名無しさん@そうだ選挙にいこう :04/09/08 17:56
1つのハイパーリンクをクリックして、2つ以上のファイルが一度に開くように する事は可能でしょうか?よろしくお願いします。 ちなみにExcel2000使ってます。
たびたびすみません。 シートをまたいで文字列を参照するとふりがなが消えてしまうのですが、 シートをまたいでふりがなを生かすにはどうしたらよいのでしょうか? (PHOHETICでシートをまたいでもふりがなを単体で手に入れることができるのは試したのですが、 それを後に結合したりできるのでしょうか…?) 問題の発生する状況は Sheet1 A1=協力(ふりがなを表示させると「キョウリョク」と出ています) Sheet2 A1=Sheet1!A1(ふりがなを表示させても何も出ません)
>>586 突っ込んでおくと「phonetic」な
当方、Winxp excel2003だけどできたよ
何も表示されないって外部から「協力」の字をコピペ
したってオチじゃないよね?
>>587 様
訂正ありがとうございます。
何か私が現在使ってる状態だと、同一シート内でも、別のセルで参照すると、ふりがなが表示されないみたいです…
結局全部をSheet1に寄せて、PHONETICで出した振り仮名を元に一部並び替えをする方法にしました。
皆様どうもありがとうございました。
〉584 こんな風になるけどダメ? <統合元> 成績 1 50 3 30 5 40 7 50 9 60 および ボーナス 1 10 4 20 6 30 8 40 9 50 統合の条件: レ上端行 レ左端行 <統合結果> 成績 ボーナス 1 50 10 3 30 5 40 7 50 4 20 6 30 8 40 9 60 50
質問なのですが、どなたか助けてください。 セルa1, a2, a3, a4, …と縦方向に数値を 連続して入力していくのですが、最新の入力 した値までの和をセルb1に自動で表示させた いのですが、なにか方法はありますでしょう か。以下がやりたいことのイメージです。 よろしくお願いします。
------------------------- 1 1 ------------------------- 1 3 2 ------------------------- 1 6 2 3 ------------------------- 1 10 2 3 4 ------------------------- ・ ・ ・
=SUM(A:A)
593 :
名無しさん@そうだ選挙にいこう :04/09/09 01:42
何も書いてないのに、印刷のページ数が余分になってしまうのは バグとか仕様ですか? 1ページ分の領域にしかデータを入力してないのに、かならず 四ページ分印刷されてしまいます・・・
594 :
名無しさん@そうだ選挙にいこう :04/09/09 02:06
A B C D 1 101 80 90 2 101 102 103 特 ABC列の数字がA列100以上・B列90以上・C列95以上 だったら、D列に"特"って表示して、そうじゃなかったら無記入にするのはどうすれば良いでしょうか? 上記の表で言えば、2行目が条件を満たしています。 よろしくお願い致します。m(_ _)m
ありがとうございます。 あともう2つ質問があります。 どなたかお願いします。 a列に人数を、b列にテストの点数を入力していき、 入力が済んだ分の平均点を随時セルc1に表示した いのですがやりかたを教えてください。 入力したデータの範囲(長方形)が動的に拡大して いくときに、その範囲の四隅の位置を自動的に表示 したいのですが、四隅の位置を返すような関数はない でしょうか。
596 :
名無しさん@そうだ選挙にいこう :04/09/09 06:44
>>593 印刷プレビューで見る。- 閉じる
印刷範囲示される。
@ 右の点線以降を選択し(4ページ分)削除
A 次に今度は、下の点線以降を選択(4ページ分)削除
これで、ほとんど直る、いずれにしてもなにかが入力されている。
図形の直線"白"でも入っている事もあるよ。
他人が作ったもの利用すると、よくこうなる。
それから、印刷プレビューで見て点線の近くに文字が有ると
白紙が出力されるぞ。(4ページも出んけどな)
597 :
名無しさん@そうだ選挙にいこう :04/09/09 06:48
それから 新規にどんなもの作っても。 その都度、白紙4ページ出るんか ? それは聞いたことないぞ。
>>594 D1に =IF(AND(A1>=100,B1>=90,C1>=95),"特","")
コピペ厨と想ふ。 もしも本人なら何をか云わんや瀬戸わんや。
602 :
名無しさん@そうだ選挙にいこう :04/09/09 20:25
2002 テンプレートを作りました。 入力したデータを専用のシートに格納していますが 保存終了する時、データ格納シートをTXT形式か何かで外部出力し、ロードした時に出力した ファイルを読み込む方法はありますか?
603 :
名無しさん@そうだ選挙にいこう :04/09/10 09:26
質問お願いします。ちょっと急ぎです・・・m(__)m 説明が難しいのですが・・・・ 表計算で、小数点第1位まである数字をオートSUMすると、 見た目の数字を手計算したときと比べ、小数点以下の数字が 0.1〜0.2くらいズレてしまいす。 原因として考えられるのは、その表には計算式が入っていて、 それぞれ小数点第2位、第3位までの他セルを参照して計算が入っています。 │A ┼─ │11.1←2.314*1.050*4.55(四捨五入) ┼─ │3.5 ┼─ │5.6 ┼─ │・ ・ ・ (↑合計。0.1〜0.2多くなる) 多分、表示されていない小数点第2位3位まで計算に入れてしまっていると 思うのですが(ちなみにROUNDDOWN,1にしてもダメでした) セル「A」の小数点第1位以下の数字は一切無視して、 見た目の数字をそのまま計算するにはどうすればいいですか?
604 :
名無しさん@そうだ選挙にいこう :04/09/10 09:31
605 :
名無しさん@そうだ選挙にいこう :04/09/10 09:46
>>604 それでもダメでした・・(+д+)
小数点の値が変わってしまいます。。。
最初のA1の関数の式でINT使ってもダメ?
=ROUND(現在の数式,1) A1を上の式では?
>>603 10倍したやつの整数部分のみ合計して10で割る。
>>608 A2に「=INT(元の式*10)/10」
これでいいでしょうか?
610 :
名無しさん@そうだ選挙にいこう :04/09/10 10:13
>>606 多すぎる引数がどうの〜というエラーが出ました・・
>>607 もともとセルに入っている関数の部分はROUND設定にしてます。。
>>608-609 ちょっと急ぎの用終わってからやってみます!
うわぁ〜 何やってもだめですた。 解答&アドバイスくれた方、ありがとです。 とりあえず、合計は手で入れることにしました(゚ε゚;)
ツール⇒オプションで「表示桁数で計算」ってあるよ。
613 :
名無しさん@そうだ選挙にいこう :04/09/10 14:12
excel97です。 a1に12:00 a2に15:00 がはいっています。 a3にa1とa2を〜でつなげて 12:00〜15:00 と、出したいのですが、シリアル値で表示されてしまします。 どなたか解決策おねがいします。
>>613 =TEXT(A1,"h:mm") & "〜" & TEXT(A2,"h:mm")
615 :
名無しさん@そうだ選挙にいこう :04/09/10 17:38:02
EXCEL2002です。 ブック内の全シートのレイアウトを、機械的に整えるためのツールとして、 以下のようなVBAソースを作成しました。 当初、ユーザフォームにコマンドボタンをひとつだけ配置、そのコマンドボタンを クリックすると処理実行、という形式でうまくいってたのですが、使い勝手の点から、 シートにコマンドボタンをひとつ配置して、そのシートをレイアウトを整えたい ブックにコピーし、ボタンをクリックしたらレイアウト成形処理が走るような つくりに改めたところ、実行時エラー1004(RangeクラスのSelectメソッドが失敗しました)が 発生してしまうようになりました。 どなたか、このエラーの解消方法をご存じないでしょうか? ====================== Option Explicit Const cstrSheetName As String = "レイアウトツール" Private Sub cmdLayout_Click() Dim wsSheets As Worksheet For Each wsSheets In Worksheets If wsSheets.Name <> cstrSheetName Then wsSheets.Select Rows("1:1").Select ←ココで実行時エラー発生 (レイアウト成形処理) endif Next wsSheets End Sub
>>615 非表示のシートを選択しようとしてるとかなのかなぁ?
617 :
615 :04/09/10 17:58:59
>>616 いえ、非表示も保護もなにもしてないシートです。
ユーザフォームのコマンドボタンから同じ処理をしていたときはうまくいったんですが
シートのコマンドボタンからの処理にしたとたん、エラーが出るようになってしまいました
標準モジュールにPublic Subで書くとか
>>615 Rows("1:1").Select => wsSheets.Rows("1:1").Select
でドウだろう?
620 :
615 :04/09/10 18:10:11
>>618 !!(゚д゚)
標準モジュールにしたらうまくいきました、ありがとうございました。
もうちょっといろいろ機能つけなきゃならなくなっちゃった
ザンギョウガンバロウ(´・ω・`)
621 :
615 :04/09/10 18:10:52
>>619 おお、それも試してみます。ありがとうです。
622 :
615 :04/09/10 18:15:13
>>619 標準モジュールに分けなくてもうまくいきました
回答くださったみなさま、ありがとうございました。
623 :
名無しさん@そうだ選挙にいこう :04/09/10 23:17:38
お尋ねします。マクロ初心者です。 A1からZ50くらいの表があってそこのA1からZ50まで選択したいのですが どのようにすればいいのでしょうか? A1とZ(幅)は固定ですが、縦の50(データ数)は毎回変わります。 選択した後フィルタで検索かける予定です。 選択のしかたがわからず困っています。 どなたかよろしくお願いします。
>>623 cells、rangeでぐぐって勉強汁!
625 :
名無しさん@そうだ選挙にいこう :04/09/11 02:17:36
選択した範囲、またはシート全部の行と列を一気に入れ替える方法ってありますか? 横方向に時間、縦方向に点数を入れた表を作ったんですが、思った以上に横方向に 表が伸びてしまい、行と列を入れ替えたいんです。
626 :
名無しさん@そうだ選挙にいこう :04/09/11 04:16:39
>>625 コピーし、
形式を選択してペースト...で行列を入れ替えるをチェック。
これもよく出るから、次からFAQに入れた方がいいかもね。
627 :
623 :04/09/11 09:05:57
>>624 もちろんおうかがいする前に一通り検索しました。
初級のものには固定の範囲の選択しかなかったのでわかりません。
A1・Z50と固定されているときはrange・selectを使って出来るのですが
毎日同じ作業を繰り返す上でデータ量が変わるのでz50と固定できません。
今日はZ50でも明日はZ55だったり、Z45だったりします。
選択範囲に空白行があるとその後の検索に差し障るためZ100など
大きな値での固定でもダメです。
毎回範囲の変わる表のはじっこまで選んでほしいんです。
どうか、教えてください。
628 :
名無しさん@そうだ選挙にいこう :04/09/11 09:29:54
range("a1").end(xldown) とかじゃあかんの?
629 :
名無しさん@そうだ選挙にいこう :04/09/11 09:51:05
乙 OFFICE2000です VBAでCELLSなどでシートにカキコした時の遅延が非常に大きいようです。 シートからの取り込みは早いようです。 カキコ速度の改善は出来ますか? (CNTLキー押すと早くなったりするけど、そういうのは無し)
>>627 Range("A1").CurrentRegion.Select
>>627 > 初級のものには固定の範囲の選択しかなかったのでわかりません。
固定の範囲を変数で与えてあげるとか少し手を加えればできないかな?
>629 書き込む描写に時間が掛かっているなら、 Application.ScreenUpdating = False '画面更新しない 'ここに書き込み処理 Application.ScreenUpdating = True '画面更新する で、多少はマシかと思うが、どーよ?
>>628 、
>>630 、
>>631 教えてくださってありがとうございました。
CurrentRegionを使ってできました!
苦戦していたので大変助かりました。
634 :
名無しさん@そうだ選挙にいこう :04/09/11 11:35:40
マイクロソフトエクセルで リスト作成したいんです。 例えば お買い物リストで ○○○|1個|500円|補足メモ こんな感じで。 どうやって作ればいいのか教えてください。 あるいは、初心者でもできる、フリーのリスト作成ソフトでお勧めはないでしょうか。
そのまま、セルに一行一件で入力していけばヨロシ。 一行目には項目名を書いておいたほうがよいね。 やってみて機能を追加したくなったら、具体的にまた相談くれば?
>>634 本屋でエクセルの入門書を買ってきなさい。
ダイソーのでもいい。
絶対に買いなさい。
母は恥をかきました。
河童の川流れは楽しそうに遊んでいる姿ではありません。
637 :
名無しさん@そうだ選挙にいこう :04/09/11 12:41:13
改行はできないのですか? 完成したリストをファイル保存するにはどうやればいいのですか? winxpです。 エクセルは2001年以前頃のバージョンです。
>>637 持ってるならまず動かせよヴァカ。
自分がいかにトチ狂った質問してるかよく分かるから。
640 :
名無しさん@そうだ選挙にいこう :04/09/11 13:20:14
質問です。 A列・B列に数字の値が入っていてC列に計算式が入っています。 例えばc1には=a1×b1、c2には=A2×B2、のようにc100くらいまで。 b1の値を削除するとb1にもともとB2にあった値がきて、B2には元b3の値、・・・ というように上にひとマス上がりますよね。 そのとき、c列もB列の変更にあわせて変わります。 例えばC2だったら=A2×b1のようになります。 b列をひとマス削除してもC列がそのまま(C2は=A2×B2のまま)にしたいのですが どのようにすればいいでしょうか? 新たに書き直す方法もありますが何回もb列を削除する作業を繰り返すため面倒です。 どなたか教えてください。
=INDIRECT("A"&ROW())*INDIRECT("B"&ROW())
↑ という方法もあるが ずりっとオートフィルすれば済む話。
削除じゃなくてクリアとか1つセルをずらしてコピペするとか・・・
切り取って張れば良いんじゃないの?
質問1.複数選択したデータを連続印刷させる方法を教えてください。 台帳,見積書というシートを作成しました。 台帳シートにはA列に○を入れるとその行が1行目にVLOOKUPで表示されるようにしています。 見積書シートは台帳シートの一行目のそれぞれのセルを必要箇所にリンク貼付しました。 で、過去ログを探ってVBAで以下のコードを貼り付け実行したところ ひとつだけ○で選択した場合は上手く印刷されたのですが 複数選択すると選択した一番上のデータが選択した数だけ印刷されてしまいます。 どうしたら選択したものすべて印刷されるのでしょうか? Sub 見積印刷() Const strInputSh As String = "台帳" Const strPrintSh As String = "見積書" Dim i As Long For i = 2 To Worksheets(strInputSh).Range("A65536").End(xlUp).Row With Worksheets(strPrintSh) .Range("A1") = i - 1 .PrintOut End With Next i End Sub
質問2. 台帳1月分,台帳2月分,台帳3月分とデータが入力されるシート3つに対して 見積書シート(印刷用フォーマット)1つにデータを代入させたり 印刷することは可能ですか?
こたえてくださった方々ありがとうございました。 642さんの方法で無事解決できました
650 :
名無しさん@そうだ選挙にいこう :04/09/11 18:04:41
エクセル97です オブジェクトの数式3、0を使っているのですが、 スタイルの定義の初期値が分からずにぐちゃぐちゃに表示されてしまいます。 どなたか初期値を教えていただけないでしょうか?
自分も数少なくなった97の生き残りだから 力になってやりたいが、 「オブジェクトの数式3、0」の意味がわかりましぇん。 それって何?
652 :
650 :04/09/11 18:22:42
エクセルの画面から、 挿入→オブジェクト→新規作成の一覧の中に数式3.0を選ぶ。 上記の状態で、 スタイル→スタイルの定義 を、選んで、文字列から番号までのフォントと文字書式がしりたいのです。 友人のエクセル97には、数式3.0は無かったので、全ての97には入っているとは限らないようなのですが。 よろしくお願いします。
>>652 うちのエクセルのも数式3.0は無いです。
グレードの違いでしょうか?
それともアドイン?
お力になれなくて済みません。
>>652 えーと、初めて使うから多分デフォだと思う。
文字列 TimesNewRoman
かな漢字 MS 明朝
関数 TimesNewRoman
変数 TimesNewRoman
小文字の〜 Symbol
大文字の〜 Symbol
シンボル Symbol
行列-ベクトル TimesNewRoman
番号 TimesNewRoman
うちは2002だけど、訳あってVB4.0とVB6.0が入ってる。
それは関係あるかな?
655 :
名無しさん@そうだ選挙にいこう :04/09/11 18:46:10
excel2002です。 麻雀の点数表を作っています。 A B C D 1 鈴木 高橋 田中 佐藤 2 -50 -10 -5 +65 3 +15 -40 +35 -10 4 ・ ・ ・ ・ 5 ・ ・ ・ ・ 6 ・ ・ ・ ・ 7 ・ ・ ・ ・ のように入力しています。(実際には人数はもっといます。) ここで、得意な相手・苦手な相手を集計したいのですがなかなか上手くいきません。 得意な相手:自分がトップの時の最下位の人 苦手な相手:自分が最下位の時のトップの人 IF関数とMAX、MIN関数を組み合わせれば『トップの時の最下位の点数』なら出るのですが、 名前となると上手くいかなくて・・・ どなたかいい知恵いただけませんでしょうか。
>>654 文字書式のチェックボックスのところ忘れてた
【行列-ベクトル】のところの【太字】の項目と
【変数】と【小文字のギリシャ文字】のところの【斜体】の項目の計3ヶ所にチェックが入ってる。
>>655 >IF関数とMAX、MIN関数を組み合わせれば『トップの時の最下位の点数』なら出るのですが、
それにMATCH関数で、最下位点数がその回の何列(行)目がを出して、
さらにINDEX関数を用いて、名前行の何列目の文字を取り出す。
658 :
名無しさん@そうだ選挙にいこう :04/09/11 19:03:59
オートフィルタで絞ったデータを、フィルタがかかったまま、 隣の列にコピーするにはどうしたらいいですか? そのままコピペすると、フィルタがかかってない状態で 貼り付けたようになってしまいます。。
範囲選択-編集-ジャンプ-セル選択-可視セル
660 :
名無しさん@そうだ選挙にいこう :04/09/11 20:28:42
>>659 私は658ではありませんが、教えてください。
659の操作はいつ行うのですか?
フィルタリングされたものだけコピーすることは可能なのですが、貼り付けが上手く出来ません。
659を貼り付け時に実行すると「そのコマンドは複数の選択範囲に対して実行できません」とカイルに言われます。
Excel2002。
データ整理にマクロを適用して効率化させたいのですが データのある最後の行(Xとする)を記録して、 以後、そのXを関数やフィルタの選択範囲に適用させることってできませんか? データが何行だろうとマクロを正しく動作できるようにしたいんです。
選択してセルの右下角を隣のセルにドラッグ
>661 リストの途中に中抜けがあり得るか無いかなどで 最終行の取得にも色々な方法がある。 Excel 最終行の取得」あたりでぐぐって見るとよし。
>>662 ありがとう。
隣接していることが条件になるのですね?
?
666 :
629 :04/09/12 08:11:38
>>632 遅レスになりましたが情報サンクスです。
これから試してみます。
ホントにありがとうです。
667 :
名無しさん@そうだ選挙にいこう :04/09/12 09:52:51
A1からA列のあるセルまでデータが入力されてるんですが、途中に 空白があれば"●"、なければ"○"をB1に表示したいのですが、 どういう式を書けばいいですか?
>>667 行数とデータをcountしたのを比べれ。
>>660 自分が考えていつもやってるのは、以下の通りです。
フィルタリングしたコピー元をA列、コピー先をB列として、
絞られたB列一番上がB1だったら、B1に「=A1」と数式を入れ、下までフィル。
それをコピー→値で貼り付け。
パッとコピペする方法があれば楽なんでしょうけどねぇ。。
しかしプログラマからの流れの人が多いのか、VBA関係はレスつきやすいけど、
実務的な操作方法系にはレスつきづらいっすねぇ。。
670 :
667 :04/09/12 10:24:50
>>668 デー多数は=COUNTA(A:A)ででますが、行数は不定なんです。
どうしたらいいでつか?
671 :
名無しさん@そうだ選挙にいこう :04/09/12 10:34:57
クリップアートで絵を取り込み その絵に文字を入れたり・消したり(編集) する事は、可能でしょうか? 可能であれば、方法を教えて下さい
672 :
671 :04/09/12 10:40:12
補足 取り込んだ絵を加工して 絵の中に文字を入れたいんです
>>670 最後の1行が空いてた場合はどう判断すればいい?
>>674 ああ、ごめんなさい。レス見逃してました。
隣じゃない場合は無理ですか?
隣に列挿を入して実行後、フィルタを解除したときに列をカットアンドペーストするなりして移動すれば良いだけでは?
それがマンドクサイんですけど、それしかないですよね。。 ありがとう。
次々と条件出してくるんだね
なんか自演の臭いがする
>>667 =IF(MAX(IF(COUNTIF(A:A,"*"),MATCH("",A:A,-1)),
IF(COUNT(A:A),MATCH(MAX(A:A)+1,A:A,1)))=COUNTA(A:A),"○","●")
681 :
667 :04/09/12 12:44:59
>673
途中空白じゃないので"○"です。
>>680 出来ました!
だけど難しいですね。もう少し簡単な式にならないでしょうか?
>>681 A列が文字列限定で、何も入力されてない時のエラーを無視するなら
=IF(MATCH("",A:A,-1)=COUNTA(A:A),"○","●")
に出来ます。
683 :
打打 :04/09/12 12:56:56
よろしくおねがいします。 年月に合わせて途中の列を自動で削除したり表示したりするには、どうしたら良いですか? 例えば、20日締めで去年の2月なら29・30・31日は、表示したくないので列ごと全てのセルを自動で消したい場合等。 年数と月を入力すると自動で曜日が入るのは関数で出来ましたが上記の場合(列1)27・28・29・30・31・1・2・3日ときたら(列2)木・金・土・日・月・土・日・月となってしまう為29・30・31日は、紛らわしいので年月を入力したら、自動で列ごと削除出来ないでしょうか? もちろん反対の場合もありますので削除では、なくセル幅が0に縮む方がいいかも知れません。
シート構造が見えない…
685 :
打打 :04/09/12 13:07:31
横に日にちで21日〜よく月の20日までです。
686 :
打打 :04/09/12 13:25:36
少し複雑なマクロになりそうで分かりません。 セルA2B2C2D2E2F2G2H2I2J2K2L2N2M2O2P2Q2R2S2T2U2V2W2X2Y2Z2AA2AB2AC2AD2AE2 内容2122232425262728293031 1 2 3 4 5 6 7 8 9101112131415 16 17 18 19 20 上記のような感じで1行目には、年月の入力によって自動で曜日が入力されます。 しかし去年の2月の場合293031は・・・
日付や=A1+1みたいなのをオートフィルさせて表示形式で調整すれば683みたいな事にならないと思うんだけど おれなんか勘違いしてるのかなぁ
>>686 A2に「2004/2/20」、またはB2に「=A1+1」
A2セル(またはの場合はB2セル)の右下角(マウスポインタが+状になったところ)を右側にズズズズーと引っぱる
A3に=A2 これも横にズズズズー
で2行目を選択状態にして右クリック>セルの書式設定>表示形式タブ>ユーザー定義で「dd」
3行目を選択状態にして右クリック>セルの書式設定>表示形式タブ>ユーザー定義で「aaa」
みたいな感じにすればいんじゃ
689 :
打打 :04/09/12 13:40:33
690 :
打打 :04/09/12 14:04:16
情報を小出しにする馬鹿には答えること無いと思うよ。
692 :
名無しさん@そうだ選挙にいこう :04/09/12 14:25:08
別スレッドから移動してきました Win98を遣っています。 エクセル(2000)において「セルの色の検索」はできるのでしょうか? (ある色に塗りつぶしてあるセルだけを拾うこと) 方法をご存知の方、教えてください。 できれば、ファイル全体分を一発で検索できる方法をお願いします。 (会社のマシン(XP)で作業するので、マクロをインストール、という方法は避けたいです) #2002だと色の置換までできるらしいですが、、、
>>692 お前、いろんなスレでマルチしてるんだな・・・
>>667 文字と数値どちらにも対応させるなら、
=IF(COUNTA(A:A)=COUNTA(A1:INDEX(A:A,COUNTA(A:A))),"○","●")
=IF(COUNTBLANK(A1:INDEX(A:A,COUNTA(A:A))),"●","○")
等でいんじゃないのかい?
>>692 Sub test()
Dim c As Range
Application.ScreenUpdating = False
For Each c In ActiveSheet.UsedRange
With c.Font
If .Color = vbRed Then .Italic = True
End With
Next
Application.ScreenUpdating = True
End Sub
>>692 セルの色の検索はDQNがよくやること。
データはデータとして持つべきだよ。
Excel2002にFindFormatなんてのがあるが、なんでDQNの要望を聞いてそんな機能を付けたのか。
Microsoftも馬鹿だね。
使い方なんて人それぞれなんだから、 別に構わないと思うけどな・・・
>>689 発想の転換はどうでしょうか?
セルを削除する → セルをグレーで塗りつぶす or 日付と曜日を表示しない など
あるいは、688サンの形で、表の右側の21日以降の分は欄を余らせて非表示にする。
フィルタをI列からM列に適用したいです。 (オプションで重複するレコードは無視) 行は、自動的に最終行までフィルタの対象になるようにさせたい のですが、マクロでの記述法を教えてください。
700 :
名無しさん@そうだ選挙にいこう :04/09/12 18:59:25
700
701 :
名無しさん@そうだ選挙にいこう :04/09/12 21:20:22
A,B,C,D,E列にデータがあって F列に同じデータ(A〜Eが全て同じ)が何行あるか、その回数を入れたいのですが どういう風に記述すればよろしいですか?
>>701 「その回数」ってなんですか?
具体的に、データがどういう風に入っていて、
どこにどう「その回数」を表示したいのか書いてください。
703 :
701 :04/09/12 22:27:41
例えば、A列に性別、Bに年齢、Cに出身、Dに職業、Eに趣味の記入された 数千行のデータがあるとして、最初の行が A2=男、B2=20、C2=大阪、D2=学生、E2=野球 だったとする。このデータとまったく同じ行が数千行の中で いくつあるか?もし、これと同じ行が他に6行あるなら F2=7 と、させたいです。 どなたかよろしくお願いします。
>>703 G列を作業列にして、G2に =A2&B2&C2&D2&E2 と入力して
G2の式をG3以下にコピー。
F2に =COUNTIF(G:G,G2) と入力する。
あとはG列を非表示(列幅0)にすればいいかと。
705 :
名無しさん@そうだ選挙にいこう :04/09/13 00:17:06
エクセルでひとつのセルに 東北支社 江口 といれたいのですが 東北支 社江口 となってしまいます どうしたらいいですか・
東北支社[alt]+[enter]江口と入力する 列幅を調節する。
>>705 単に改行したくないだけなら、
そのセルを選択→Ctrl+1→配置タブ→折り返して全体を表示する
のチェックを外す。
集計などでグループごとに改ページを入れたときに 普通はデータのある行までしか罫線(枠線)が表示されずに 残りはただの空白になってしまいます。 ページのデータのない余った部分にも自動的に枠線を入れる方法はないでしょうか? ページ数が少なければ手作業で入れるのですが・・
710 :
エクセル2003 :04/09/13 16:58:59
メールアドレスを貼り付けると、リンクになってしまいます いちいちのそのセルの形式にあわせるボタンを押すか 右クリックてハイパーリンク削除してます コピペしたときからいきなりリンク無しはできますか? 頭が低レベルで本よみましたがわかりあmせん
>>710 ツール→オプション→スペルチェックの
「オートコレクトオプション」ってボタンを押し
「入力オートフォーマット」タブの
「インターネットとネットワークのアドレスをハイパーリンクに変更する」の
チェックをはずせばOK
マクロについて質問です。 表の下にコピーしたものを貼り付けたいのですが 表の大きさが毎回変わるので貼り付ける場所をなんと書けばいいのかわかりません なんとかけばいいのでしょうか? よろしくお願いします。
710と同じ事をするのに、Excel2000の場合はどうなりますか?
>712 行数が可変の表の下に、別のものを貼り付けしたいなら 'A列最終行のひとつ下を選ぶ Range("A1").End(xlDown).Offset(1,0).Select これで貼り付け位置出せるんじゃないの?
716 :
名無しさん@そうだ選挙にいこう :04/09/13 22:08:49
外部データの取り込みで Accessのテーブルからリンクしているんですが 元になっている、Accessファイルのパスはどうやって 確認することができるのでしょうか? Accessファイルの場所を変更しようと思っているのですが 変更する際に、パスも書き換えないといけないと思いまして・・・
717 :
名無しさん@そうだ選挙にいこう :04/09/13 23:21:15
標準モジュールに記述した内容を全てのBookに適用したいのですが、 Microsoft Visual Basicでどのように保存すればよいのでしょうか? 宜しくお願いします。
>>716 よくわからんがエクセルは
どこにファイルがあるかは知らないんじゃないか?
ODBCとかでかえられないかなあ?
家に帰ったら試してみよっと。
720 :
667 :04/09/13 23:42:15
>>682 >>694 ありがd。
682の意味がわかったので、ついでに680も理解できますた。
694はなんで答えがでるか頭をひねっています。
VBAを教えてください。2000です。 オートフィルタで抽出された行を削除したい場合のコードを教えて下さい。 Range("a1").CurrentRegion.AutoFilter field:=2, Criteria1:="4" この後の行の削除の仕方。 あくまでも、オートフィルタ抽出後の削除という前提でお願いします。
自己解決しました。 失礼しました
>>722 どう解決したかよければ教えてください。
>723 Sheet1.AutoFilter.Range.Offset(1, 0).EntireRow.Delete です。 間違いでしたらご指摘下さい。
'2002なんですけど、 Sub Macro1 Worksheets("Sheet1").Range("a1").Select :'を実行すると End Sub '実行時エラー1004が発生。バグですか? 'ちなみに新しいファイルでそれをやると普通に成功 'シート名が違うわけではありません。
726 :
名無しさん@そうだ選挙にいこう :04/09/14 14:54:48
>725 2002持ってないからわからないけど、 Sheet1がActiveな状態じゃないからじゃなーい? Sub Macro1() Worksheets("Sheet1").Activate Range("a1").Select End Sub でどう?
>>726 そのようでした。
ありがとうございました
グラフについてですれども、 3列のデータがありまして、 1列目に x 2列目に y 3列目に z て感じです。 それで z = f(x,y) の3次元グラフを等高線のように描きたいんですが どうしたらいいでしょうか? お願いします。
>>728 最近のバージョンだとわからないけど、
2000ではXY平面を散布図にすることはできなくて、
XかYの系列にして(データのないところは補完するなどして)から
作図するしかないみたい。
730 :
名無しさん@そうだ選挙にいこう :04/09/15 06:50:28
あの、営業の成績を付けているのを、パソコンで管理したいと思ってるんですが、 20人ぐらいの売り上げを入力したら、一番売り上げた人は50ポイント、 二位は30ポイントなど自動的に出るようにするのは エクセルで出来るのですか?
できる。 IF関数とか
732 :
名無しさん@そうだ選挙にいこう :04/09/15 09:03:49
一昨日14MB 昨日、24MB 本日、56MB ありえないスピードでファイルサイズが増えています。 もち、そんな量のデータは追加していません。 セルの右端にはまだ余裕があるのに行追加コピーが出来ないのですが、 なにか因果関係があるのでしょうか? VBAでデータは追加されていますが56MBなんて・・・
>>731 ありがとうございました!
RANKとIFだけで超簡単でした。
本当に感謝です!!
>>732 ファイルをアップするか、
もっと詳しく説明してくれないと誰も答えることが出来ないよ。
736 :
名無しさん@そうだ選挙にいこう :04/09/15 13:48:12
737 :
名無しさん@そうだ選挙にいこう :04/09/15 13:56:58
738 :
名無しさん@そうだ選挙にいこう :04/09/15 14:38:09
>>734 アップしろ言われてもプライベート情報満載やし・・
>>732 Excel2000ですけど、リンク先の内容に酷似している気がしますね。
少し様子を見てみます。
どもです。
>>738 マクロを無効にして上書き保存すると小さくなることがある
喪前のケースではどうか知らんが
Windows2000で使ってます。 PCが固まって強制終了もできないので電源を落として再起動して開いてみたら 「テキスト(タブ区切り)(*.txt)」という形式で保存されていました。 元の形式には戻せないですよね…
>>743 ありがとうございます
同じフォルダに拡張子のないファイルがあったので、
それをエクセルで開いたらバックアップでした。
お騒がせしました
745 :
名無しさん@そうだ選挙にいこう :04/09/15 22:24:36
どなたか断言してください。 おながいします。 エクセルは割り算の結果が割り切れなかったり循環小数だったりすると、15桁までしか計算しないんでしょうか?
746 :
名無しさん@そうだ選挙にいこう :04/09/15 22:25:14
あ、15桁ってのは小数点以下です。
excelというより浮動小数(2進)の丸めの問題です doubleは8バイトで制度は15桁になります
748 :
よろしくお願いします。 :04/09/16 00:28:14
質問があります。 セル内の文字列を検索し、"AAA"という文字があったら別の作業セルに Aを表示、"BBB"という文字列があったら"B"と表示させるにはどう書けば よろしいでしょうか。。よろしくお願いします。
>>748 それは、
AAAがあったらA
BBBがあったらB
↓
ZZZがあったらZ
と続いていくの?
751 :
名無しさん@そうだ選挙にいこう :04/09/16 09:29:57
エクセルで作ったデータをワードで差し込み印字をしたいのです。 例えば、ワードの文書1ページにAとBの差込箇所があり、 そのAにはエクセルの1行目のデータを、Bには2行目のデータを 印字するには、どうしたらいいのでしょうか? 試してみたところ、ABともに1行目のデータが差し込まれてしまい、 困っています。 よろしくお願いします。
752 :
名無しさん@そうだ選挙にいこう :04/09/16 11:20:32
EXCELに 1000 1001 1002 1003 という文字列が縦に表示されたとします。 そして、次のエクセルに 1000 1001 1002 1003 1004 1005 という文字列が縦に表示されたとします。 つまり、1004と1005という文字列が加算されたのですが、 この増えた分の文字列だけを簡単に抜き出す方法はあるでしょうか? つまり、古いエクセルと新しいエクセルから、 新しく増えた分だけを抜き出す方法を探しています。 どうか、どうか、お助けを。
>751 列と行を入れ替える
755 :
名無しさん@そうだ選挙にいこう :04/09/16 12:30:22
>>749-750 レスありがとうございます。
セル内に
AAA,BBBBの文字列があればそれを抽出して作業セルに表示する。
AAA,BBBB以外の文字列であれば「その他」を表示する。
IF文で以下のように書いたのですが、うまくいきませんでした。。
=IF(FIND("AAA",A1),"AAA",IF(FIND("BBBB",A1),"BBBB"),"その他")))
どうか宜しくお願いします。
>755 閉じカッコが2つ多い。 AAAが見つからないとエラーになってBBBBを探さない。 =IF(ISERROR(FIND("AAA",A1)),IF(ISERROR(FIND("BBBB",A1)),"その他","BBBB"),"AAA")
757 :
752 :04/09/16 13:57:07
補足 EXCELに 1000 1001 1002 1003 という文字列が縦に表示されたとします。 そして、次のエクセルに 1000 1001 1002 1003 1004 1005 という文字列が縦に表示されたとします。 つまり、1004と1005という文字列が加算されたのですが、 この増えた分の文字列だけを簡単に抜き出す方法はあるでしょうか? つまり、古いエクセルと新しいエクセルから、 新しく増えた分だけを抜き出す方法を探しています。 抜き出すとは、新しく追加された行だけを、新しいエクセルに 出力表示させる方法を探しています。 それは無理でしょうか?
ウィンドウを元のサイズに戻す で、作業ウィンドウがデスクトップの外に行っちゃいました。 どうしたら画面内に戻せますか?助けてください
>>759 タスクバーの上で、右クリ「移動」を選択。
あとはキーボードの矢印キーで好きな位置に移動できる。
>>756 早速のご回答、本当にありがとうございました。
助かりました。
>760 早速のアドバイスありがてうございます。 しかしそれでは親ウィンドウ(Excel本体)の移動になり 作業ウィンドウ(ファイル)は相変わらず行方不明です。 二つ以上のファイルを開くとWindowsのタスクバーでは移動できないし… (別ファイルを見ながら作業したい) 関係ないと思いますがWin2KExcel2Kです
764 :
名無しさん@そうだ選挙にいこう :04/09/16 17:04:15
集計表を作ってて毎日入力する項目を「消去」ボタンみたいなのを作って それを押すだけで入力する項目範囲を消したいのですが、こういったことは可能でしょうか?
>>765 具体的にどういう風に作ればいいか教えてもらえると助かります。
消したい範囲をA1:A2だとします。 マクロを作ります Sub 消去 Range("A1:A2")="" End Sub 次にボタンを登録します。 メニュー(Alt)-表示(V)-ツールバー(T)-ユーザー設定(C) ユーザー設定のフォームが表示されます。分類のリストボックス内にある マクロを選びます。コマンドのリストボックスにあるユーザー設定ボタンを ツールバーなどにドラッグします フォームを閉じて、ドラッグしたニコニコマークを右クリックします。 マクロの登録フォームが表示されるので、消去のマクロを登録します。 ニコニコマークを変えたい場合は、ユーザー設定のフォームが表示されている ときにニコニコマークを左クリックするとボタン イメージの編集をクリックします。
>>767 うまく作ることができました。
ありがとうございました。
>762 画面のプロパティで解像度を目一杯上げてみると 端っこに現れる場合もあるかも知れない。
すいません、もう一つ教えてください。 さっき作った「消去」ボタンをセル上に配置するにはどのようにすればいいですか?
>>762 Ctrl+F7>←↑↓→キーで画面内に持ってくる
>>770 ツールバーにボタンを作りたいなんて質問じゃありませんでしたね。失礼しました。
セル上にボタンを配置するには
ツールバーのユーザーフォームかコントロールツールボックスにあるボタンコマンドボタンを作成し、マクロを登録します。
他にテキストボックスなどもボタンに使えます。
おせっかいかもしれませんがマクロにApplication.Onkey"{f1}","消去"と記入して実行すると
F1キーで実行できます。
>>772 ボタン作成できました。度々ありがとうございます。
会社でパソコン操作が不慣れな人向けに簡単にできないかなと思って
視覚的に見えた方がわかりやすいかなと。
ボタンの方がありがたいみたいです。
データは30個程度しかないのに いつの間にか行数が65536まで表示されるようになってます。 スクロールバーが小さくて使射つらいです。どうしたらなおるでしょうか?
>763 >771 ありがとうございました。おかげでウインドウが帰ってきました。 ウインドウの整列なんて万里なのがあったんですね…いままで手であわせてました
776 :
746 :04/09/16 20:59:03
>>747 ご回答ありがとうございます。
しかしイマイチよくわかっておりません。
つまるところ、小数点以下はとにかく15桁どまりと、
そういうことでいいのでしょうかっ。
>>776 そうでつ。
直接入力しても点以下15位までしか保持されません。
小数点以下の表示桁数を増やしても、それ以降は0000…が並ぶだけ
>>777 ありがとうございますた!
自信をもって関数組み込むことにします!
779 :
名無しさん@そうだ選挙にいこう :04/09/16 22:16:52
オートシェイプで正方形を書きました。
書式設定のサイズで1センチを指定したのですが
印刷すると8.5ミリくらいになります。
これも
>>4 と同じ弱点になるのでしょうか?
780 :
名無しさん@そうだ選挙にいこう :04/09/16 22:34:55
VBAでactivateとselectの違いを教えてください。 おねがいします。
>>780 「activate select 違い」 ググれ。
>>781 ワークシートを普通に使って、「A1:E10」と範囲指定したとする。
この時、10行*5列のエリア(「A1:E10」)が選択されている→select
その中でも「A1」セルだけが入力可能な状態になっている→activate
783 :
よろしくお願いします。 :04/09/17 01:41:29
>>756 さんへ
教わった方法で実行したところ上手くいきましたが、、
条件が増え、IF文のネストが7つ以上になってしまいました。。
他の書き方はないでしょうか??
検索する文字列 表示する文字列
AAA AAA
BBB BBBB
CCC CCC
DDD aaa
という対応表を作成し、VLOOKUPを使えばよいでしょうか??
ヒントだけでもお願いいたします。
>>783 個人とのやりとりはメール使って欲しい
せっかくの掲示板なんだから・・・
787 :
名無しさん@そうだ選挙にいこう :04/09/17 10:28:15
「セルの書式が多すぎるため、書式を追加できません」というダイアログでエラーが出て、ファイルを正常に開くことができません。 以前、その「書式オーバーの状態」で保存されてしまったようで、まともに開くことができません。 他のサイトで検索しても、「書式を減らす」という書式を追加できないことについての措置で、ファイルを正常に開き直すことへの対処策ではなかったため、紹介された方法を試すことすらできませんでした。 一応修復モードで開きはするのですが、書式が全滅でどうしようもありません。 シートごととかにしてとりだすこととか、何かに変換するとかなんとかならないものでしょうか。 以前、エクセルの書式だけけすみたいな、DOSモードのツールがあったような気がするのですが。
オートフォーマット−書式削除
789 :
名無しさん@そうだ選挙にいこう :04/09/17 14:47:50
>>788 正常に開けている状態でなら、その方法も有効だったかもしれませんが、今となっては正常に開くことすらできないのです。
指定のセルの内容によって別のシートに列を複写ってできますか?
796 :
名無しさん@そうだ選挙にいこう :04/09/18 00:18:38
よろしくお願いします。 エクセルやワードのサービスパックが貸し借りされているものかどうかを 添付している書類から割り出す方法はありますか?
798 :
796 :04/09/18 00:23:28
マルチではありません。誘導されました。
>>798 誘導されたと一言書いた方がいいよ。
貸し借りってどういうこと?
ライセンスが不正かどうか調べたいってこと?
SP自体はただの修正プログラムをまとめたものだから、
適用されたかどうかしか分からない。
800 :
798 :04/09/18 00:43:22
会社のパソコンに付属していたオフィスXPパーソナルのソフトを勝手に 持ち帰った人がいて困っているんです。書類のやり取りしている添付ファイルから 誰か割り出せないかと。
801 :
名無しさん@そうだ選挙にいこう :04/09/18 00:52:45
Excelのグラフでボーダーラインを引く事はできますか? 例えばX軸で日付、Y軸で体重を示す折れ線グラフで 体重がボーダーラインを超えるか越えないかを一目でわかるようにしたいんです。 ボーダーラインとなる体重の値は、他のセルを参照するようにして 動的に変更できればいいのですが。
802 :
名無しさん@そうだ選挙にいこう :04/09/18 11:14:13
セル内で改行して、次の文を書きたいのですが・・・どうしればいいのでしょう?
>>802 セルの書式設定の配置で「折り返して全体を表示する」にチェック
805 :
名無しさん@そうだ選挙にいこう :04/09/18 13:43:24
>803 2点 >804 100点
ALT+ENTERは素人から見れば神業らしいよ 俺はこれを知っていたために職場でExcelの神と言われている
>>801 ボーダーラインが定数の場合はグラフの数値軸-軸の書式設定-目盛タブ-X/項目軸との交点
の値がボーダーラインになる。
マクロを使うと
With Application
.ScreenUpdating = False
.ActiveSheet.ChartObjects("グラフ 1").Activate
With ActiveChart.Axes(xlValue)
.CrossesAt = 1 '←ここに目的の値や数式を代入
End With
End With
自動的にというのであればChangeイベントやOnkyeを使いましょう。
809 :
名無しさん@そうだ選挙にいこう :04/09/18 16:30:06
ものすごく基本的なことかもしれませんが、教えてください。 書式を標準ではなく、文字列をデフォルトでファイルを開く方法はありませんか? 090のような数値があると、標準で開くと90になってしまうので困っています。
>>807 入門書すら読まない社員もいるから・・・
M$の作ったヘルプは激しく出来が悪いというのもあるけどな一応。 検索とか駆使しても、どうでもいい基礎的な使い方が書いてあるだけで 問題解決に役立つ事は全く書いてなかったり。
改行したいとかは、ヘルプでも十分だとおもう。
>>814 DQNレベルの人間がヘルプで調べようなんて思うわけが無いだろ。
本来ヘルプはそういう人間が使うべきもんなんだろうけど。
816 :
名無しさん@そうだ選挙にいこう :04/09/18 18:16:52
>>813 やってみましたが、できませんでした。
ファイルを開くと標準で開いてしまいます。
090などのテキストファイルをエクセルで開くと
どうしても90になってしまいます。
頭文字の0を勝手に消さない設定にはできないでしょうか?
>>816 設定が間違ってるんじゃない?
ファイルアップしてくれたら、見るよ
そういうテキストファイルをExcelで読み込もうとすると、 テキストファイルウィザートとかが、起動しませんか? 区切り文字やセルの書式なんかを聞いてくるはずですが。
>>796 >>800 作成したファイルから一意のソフトウェアの特定をしたい、
と、受け取りましたが、これは無理です。
XPは、ネット認証だから インストール自体できないんじゃないかな
821 :
名無しさん@そうだ選挙にいこう :04/09/18 20:31:27
>>801 どの日付でも常に体重が同じであるような系列を作って、グラフに追加すればいいのでは?
その体重の値はセルを参照すればいいだけ。
822 :
名無しさん@そうだ選挙にいこう :04/09/19 00:52:48
セルに入力しようとしただけで、エラーで強制終了されてしまう。
823 :
名無しさん@そうだ選挙にいこう :04/09/19 01:55:24
ユーザーフォーム内のテキストボックスに、改行が入る文章は入力できないんでしょうか。 文章の途中でEnterを押すと入力が終わってしまいます。。。 Excel2003 WinXP-Homeです
824 :
名無しさん@そうだ選挙にいこう :04/09/19 02:01:21
↑テキストボックスのEnterKeyBehaviorプロパティをTrueにしてもダメでした 本にはそう書いてあったんですが・・・
>>825 できました!ありがとうございます
不親切な本だなぁ…
827 :
名無しさん@そうだ選挙にいこう :04/09/19 04:58:10
Private Sub CommandButton1_Click() UserForm1.Hide Worksheets("sheet1").PrintPreview End Sub プリントプレビューを表示中はユーザーフォームを隠し、プリントプレビューを閉じたら 再度表示させるようにしたいです。 シート1のコードに Private Sub Worksheet_Activate() UserForm1.Show vbModeless End Sub とかやってもダメだし、どうすればいいんでしょうか?
828 :
名無しさん@そうだ選挙にいこう :04/09/19 07:50:15
エクセル使いの人に聞きたいのですがこのコピペの意味がわかりません↓ 教えてエロい人 隣に座ってる係長が、部下からもらったExcelのシートを見ながら 「伊豆ナンバー」 「これも伊豆ナンバーで・・・」 「伊豆ナンバーばっかりだと冗長だな」 ってなことを30分くらい前からずーっとぶつぶつ繰り返している。 おれ静岡生まれだからものすごく気になってしまう。 伊豆ナンバーは確か平成18年から始まるナンバープレート。 どうせ係長だから次買う新車のリストでも見てるんだろうなぁー、 と思って、善意のつもりで 『伊豆ナンバーはまだ先ですよ?』 と伝えてみたところ、急に係長の口調が関西弁ぽく荒々しくなってしまった。 「ハァ? お前伊豆ナンバーでないと難しいの知らんのか」 『伊豆ナンバーはまだです』 「は? お前Excel知らんのか、資料買って読めよ!話ならん」 『えっ、いやExcel関係なくて、そんな、買うのと・・・』 いろいろ頑張って伝えようと試みるんですが 「買うんとちゃうんか!」 「買うんとでも行ける・・・か、いけるな、早よ言え」 と訳の分からない事を言いまくる。こういう上司ってどう思います?
関数のIsNUMBER
も一つ、COUNT関数ね。
>827 >プリントプレビューを閉じたら再度表示させるようにしたい そのままの順番で書けばいいのに、何で分けるのかね?
834 :
名無しさん@そうだ選挙にいこう :04/09/19 19:52:05
リーグ戦の星取り表みたいなの作りたいんですが,表の右上半分だけ書き込み可能にして,左下は右上の結果から自動的にアップデートするようにしたいんですが,マクロを作らずにできますか?(あるいは作ればできますか?) セルの参照って右2下3みたいな平行移動的な参照しかできないんでしょうか. 式が書かれているセルのアドレスから式が参照するセルのアドレスが計算できればいいんですが(式がRyCxのアドレスにあるとき,RxCyのアドレスの値が欲しい).
835 :
816 :04/09/19 19:55:22
>817 >818 テキストファイルウィザードで上手くいきました。 ありごとうございました。
>>834 =INDIRECT(ADDRESS(COLUMN(),ROW()))
シートの保護
838 :
名無しさん@そうだ選挙にいこう :04/09/19 22:13:48
ちょっとなんて言っていいのか、分からないのですが… エクセルを立ち上げると、A1で入力待ちになりますよね? そして、半角/全角キーで、日本語入力にします。 で、入力、たとえば「にちようび」といれると、 上の、なんて言っていいのか分かりませんが、 「=」の隣の空白に、「にちようび」と出て、 A1のとこにも、「にちようび」と確定待ちになりますよね? うちのは、「にちようび」と上には出るのですが、 A1には、「■■■■■」と黒くつながって表示されます。 文章自体は、上で確認できます。 変換リストも出ます。 入力確定すると、A1にもきちんと表示はされます。 OSを再インストして、エクセルを入れ直したら、そうなりました。 この文章で、分かれというのも恥ずかしいですが、 A1にも「にちようび」とでる様にしたいのですが、どうすれば いいでしょうか?
841 :
834 :04/09/20 00:49:22
>837 ありがとうございます.やっぱりできるんですね.
842 :
名無しさん@そうだ選挙にいこう :04/09/20 02:10:11
4月 5月 6月 7月 … 100 200 300 400 … というようなテキストをエクセルに貼りつけたいんですが、 まとめてコピーしても1つのセルに全てが入りこんでしまいます。 どうすればひとつひとつのセルに入れつつコピーできるんでしょうか? ひとつひとつやっていくのはあまりにも数が多すぎるので…。
>>842 テキストエディタなどで、間の空白をカンマに置き換えて
拡張子をcsvで保存→Excelで開く
>>842 データ間の空白を全部タブに置換してからコピペ、とか。
>>842 >1つのセルに全てが入りこんでしまいます。
そのセルを選択し、「データ - 区切り位置」。
あとは自力で頑張れ。
846 :
名無しさん@そうだ選挙にいこう :04/09/20 20:02:24
#VALUE!がどうしても入ってしまう部分でSUMを実行したいのですがなかなかうまくいきません。 どうすれば合計でますか。
#VALUEが入る原因は何? =IF(ISERR(_______),"",_______)にしておくとかで、元セルでエラー回避すれば?
848 :
名無しさん@そうだ選挙にいこう :04/09/20 20:33:27
マクロを独学で習得したいのですが、毎日1時間ずつやったとして どのくらいかかりますか? 今のレベルは四則演算とグラフを作成できるレベルです。 あと、独習用に使いやすいテキストがあったら教えてください
VBが実行されていく理論と、ヘルプの動きが分かれば本などいらん。 インターネットの解説サイトも最近はものすごく優しく書いてある。 あと、どのレベルで「習得」といえるかにもよるだろと。
851 :
838 :04/09/20 21:28:22
やっぱり説明がだめなんでしょうか… エクセル2000・パーソナル、win‐Meですが…。
852 :
名無しさん@そうだ選挙にいこう :04/09/20 22:11:59
印刷すると20ページ分あって、ヘッダーかフッターにページ数を入れたいのですが、 1〜20ページではなくて、4〜80ページ(4の倍数)にする方法ありませんか?
こんにちは。Excelのセルの操作(データの訂正)についてお伺いします。 会社のPCに有るExcelに製品の固体番号(バーコードデータ)と製造条件を 自動的に取り込んでいるのですが、データがずれてしまい、訂正しようとしても 出来なくて困っています。 具体的に言うと、A・B列にバーコードから読み込んだ数字、C〜F列に製造条件 を製造順に書き込まれているのですが、B列の一つのセルのデータにズレが有ったので そのデータを消して(セルを選択して上の数式バーに表示されたデータをDELETE)して 正しい数字をキーボードから入力、セルに反映されたのを確認してからExcelシート(ブック?) を閉じるのですが、再度データ表を開くと訂正する前の数字に戻っています。 何故でしょうか?どうすれば訂正出来ますか? Excelのバージョンは見落としましたが(PCは会社に有る)、新しいバージョン だと思います。現行版の2003か一つ前のVersion2002。宜しくお願いします。
>>853 そのデータはローカルなデータのでしょうか?
ネットワークで共有されているデータ等ですと、
いろんな原因が考えられると思うのですが。
855 :
名無しさん@そうだ選挙にいこう :04/09/20 23:05:35
>>854 さん。
レスありがとうございます。データはサーバーに繋がったクライアントPC(と呼ぶのかな?)です。
データのバックアップをサーバーでテープに入れています。
Excelの参考書(市販本)も見てるのですが良くわかりません。
データやシートが「保護」されているのはデータの書き換え自体が出来ないようですが
このケースは「 データは書き換えられる」 が、「上書き保存」しても再度シートを開くと
データが元の数字に戻ってしまってるのです。素人ですいません。
>>855 ファイルを開くと同時にバーコードのデータを読み込むよう、マクロが組まれているのかも…。
>>852 20ページくらいならプリント後に手で書いちゃえよ。
>>852 印刷後に”4”、”8”、・・・とかページ番号だけを印刷してある面にさらに印刷。
>852 どっかで見たような質問だと思ったら>325と同じ質問か。
860 :
名無しさん@そうだ選挙にいこう :04/09/21 08:13:35
Excel2000SP1で24時間対応のシフト表を作っていて、検算を行っているところです。 30分刻みの丸めが必要で、CEILING や FLOOR を多用してるのですが、 0:00 〜 23:00 の時刻をオートフィルで A1 〜 A24 に入力します。 =CEILING(A1, "00:30") を、同様に B1 〜 B24 にオートフィルで入力します。 ところが =CEILING(A5, "00:30") は 4:30 と表示されてしまいました。 丸め誤差だと思ったので =CEILING(MAX(A5-1/14400,0), "00:30") という形でここは処理したのですが、もっとよい妙案はないかと思ってます。 (1/14400という数字に特に意味はありません。) どなたか丸め誤差に詳しい方いたらお願いします。
861 :
名無しさん@そうだ選挙にいこう :04/09/21 08:17:28
3つの条件のどれかに当てはまる数字を赤くしたい 条件付き書式で3つの条件に1こずつ数字をいれるのと 1つの条件に =OR(A1=1,A2=2,A3=3) といれるのと どっちが処理軽いですか
862 :
名無しさん@そうだ選挙にいこう :04/09/21 08:30:31
>860 やってみたら、オートフィルで入れたA5の「4:00」を手入力で「4:00」と入れなおすと B5(=CEILING(A5, "00:30:00") の値が「4:30」から「4:00」に直ったんだが…ナズェ?(Excel2002)
>852 フッタなんか使わずにn印刷用に1行追加白。
865 :
名無しさん@そうだ選挙にいこう :04/09/21 16:00:55
>860 オートフィルで生成した時間と、直に入力した時間の数値を比較したら、やはり誤差がありますね。(=A5-"4:00" で、数値表示、桁数20桁で確認。) 何かしら処理は必要かと思いますが、こんなんでどうですか。 =CEILING(FLOOR(A1,"0:0:1"),"0:30") 1秒の所を5分にすれば、5分までは切捨てとかにもできそう。 =CEILING(FLOOR(A1,"0:5"),"0:30") ・・・でも、オートフィルを使わなければ、CEILING だけで問題ないかも。
>>862 わざわざ落とすの面倒
ここに式書いてよ
867 :
名無しさん@そうだ選挙にいこう :04/09/21 22:43:08
Excel2000で作成したVBAの一部です。 Excel2000では、エラーで出ないのですが、Excel97で実行すると、「13 型が一致しません」と出ます。 デバックを押すと、If kyou =・・・・・・Cells(y, 3) Then の行が黄色くなります。 Excel97では動かす事が出来ないのでしょうか?お願いします。 If kyou = Worksheets("あ").Cells(y, 1) And s_master = Worksheets("あ").Cells(y, 3) Then su = su + Worksheets("あ").Cells(y, 9) '入力のフェーズ If Not s_master = Worksheets("あ").Cells(y + 1, 3) Or Not kyou = Worksheets("あ").Cells(y + 1, 1) Or IsDate(Worksheets("あ").Cells(y + 1, 1)) = False Then Worksheets("い").Cells(z, 9) = su End If End If Next z = z + 1 Next
868 :
名無しさん@そうだ選挙にいこう :04/09/21 22:48:19
Excel2002でのVBAに関する質問です。 1行目にToggleButton1、2行目にToggleButton2という感じで、5行目まで5つのToggleButtonを配置しております。 ToggleButton1をクリックすると、1行目のデータ入力が可能になる。2〜5行目は入力不可になる。 ToggleButton2をクリックすると、2行目のデータ入力が可能になり、1行目、3〜5行目は入力不可になる。 上記のようなことを行いたいのですが、可能でしょうか? 現在は下記のようなコードで、ToggleButtonをクリックすると、シート保護を解除し、色をつけ、再びシートを 保護しております。できれば、このコードと一緒に扱いたいのですが。お願い致します。 Private Sub ToggleButton1_Click() ActiveSheet.Unprotect If ToggleButton1 Then Range("A1:IV1").Interior.ColorIndex = 33 Else Range("A1:IV1").Interior.ColorIndex = xlNone End If ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
869 :
名無しさん@そうだ選挙にいこう :04/09/22 04:06:06
「セルA1の右側に罫線を引いた時、セルB1の左側には表示されない」という 概念のExcelを御存知の方おられますか? 罫線を引くときは「右に引く」「下に引く」という ルールを決めて引かなければいけないと教えられた記憶があります。 Excel95以前だと思うのですが。 色々と調べてみたのですが、見付かりませんでした。 古いパソコンに入っているExcelを使いたいから教えて欲しいと依頼されました。 おそらく、4.0ほど古くはないと思います。 ひょっとして私の記憶違いかもしれませんが、 色々と調べていて、ものすごく気になったのです。 ご存知の方がいらっしゃれば、ご教授お願いします。
870 :
あいこ :04/09/22 05:10:21
Excel2000 WinXPです。 エンターキーを押すとセルが下に移動したり右に移動したりといった設定はできますが 任意のセルでエンターを押すと次の指定したセルに移動するといった事は出来ますか? 例えばA1セルでエンターを押すとB2セルに移動し、その次にエンターを押すとC3に移動するとか。 要するに表を作成して入力する時に次に入力したいところに自動的に飛ぶといいのですが・・・。 先生方、御教授願います。 某掲示板ではVBAだとか・・・。
>>870 複数のセルを選択した状態でEnterやTabを押すと、通常の動作(下や右に移動)ではなく、
選択されている次のセルへ飛ぶようになる。
そんなわけで、Ctrlを押したまま A1 B2 C3 A1 の順でクリックすれ。
で、Ctrlを放し、なにか入力してからEnter(Tabでも可)を押してみな。A1からB2に移動するはずだ。
もう一度Enterを押せば、今度はC3に移る。
Excel 2000 使用中です セルに 「CNA」 と入力すると勝手にCANに’変換されてしまいます 文字の先頭に" ' "を付けて入力しても同様です ググってみましたがとある掲示板に同じ質問をしている人がいただけで解決策無し
876 :
名無しさん@そうだ選挙にいこう :04/09/22 11:17:41
エクセルで給与計算表を作成してそれを給与明細として印刷をかけたいときに、ワードでやるのが良いのか、同エクセルファイル内でやる方法があるのか、どうなんでしょう? 当方Office2000です。どなたか教えてくださいませ。
877 :
あいこ :04/09/22 14:01:39
>>871 その動作をctr+クリックではなくて普通になればいいと思ってますが・・・。
表を作成して入力する時にわざわざ入力したい箇所をすべてctr+クリックしないといけなくなりますので・・・。
入力する箇所をすべて縦に並べればエンターで次のセルに行きますがそれでは
ちょっとかっこ悪いので。
とりあえず解決してません。
やっぱり無理なんでしょうか・・・。
>877 入力セルのロック解除→シート保護
878は入力後shiftかtabで移動
880 :
名無しさん@そうだ選挙にいこう :04/09/22 15:24:29
>876 俺だったら、エクセル ワードが出来ないから。
Excel2000を使っているのですがブック内のハイパーリンクをクリックすると IEが起動するので、これを普段使用しているタブブラウザに変えたいのです。 どなたかお知恵を貸してくださいm(_ _)m
882 :
名無しさん@そうだ選挙にいこう :04/09/22 15:43:11
Excel2000を使っていて急に落ちちゃったんですが 作業中の内容って自動保存されていないのでしょうか? いちどもファイル名を付けて保存はしていないのですが。
>881 HDDに保存してあるhtmlをクリックした時なんかもIEが立ち上がってくるなら いつも使ってるブラウザがOSの通常使用するブラウザ(標準ブラウザ)になってないせいと思う。 ブラウザのhelp見て変更すれ(いっこづつファイルの関連づけ変えるのめんどいし)
A列に日付を入れていて日付が変わると色が変わるというのできませんか? 例えばA列のセル1〜3に10/1A列の4から10/2の時色が変わるって感じで。 条件付書式で出来そうなんですが思いつきません。お願いします。
>>883 それは出来てるんですよ。
Excelにブラウザ指定の項目が有れば楽なんですがねぇ…
886 :
名無しさん@そうだ選挙にいこう :04/09/22 16:59:48
>884 条件付書式で 数式が =A3<>A4 あとはA列に書式のコピー でいいのかな?
>886 レスありがとうございます。説明が悪かったです。すいません。 例えばA列のセル1〜3に10/1は白でA列の4〜6が10/2の時、黄色で4〜6を塗りつぶし、 10/3が7の時はは白に戻るという感じで交互にしたいのですが可能でしょうか?
補助列を使って、-1なら色をつける。 例えばH列の1行目に1を入れて2行目以降に =IF(A2="","",IF(A1<>A2,-H1,H1)) とか
>>869 Excel5 がそうでしたよ。
Win3.1のころのエクセルです。
セルの結合もまだなく、似た機能の「結合範囲内で中央」でした。
でも、関数機能はネスとしやすく、昔のがよかった気も…
>>867 非常に基本的なこと書くので、こんなこと知ってるよ!と言うなら
スルーして下さい。
型が一致しませんというエラーは、例えば整数型として宣言した
変数iに文字列「あ」を代入や比較した場合等に起こります。
よって、kyouとs_master が何型で宣言されているのか
エラーが起こったとき、Worksheets("あ").Cells(y, 1)や
Worksheets("あ").Cells(y, 3)にどんなデータが入っているのか
がわかれば解決する方法がわかるんじゃないですか?
891 :
名無しさん@そうだ選挙にいこう :04/09/22 21:09:37
892 :
名無しさん@そうだ選挙にいこう :04/09/22 21:09:42
Excel2002です If hisCell <> "○" Then って、コードがあるんですけど、これを○または×ならば、って 感じにしたいのですが、どのようにコードを書けば良いのでしょうか? ワークシート関数のORみたいに簡単な考えではムリなんですよね? お願いします!
893 :
名無しさん@そうだ選挙にいこう :04/09/22 21:19:36
>>889 レスありがとうございます。
Excel5でしたか。Win3.1の頃ですかー。かなり昔ですね。
依頼主からは「かなり古いExcelです」としか聞いていないので
不安だったのです。
安心しました。ありがとうございました。
>>892 If hisCell <> "○" Then
は、○でないならば、だけど。
If hisCell <> "○" or hisCell <> "×" Then
でいけるよ。
これは、○でないなら、または×でないならばという意味。
If hisCell = "○" or hisCell = "×" Then
が○または×ならばという意味。
895 :
名無しさん@そうだ選挙にいこう :04/09/22 22:09:32
>>865 ありがとうございました。
どうやら0.5秒未満の誤差のようでしたので、頂いた例を参考に
=CEILING(MROUND(A1,"0:0:1"),"0:30")
=CEILING(MROUND(A1,1/3600),1/48) (←字数稼ぎ)
などの形で対応させていただきました。ありがとうございました。
896 :
名無しさん@そうだ選挙にいこう :04/09/22 22:12:33
>>894 If hisCell <> "○" or hisCell <> "×" Then
は常に真なので間違いだと思われ
If hisCell <> "○" and hisCell <> "×" Then
かと。
If hisCell <> "○" Then 処理 Else 処理 End IF じゃないの?
釣られそうだ・・・ | 〜〜〜〜〜〜〜〜|〜〜〜〜〜〜〜〜〜〜 | >( c´,_ゝ`) | J >( c´,_ゝ`) >( c´,_ゝ`)
901 :
894 :04/09/22 22:33:16
みなさま、ありがとうございます!
>>896 さんやりかたで、うまくいきました!
ありがとうございました!!
↑すんません。 名前間違っちゃいました。
903 :
860=895 :04/09/22 22:38:07
MROUND は分析ツールのアドインが無いと駄目な関数でした。 orz
VBAに詳しい方がたくさんいらっしゃるみたいですね。
>>868 は教えていただけないでしょうか?
>>904 Private Sub ToggleButton1_Click()
ActiveSheet.Unprotect
If ToggleButton1 Then
Range("A1:IV1").Locked = False
Range("A1:IV1").Interior.ColorIndex = 33
Else
Range("A1:IV1").Locked = True
Range("A1:IV1").Interior.ColorIndex = xlNone
End If
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End Sub
こういうことかな?
たびたびすいません。 よく見たら、行まるまるみたいだから、 Range("A1:IV1")のところは、 Rows(1)のほうがわかりやすいな。 Private Sub ToggleButton1_Click() ActiveSheet.Unprotect If ToggleButton1 Then Rows(1).Locked = False Rows(1).Interior.ColorIndex = 33 Else Rows(1).Locked = True Rows(1).Interior.ColorIndex = xlNone End If ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True End Sub あと、With使ってまとめてもいいし。
907 :
868 :04/09/22 23:37:26
>>905 すごい!感動してます!!ありがとうございます!!!
今、自分でも試行錯誤しているんですが、
>>868 のコードでは、ToggleButtonをオンすることにより
色が付き、オフにすることにより、色が解除されるんですが、
その、動作も同時に実行することはムリなんでしょうか?
それにしても、感動しました!
本当にありがとうございます!
908 :
877 :04/09/22 23:37:37
>>878 さん、
>>879 さん、ありがとう御座います。
tabで移動ですか・・・。
エンターで移動できるようにならないでしょうか?
>>891 さん、その動作をマクロで保存とはどのようにすればよろしいでしょうか?
すみません、無知なもので・・・。
よろしくお願い致します
909 :
868 :04/09/22 23:44:24
>>907 すみません。
私のコードの記述ミスでした。申し訳ございません。
本当にありがとうございました!!!
>888 ありがとうございます。 休み明けに試してみます。
>>908 シートを保護する時に「ロックされたセル範囲の選択」のチェックを
はずせばエンターでロックされてないセルだけ移動するはずですけど。
913 :
877 :04/09/23 00:31:55
>>911 さん、早速やってみました。
これではエンターを押すとセルを下に移動する設定にしている場合、
下方向の保護されているセルに移動します。
希望は「次に入力したい場所へ移動」です。
例えばA1セルで入力し、次にB5セルに入力したい場合に、A1セルでエンターを押すとB5セルに移動すると
いった要領で作成したいのです。そこでA2セルも保護しているとA1セルで入力したあとにエンターを押すと
A2セルに移動してしまいます。B5セルに移動してほしいのです。
無理でしょうか・・・。
>>908 力技です。A1にデータを入力すると
B2にアクティブセルが移動し、
B2にデータを入力すると
C3にアクティブセルが移動します。
Private Sub Worksheet_Change(ByVal Target As Range)
Dim str As String
str = Target.Column & Target.Row
Select Case str
Case 11
Range("B2").Select
Case 22
Range("C3").Select
Case 33
Range("D4").Select
End Select
End Sub
915 :
877 :04/09/23 00:51:53
>>914 さん!ありがとう御座います。
そのようなのを待ってました。
・・・
でも私、VBAの使い方もわからないくらいの素人なのです。
エクセルで表を作成して入力して・・・しかできず、こんなの便利だなって思って
質問させて頂きました。
エクセルって面白い!って思いました。
いろいろ勉強してやってみます。
917 :
877 :04/09/23 01:45:34
>>916 さん、ありがとうございます。
「自動セル移動」早速やってみました。
すばらしいSOFTですね!
希望通りの動きで満足です。。。
でも、これってこのアドインいれてる人しか使えないのですか?
しかもFileを開くたびに「セル移動ON」にしないといけないっぽいです。
デフォルトは「セル移動OFF」になるっぽいです。
他の人にFileを渡して同じような動きになればいいのですが・・・。
>>914 さん、VBAはまだ実施できそうにありません。
また後日ご報告します。
918 :
862 :04/09/23 02:03:55
>>866 スマソ
Sheet1!$A:$IV = ABC という名前を定義します。
Sheet1 の A1 〜 C10 に適当な数字とか文字列
Sheet2 の A1 〜 C10 に =INDIRECT("ABC") を全部いれる
こうするだけで、Sheet1 の値 = Sheet2の値 が同じになるんです。
普通は =INDEX(ABC,row(),column())とかだと思うんですが
このINDIRECTの挙動ってヘルプに載ってなかったので、
不思議だなーと思って、念のため誰か知っておられる方いたらと思い。
>877 入力するセルのロックを外してから、 Private Sub Workbook_Open() With Worksheets("sheet1") .Unprotect 'シート保護解除 .EnableSelection = xlUnlockedCells .Protect 'シート保護 End With End Sub とか。
↑ .EnableSelection = xlUnlockedCells 使ってセル制限してるマクロ書いてるサイトいくつかあったので それらを手本にして一部改変。一応Excel2000で確認済。
>>917 914で書いたマクロはあくまで、データを入力してenter
を押した場合しか動きません。申し訳ないけど。
やり方は上記のマクロをコピーして、
ツール→マクロ→visual basic editorを押して下さい。
で、左横の小さなウィンドウにsheet1,sheet2,sheet3みたいな
アイコンがあるので、対応させたいシートのアイコンをクリック。
白いシート?が出るので、マクロのコードをペーストしてください。
そして、保存していったんexcelを終了してください。
もう一度、excelファイルを開いたら、マクロを有効にするか
無効にするか聞いてくるので、有効にしてください。
改造の仕方は、下の部分が Case 11 ←A1にデータが入力された場合(A=1,B=2,C=3と数える) Range("B2").Select ←B2に移動。 になっているので、D5にデータが入力された場合、A1に移動だったら、 Case 45 Range("A1").Select を追加します。 Private Sub Worksheet_Change(ByVal Target As Range) Dim str As String str = Target.Column & Target.Row Select Case str Case 11 Range("B2").Select Case 22 Range("C3").Select Case 33 Range("D4").Select Case 45 Range("A1").Select End Select End Sub …となります。
データを入力せずともenterボタンで動かしたい という場合には、こういうやり方もあります。 Sub Auto_Open() Application.OnKey "{ENTER}", "セルの移動" Application.OnKey "~", "セルの移動" End Sub Sub セルの移動() With ActiveCell If TypeName(Selection) <> "Range" Then Exit Sub Select Case .Address(0, 0) Case "A1": Range("B2").Select Case "B2": Range("C3").Select Case "C3": Range("D4").Select Case "D4": Range("E5").Select Case Else: ActiveCell.Offset(rowOffset:=1, columnOffset:=0).Activate End Select End With End Sub このコードを標準モジュールにペーストすれば、動くはず… です。(ただすべてのシートに適用されますが)
If TypeName(Selection) <> "Range" Then Exit Sub は不要でした…
連投スマソ If TypeName(Selection) <> "Range" Then Exit Sub やっぱりあった方がいいみたい…orz vbaがわかれば「excel vba セルの移動」とかでぐぐれば いろいろわかります。
ていうか、何でお前らど素人のクレクレ君にそんなに親切ですか。
927 :
877 :04/09/23 17:21:09
みなさん、とても親切にして頂きありがとう御座います。
なんとか意味が理解できそうです。
何もない新規のシートで実行すると動くのですが
私の作成したシートに割り当てると動きません。
なぜでしょうか・・・?
入力するセルは結合してあるからでしょうか。
入力規則を設定しているセルだからでしょうか。
>>926 さん、クレクレ君ですいません・・・。でも少なからず私のような素人が
VBAに興味を持って少しながら知識を身につけています。
私も質問に答えられるくらいになりたいです。。。
> 入力するセルは結合してあるからでしょうか。 結合を解除すれば結合が原因かどうかはすぐにわかること。 > 入力規則を設定しているセルだからでしょうか。 入力規則を解除すれば入力規則の設定が原因かどうかはすぐわかること。 設定を変更してから原因を検証して、変更を保存せずに閉じてしまえば元の状態に戻せるし、 不安なら、ブックをコピー(バックアップ)してから改変すればいいだけの話。 こんなことはVBAの知識もExcelの知識も無い奴でもやる気があればすぐにできること。 「クレクレ君ですいません・・・。」って気持ちが本当にあるなら自分で出来ることは自分でやろう。
929 :
名無しさん@そうだ選挙にいこう :04/09/23 18:34:06
レポートの作成中です。教えてください。 OSはウィンドウズMeです。 散布図を作る際に、プロットを三色に色分けしたい場合はどうすればよいですか? 具体的にいうと、A列に名前、B列、C列はそれぞれX軸Y軸で、 A列の名前によって色分けをしたいのです。 教えてください。
>>929 グラフメニュー>元のデータ>系列 ここで系列を三つに分けるように設定するか
プロットされた点上でシングルクリックを2回、一つの点だけが選択されてるのを確認したら、
右クリで系列の書式設定、そこで色を設定するか。
ところで、今幾つの点がプロットされている?
名前ごとにデータは複数あるなら、名前ごとにまとめるのが先。
931 :
929 :04/09/23 19:10:23
930さん、ありがとうございます。 今、クモの調査をやっていて、そのデータをまとめています。 A列には、「シマゴミグモ」「ギンメッキゴミグモ」「マルゴミグモ」 B列には、各個体の体長 C列には、巣の高さ となっています。 A列の各種によって、プロットの色分けをしたいのですが・・・ データ数は50です。 すみませんが、お願いします。
1、「並び替え」を使って、クモの種類ごとにデータをまとめる。 2、とりあえず、一つ目のクモのデータだけで散布図を作り、思った通りに表示させれるよう調整。 3、残りの二つのクモに関するデータを追加し、必要に応じて調整。 順に行ってください。 わからない点は、また具体的に質問を。
クモが銀メッキ? なんか気になったのでググッたら、 おおーっ、本当に銀メッキだw こんなのも居るんだなぁ…。 回答じゃなくてスマン。
934 :
929 :04/09/23 19:35:32
932さん、できました☆ありがとうございます。 感謝です!!!!! 933さん、じゃあ、アリグモをググッてみてください♪ アリにそっくりですよ☆ちなみに、私の先生はハエトリグモが 好きらしいです。 では、ありがとうございました。
>>927 とりあえずヒント。
たぶん
>>923 の方法をやったと思うけど、
Select Case .Address(0, 0) の上に
MsgBox .Address(0, 0)
の1行を追加してみれば、何を変えればいいか分かるはず。
936 :
877 :04/09/23 21:15:07
>>928 すいません、その通りです(;_;)
実は接合したセルを元に戻すやり方がわからなくて・・・。
でも、解決しました。結合セルを元に戻すのは結合ボタンを押せば元に戻りました。
まずはそれを調べないといけませんでした・・・。
すいません。
>>914 さん、いろいろと教えて頂き、ありがとう御座います。
結合セルを解除したら出来ました。
結合セルでやる場合はどうしたらいいのでしょうか?
>>936 1つ上のレスくらい読んでくださいよ・・・。
行の表示、非表示を切り替えるVBAについての質問なんですが、 A列の行数を6で割って剰余が1になる行(A7、A13、A19、…)をダブルクリックすると、 そのセルの行の下5行(A7なら8〜12行目)を表示させるVBAはどのようにすればいいのでしょうか? 「行数を6で割って剰余が1になる行」の指定については、下のVBAの3行目を If (Target.Row Mod 6) = 1 Then にすればいいことはググって解ったんですが、「選択セルの行の下5行」を指定するにはどうすればいいのですか? ぶっちゃけ「Target.Row+1:Target.Row+5」が指定できればいいんですが、ググっても具体的な記述が解らなくて… 現在は下のVBAの3〜6行目を必要な数だけ書いてますが、行数が増える度に書き足していくのも手間だし 動作も重くなっていくような気がするので解る方いらっしゃいましたら教えてください。当方Excel2002です。 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If Target.Column = 1 Then If Target.Row = 7 Then Rows("8:12").EntireRow.Hidden = False Cancel = True End If End If End Sub
>>936 例えば、A1とB2とC2を結合したセルがあるとして、
それをexcelはA1と認識しているのでしょうか、
B1と認識しているのでしょうか、それともC1?
これは、結合されたセルのあるexcelシートを
よく見ればわかりますよね?
A1とB2とC2→A1とB1とC1
>>938 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Column = 1 Then
If Target.Row Mod 6 = 1 Then
Range(Rows(Target.Row + 1), Rows(Target.Row + 5)).Hidden = False
Cancel = True
End If
End If
End Sub
942 :
名無しさん@そうだ選挙にいこう :04/09/23 22:36:48
下記のような表があります。事前に区分・日付の優先順で"並べ替え"を行っています。 区分ごとの、一番最後の日付のデータを取り出し、別のシートにコピーしたいと思っています。 下記で言えば、「04/02/05 aa 90」と「04/03/18 bb 120」です。 VBAでどのように書けばいいのでしょうか?よろしくお願いします。 Excel97でも動く事が望ましいです・・・。 日付 区分 累計 03/12/01 aa 10 03/12/02 aa 20 04/01/20 aa 50 04/02/05 aa 90 03/11/08 bb 50 03/12/14 bb 80 03/12/26 bb 90 04/03/18 bb 120
>>938 >>941 でいいと思いますが、こういう書き方も出来ます。
ダブルクリックするたびに表示・非表示が切り替わります。
参考までに。
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
With Target
If .Column = 1 Then
If .Row Mod 6 = 1 Then
Rows(.Row + 1 & ":" & .Row + 5).Hidden = Not Rows(.Row + 1).Hidden
Cancel = True
End If
End If
End With
End Sub
>>942 Dim i As Long, YourCell As Range
For i = 2 To Range("A65536").End(xlUp).Row
If Cells(i, 2) <> Cells(i + 1, 2) Then
Set YourCell = Sheets("コピー先のシート名").Range("a65536").End(xlUp).Offset(1)
YourCell = Cells(i, 1)
YourCell.Offset(, 1) = Cells(i, 2)
YourCell.Offset(, 2) = Cells(i, 3)
End If
Next
「コピー先のシート名」は適宜変更してください。
946 :
942 :04/09/23 23:18:50
追加ですみません。
>>944 さんので、ほぼ出来たのですが、もっと先の列までデータが入っていて
列B、列E、列Hのデータだけを別のシートにコピーしたい時は、どこを変えればいいのでしょうか?
別のデータで試したところ、列A〜列Cまでしかデータがコピーできてなかったもので。
よろしくおねがいします。
>>946 Dim i As Long
For i = 2 To Range("A65536").End(xlUp).Row
If Cells(i, 2) <> Cells(i + 1, 2) Then
Rows(i).Copy
Sheets("Sheet3").Range("a65536").End(xlUp).Offset(1).PasteSpecial (xlPasteValues)
End If
Next
Application.CutCopyMode = False
>>946 あ、B、E、Hだけを別シートか。失礼。
YourCell.Offset(, 2) = Cells(i, 3)
のところの、Cells(i, 3)の3の数字を、該当の列の列番号を入れてください。
Eなら、5列めなので、Cells(i, 5)のように。
こんな感じ YourCell = Cells(i, 2) YourCell.Offset(, 1) = Cells(i, 5) YourCell.Offset(, 2) = Cells(i, 8)
ゴッホ ◆lkGoghDAZsさん ありがとうございました。感謝します。
>>950 いえ、どういたしまして。
もし、シートによって、頻繁に列番号が変わるのなら、
列名から列番号を取得する方法もあるので、必要ならまたご相談ください。
それでは。
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を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。