3 :
名無しさん@そうだ選挙にいこう :02/01/31 18:10
n行目以降のA,B,C…列を全て選択する方法ってありますか?
続きです。 なにがしたいのかと申しますと 1行目2行目には項目(文字列)がありまして 3行目以降に日々追加される数値データがあります。 この3行目以降を並べ替えるマクロを登録したいのですが 1,2行目以外の全ての行を選択する方法があれば教えていただきたいのです。
>>5 Sub test()
Dim myRow As Long, myCol As Integer
With ActiveSheet
myRow = .Range("A65536").End(xlUp).Row
myCol = .Range("IV1").End(xlToLeft).Column
.Range(.Cells(3, 1), .Cells(myRow, myCol)).Select
End With
End Sub
7 :
名無しさん@そうだ選挙にいこう :02/02/01 08:34
Excel2000で時間の計算をしたいのですが 例えば「80.9875分」の小数点以下を切り捨てて「80分」に丸めてから それを「1時間20分」と表示させるにはどうしたらよいのでしょうか? 時間だけなら「=TRUNC(TRUNC(80.9875分のセル)/60)」かな?と思ったんですが それだと時間と分は別のセルで計算させないといけなくなるので困っています・・・ それともう一つ質問なのですが、 計算結果の数値+文字列を一つのセルに表示させるやり方はあるのでしょうか? 「(80/60)の整数部」+「"時間"という文字列」→「1時間」 というように表示させたいのです。 わかりづらくてごめんなさい、すみませんがどなたか教えて下さい・・・
>6 ありがとうございます
>>7 時間の計算は私には難しいので、前半部分は他の方にお任せして、
後半部分のみ答えます。
>計算結果の数値+文字列を一つのセルに表示させるやり方はあるのでしょうか?
>「(80/60)の整数部」+「"時間"という文字列」→「1時間」
>というように表示させたいのです。
A1のセルに80、B1のセルに60が入力されている時、
=ROUND(A1/B1,0)&"時間"
でいかがでしょう。
>>9 ありがとうございます!助かります・・・
前半部分は、何分→何時間何分と計算する関数はないのかな?と思って
質問したのですが、&で繋げばなんとかなりそうな感じです。
本当に感謝感激雨あられです、ありがとうございました。
>>7 A1セルに「80.9875」を記入して任意のセルに「1時間20分」と表示させる場合
任意のセルに↓のような感じで記入しては?
=ROUNDDOWN(A1/60,0)&"時間"&((ROUNDDOWN(A1,0)/60)-(ROUNDDOWN(A1/60,0)))*60&"分"
もっと簡単な方法があるのかもしれないけど、とりあえず出来たので。
>>11 あああありがとうございます!
ちょうど今、悩んでいたところでした・・・
早速やってみたらばっちりでした、本当にありがとうございました!
エクセル2000の印刷トラブルなんですが、教えて下さい。 印刷プレビュー時はまともにシートが表記されているのですが、 実際印刷すると、 ●−−−●−−−−−●●−−− △−−△●−−−−◆−−− ↑ こんなグラフの出来損ないみたいのが印刷されてしまいます。 印刷の設定やシートを別のシートにコピーしたりと、色々といじってみましたが 直りませんでした。 ファイルが壊れているのでしょうか? 誰か原因がわかる方、教えてください(^^;
windos板ですれ違いと怒られました。 エクセルの新規ファイルが急に作れなくなりました。 ウィルスを疑っているのですが、WEBで調べてもマクロウィルスしかないようで。 それから一部ファイルも関連付けを変更されてます。 対処法を教えていただけると助かります。
疑ってるんならまずウィルスチェックしんさい。
16 :
名無しさん@そうだ選挙にいこう :02/02/01 22:10
17 :
名無しさん@そうだ選挙にいこう :02/02/01 23:50
EXCELでひとつのセルに =((A1*B1)+(A2*B2)+...+(A20*B20)) と入力してるんですが、簡単な式はありませんか? わからんです・・・。
直前120日分のデータを別のシートにコピペするマクロを作ったのですが、 それをボタンによる起動だとオーバーフローしてしまいます。 Private Sub データ_Click() 〜 End Sub ↑こうせずに↓このようにするとオーバーフローしません Sub データ() 〜 End Sub ボタンから起動させたいのですが、どこに問題があるのか もしわかる方がいらっしゃったら教えてください。
これがSub〜EndSub間の中身です。 '120日分のデータの取り出し、はりつけ Dim a As Integer Dim b As Integer Dim c As Integer Dim d As Integer Dim g As Integer '下端から119個上の行番号 Sheets("日単位").Select a = 4 '上端 b = 1 '左端 c = Range(Cells(a, b), Cells(a, b)).End(xlDown).Row '下端検出 d = b + 6 '右端 g = c - 119 Range(Cells(c, b), Cells(g, d)).Select Selection.Copy Sheets("モナ").Select Range("A6").Select ActiveSheet.Paste
20 :
名無しさん@そうだ選挙にいこう :02/02/02 01:11
もともとのセルの色は変えないで数値だけ オートフィルをすることってできますか? 使っているのは、MacのOffice2001です。
>>19 Range("A6").Select
↓
Sheets("モナ").Range("A6").Select
行はLongで宣言すべし。
Integerの範囲外では当然オーバーフローする。
Private Sub データ_Click()
Dim LRow As Long
Application.ScreenUpdating = False
With Worksheets("日単位")
.Activate
ActiveCell.Activate
LRow = .Range("A65536").End(xlUp).Row
If LRow < 123 Then Exit Sub
.Range("A" & LRow & ":G" & LRow - 119).Copy
End With
Worksheets("モナ").Range("A6").PasteSpecial (xlPasteAll)
Application.CutCopyMode = False
End Sub
>>20 Mac使いじゃないので多少違うかも。
単純な数値や日付なら、先頭セルに値を入れてからフィル範囲を選択して、
編集−フィル−連続データ作成で連続データを作れます。
別のセルでオートフィルして、形式選択貼付けの値貼付けをする方が、
簡単かな?
23 :
名無しさん@そうだ選挙にいこう :02/02/02 01:51
>22さんレスありがとうございます 参照先のセルをオートフィルさせたいので 後者の方法でやってみましたらうまくいきました。 ありがとうございました。
24 :
名無しさん@そうだ選挙にいこう :02/02/02 02:19
はじめまして。 パート3に書いてしまったのですが4の方で質問させて頂きます。 マルチになってしまってすいません(>_<) 今度Excelを使わなくてはいけない状況になったのですが ながーい√(ルート)を書きたいのですが 方法が分かりません。 どなたか教えていただけないでしょうか? お願いします!
>>17 =SUMPRODUCT(A1:A20,B1:B20)
>>24 Wordの数式エディタで書いてからそれをコピーし
Excelの「編集」-「形式を選択して貼り付け」-「図(拡張メタファイル)」
じゃだめ?
チェックしたがウィルススキャンにはかからなかったし、EXECLは再インストール した上でお尋ねしているのだが?
28 :
名無しさん@そうだ選挙にいこう :02/02/02 08:05
↑ネタは放置
ねたじゃなくて困ってるんだが。
それ、ニセモノ。>社長
31 :
名無しさん@そうだ選挙にいこう :02/02/02 12:28
>>25 ありがとうございます。
うまくいきました☆
>>13 プリンタドライバを再インストールしてみたら?
33 :
名無しさん@そうだ選挙にいこう :02/02/02 16:33
>>24 挿入→オブジェクト→新規作成→Microsoft数式
34 :
名無しさん@そうだ選挙にいこう :02/02/02 18:19
webクエリをつかってDLしていると たまに文字化けしてしまうのですが なにか対処法ありますでしょうか
>>27 そういうことも書いてから聞いてね。
最小限の情報しか言わないで解決を要求してるんなら、俺らより近くの社員に
命令するのが早いでしょ。
それとも自営業の社長様? 暇だな〜
36 :
名無しさん@そうだ選挙にいこう :02/02/02 20:00
最小限の情報すら言ってないし。
37 :
( ゚д゚) :02/02/02 20:30
>21 どうもありがとうございました。 うまいこといきました。
excelの個人用マクロブックが開けなくなりました。 もちろん、新たに個人用マクロに登録しようとすると個人用マクロブックが開いてないからだめといわれ登録することもできません。 どうしたらよいのでしょうか? 個人用マクロブックには1000行くらいのまくろが書いてあります。 同じことをさせるのは何とかなるのですが、個人用マクロブックに書けないのは困ってしまいます。
>38 バージョンやインストール先によって違うかもしれんが... C:\Program Files\Microsoft Office\Office\XLStart\PERSONAL.XLS を消せば良いだけでは?
40 :
名無しさん@そうだ選挙にいこう :02/02/03 13:37
マクロでINPUTBOXを出すと勝手に日本語モードになります。英数モードにするため IMEMode = xlIMEModeOffを実行させても効きません。苦肉の策として Range("B1").Select: SendKeys "{ENTER}", True '隣りのセルに入力規則で日本語モードOFFを設定しておく SendKeys コマンドでオフにしてからINPUTBOXを実行しても同じです。 分かる方教えてください。
>40 ならんけど?
42 :
名無しさん@そうだ選挙にいこう :02/02/03 14:12
>41 当初はならなかったのです。次第になり始め、今では毎回出ます。アプリの再インストールしかないですかネ。 何とかそれをせず解決したいのですが。もしかしたら他のフォームを多用してるので そのプロパティーを引きずってるのかも知れません。
>42 どんなソースか解からんけど、新規ブックで簡単なコードでもなるの? InputBoxって、InputBox関数とInputBoxメソッドで2種類あるけど、どっち? 簡単なソースを書いてみては?
44 :
名無しさん@そうだ選挙にいこう :02/02/03 15:11
>43 解決しました。 Range("B1").Select: SendKeys "{ENTER}", True '隣りのセルに入力規則で日本語モードOFFを設定 C1セルに入力規則を設定し、日本語モードになっていても英数モードに戻りINPUTを実行できる処理を しましたが、そのときの設定をオフ(英語モード)から無効にしたら直りました。日本語モードオフとオフ(英語モード)は同義 ではないようで、それでも途中までは正常に動作していたのでミスに気付きませんでした。
45 :
名無しさん@そうだ選挙にいこう :02/02/03 15:39
コードは IMEMode = xlIMEModeOff----ではなく IMEMode = xlIMEModeDisable---でうまくいきました。 しかし紛らわしい、普通は日本語モードを解除するには上の方と思いませんか・・・・ 新規シートから実験したおかげで解決に到りました。産休です。
39> ありがとさん 結局なんかの原因でファイルの置き場所をexcelが忘れてしまったみたいで ファイルを指定したら使えるようになりました。
47 :
名無しさん@そうだ選挙にいこう :02/02/03 21:05
すでに作ってしまったグラフの凡例を、違う文字に変えたいんですけど セルを操作する以外に方法はありませんか? 直接グラフ上で任意の名前にしたいですけど。 お願いします。
グラフエリアで右クリック >もとのデータ>系列>名前 で判例の文字列を変更できます。
>>48 おぉぉ!!!ありがとうとうございます! 助かりました。
50 :
名無しさん@そうだ選挙にいこう :02/02/04 10:53
フォームでセル内にチェックボックスを加えたのですが、 右側に出るチェックボックスの文字のフォントや大きさの変更は、 どこですればいいでしょうか。 現在は、UIゴシックになっているようです。 Win95 BでExcel2000です。
51 :
名無しさん@そうだ選挙にいこう :02/02/04 15:27
現在、セルA1に3桁の自然数を入力しています セルB1にセルA1の数字の百の位を表示する方法を教えてください セルC1にセルA1の数字の十の位を表示する方法を教えてください セルD1にセルA1の数字の一の位を表示する方法を教えてください
自己解決しました
>53 INTとMODで解決します
X-(X mod 100) (X mod 100)-(X mod 10) X mod 10 こんな感じかいな
>>55 INT 要らないんですネー(藁
>>51 俺ならセルA1の書式は文字列にしちゃってですね、
LEFT( ) とか MID( ) とか使いますが、どうよ?
おらっちならright()だけで済ますぞ
百の位は INT(A1/100) 十の位は INT(MOD(A1,100)/10)) 一の位は MOD(A1,10) で計算していましたが文字列で扱えば便利ですね。 ありがとうございました
エクセルについて質問します。 昨日の夜に作った計算式なんですけど、チョット複雑で、昨日はいろいろ計算できたんですが、 保存して今日また再開したら計算してくれません。 なぜでしょうか?よろしくお願いします。
エクセル関数についてなんですが、ちなみに当方初心者です、 countifの検索条件で、5以上25以下のような、〜以上〜以下のような 検索条件で検索できるんですか? お願いします。!
62 :
名無しさん@そうだ選挙にいこう :02/02/04 20:15
コメントのフォントはVBAで制御できないの?
>61 A1:A25に数値が入っているとして、どうしても Countif を使うなら、 =COUNT(A1:A25)-COUNTIF(A1:A25,"<5")-COUNTIF(A1:A25,">25") 他には、 =SUMPRODUCT((A1:A25>=5)*(A1:A25<=25)) とか。
>>63 回答ありがとうございます
実際、countifで計算できなかったので
=COUNT(A1:A25)-COUNTIF(A1:A25,"<5")-COUNTIF(A1:A25,">25") な
方法で私も計算したのですが、やはりcountifのみでは、無理なんですかね。
65 :
名無しさん@そうだ選挙にいこう :02/02/05 09:32
Excel総合相談所2 661:にて既出なのですが、同じ問題に直面しています。 661:については回答が無かったようでしたので、改めて取り上げさせてください。 > 質問ですが > EXCELのシート保護を使用して触られたくない部分は > 保護しています。 > シートを保護していない部分には入力規則とか > 書式とかを設定しているのですが、これらは > コピーペーストすると入力規則が変わってしまいます。 > なんとか入力はできるけれども書式等を保護する方法 > はないものでしょうか。 詳しくはないのですが、クラスモジュールなどで解決できませんか? とれとも、そもそも無理なのでしょうか? よろしくお願い申し上げます。
コピペでセル内の値は変更したい、 だけど書式、入力規則は一定のままにしたい、っていうことなら コピー>磔対象セルの選択>右クリック>形式を選択して磔> >値、数式、… でどうかな。
>>65 なぜクラスモジュールだと解決できそうだと思われるのか、
発想の着眼点をお聞かせ願えれば…。後学のため。
なお、以下は俺が中央省庁に納入するシステムの仕事で気遣った点。
1. ユーザには、なるべくシートを触らせない。かわりに
フォームなど(できれば別アプリケーション)を作っておいて、
それに入力してもらう。
(そのデータが自動的にシートに反映されるようにマクロを
作っておいてあげる。)
2. ユーザが触るシートは、できるかぎり「保護」する。
3. ユーザが触る保護なしシートは、
適切な書式等(書式、入力規則、…)を反映したものを
新規作成して(既存のデータは自動入力して)
入力の機会ごとに提供する。
(テンプレート+自動入力マクロを作っておいてあげる)
4. ユーザが入力作業をしたあと、もしシートの書式が崩れても
復旧できるように、書式を元に戻すマクロを作っておいてあげる。
総じていえば、上記の 1「だけ」をやる、というのが
もっとも(あなたもユーザも)楽で、もっとも(書式に関して)安全です。
68 :
名無しさん@そうだ選挙にいこう :02/02/05 11:21
すみませんがおしえてちょ。 関数DSUMを複数の列で使いたいんだけどどうやってもできないんです。 フィールド| −−−−−+ 条件1 | −−−−−+ 条件2 | −−−−−+ | −−−−−+ 条件N | −−−−−+ でそれぞれの条件にあてはまる合計を右側に表示したいんですが どうしたらよいのでしょうか。
69 :
名無しさん@そうだ選挙にいこう :02/02/05 11:26
>>67 なるほど。ありがとうございます。
Excelブックを閉じる際に変更点があると「XXXへの変更を保存しますか?」のボックスが
表示されますが、それを表示させずに常にセーブをしたかった時がありました。
それを解決するためにクラスモジュールを使いました(他の方の真似ですが)。
クラスモジュール C_Application にて
Private WithEvents I_Application As Excel.Application
Private Sub Class_Initialize()
Set I_Application = Excel.Application
End Sub
Private Sub Class_Terminate()
Set I_Application = Nothing
End Sub
Private Sub I_Application_WorkbookBeforeClose(ByVal Wb As Excel.Workbook, Cancel As Boolean)
If Not Wb.Saved Then
Wb.Save
End If
End Sub
標準モジュールのAuto_Open()にて
Private CApplication As C_Application
Set CApplication = New C_Application
浅はかな考えですが、このような制御ができないかと考え
クラスモジュールという言葉がでました。
例えば貼り付けを実行すると、値のみの形式指定貼り付けとして動作するとか。(無理かなー?)
ひとまず、ありがとうございました。
>>69 (´-`).。oO( ほほぅ〜♥ )
イベントプロシージャをたくさん使いたいので、クラスモジュールを
使うんですね。とても (・∀・)イイ! と思います。
71 :
よろしくお願い・・ :02/02/05 18:30
コンボボックス作ってプルダウンボタン(▼)押すと、 メニューが上に向かってできてしまうのですが、普通 に下に向かって開くように直すにはどうしたらよいので しょうか?
モニタを逆にする
73 :
shosinsya :02/02/05 22:27
エクセルに詳しい方、教えて頂けないでしょうか? sheet1 A B C 1 a1 a2 a3 2 b1 b2 b3 3 c1 c2 c3 4 sheet2 A B C D E 1 z1 z2 z3 2 y1 b2 y3 2 3 x1 x2 x3 4 w1 w2 w3 5 v1 a2 v3 1 エクセルで sheet2のB列 と sheet1のB列 をマッチングして、マッチしていたら、 その時の sheet1のA列 の値を sheet2のD列 に出力したかったのですが、 MATCH関数 (式は =MATCH(Sheet1!B:B,B:B,0) こんな感じです)を使ったら、 sheet2のD2 に2(sheet1の2行目という意味)が返って きました。どのような関数を使えば sheet2のD2 に sheet1のA2 の値(=b1)が 返る様になるのでしょうか?
74 :
shosinsya :02/02/05 22:29
↑ sheet部分がずれててすみません
75 :
名無しさん@そうだ選挙にいこう :02/02/05 22:45
76 :
名無しさん@そうだ選挙にいこう :02/02/05 22:47
例えばy=x^3+x^2+xという関数があったときに、yの値を入れることでxを出す という計算をすることは可能なのでしょうか?
>>73-74 ( ̄ ̄)
) (
/ \
| ∧ ∧ |/ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
| ( ゚Д゚)< =IF(Sheet1!B1=Sheet2!B1,Sheet1!A1,"")
\__/.\____________________
78 :
名無しさん@そうだ選挙にいこう :02/02/06 00:39
エクセルの新しいバージョンと古いバージョンの二つがPCに入っており、 xlsのファイルを開こうとすると古いバージョンのほうで開いてしまいます。 新しいバージョンの方で自動的に開きたいのですがどうしたらよいのでしょうか? どなたかご助言願います。
微妙にスレ違いだな 拡張子の関連付けを変更すればよし
>76 マクロを使えばできない訳でもない。 Sub Macro1() ' ' Macro1 Macro ' ' ' 'y=x^3+x^2+x Dim y As Integer, x As Integer x = 0 y = Cells(1, 1) Do Until x ^ 3 + x ^ 2 + x = y If x ^ 3 + x ^ 2 + x > y Then Exit Do End If x = x + 1 Loop Cells(1, 2) = x End Sub これで、何とか動くと思うぞ。 ただしこの式は整数のみ対応で、尚且つ、 X^3+X^2+Xによってえられる数値がYの数値以内であることだが これ以上は自分で考えろ
>>71 どゆこと?
メニューが長すぎて、下向きに表示できないとき、
自動的に上向きに表示されるのは仕様どおりだけど?
82 :
よろしくお願い・・ :02/02/06 09:59
>>81 ありがとうございます。
上向きだとメニューの上の方が画面から消えちゃって、
選択できないんです。画面は上にスクロールしないし・・
だから下向きにメニューが出ればと思ったんです。
仕方ないのかな〜?
ちなみにメニュー項目は62個あります。
>>79 御返事ありがとうございます。
「エクスプローラ」→「フォルダオプション」→「ファイルの種類」
で関連付けをやろうとしているのですが、「登録されているファイルの種類」
で、肝心のXLSが拡張子のファイルが見当たらないのです。
新たに追加しようとしても、「xlsはすでにファイルの種類excel.sheet5で
使われています」との警告がでるのですが、そんなファイルは一向に
見あたりません。一体どこに隠れてるのでしょうか?
>>82 メニュー項目、多くて大変なんですな、と。 (´д`)ノ
ていうか、なぜリストがスクロールできないんだろう? 謎。
「エクスプローラ」→「フォルダオプション」→「ファイルの種類」 で拡張子「XLS」の関連付けが表示されると思うけどなぁ エクスプローラから任意の***.xlsファイルのプロパティを表示させて 「ファイルタイプ」→「変更」→「その他」 で新バージョンのエクセル本体(EXCEL.EXE)を指定すれば解決すると思うが? それでも駄目ならまた相談してくれ
86 :
名無しさん@そうだ選挙にいこう :02/02/06 14:28
お邪魔します。 excel2002(XP)なのですが、 access2002からコピペした数字が言うことを聞きません。 書式を変更してもまったく反映されないんです。 具体的に言うと、 「239」という「数字」に対し、書式のユーザ定義で 「"A"0」もしくは「"A"#,##0と設定 (つまり数字の前に"A"という文字をつけたい) ・・・としてみても全然反映されません。 でも数式欄を見ても「239」という数字以外何も入っていないし、 もう一度「書式」で確認してみるとちゃんとなってるんですよ(;_;) アクセスから持ってきたらこんなことになるのかなぁ? どなたか原因と対処方法をご存知でしたらぜひご教授ください。 よろしくお願いいたします。
すいません、86ですが一応自己解決しました。 MSのサポートページで対処方法を見つけました。 数字に見えてこれは文字列だったようです。 だけど、「書式」でいくら確認したり設定しなおしたりしても 「数値」の状態だったのにぃー。 なんか納得いかない・・・。 取り急ぎ。ログ浪費すみませんでした。
ド初心者な質問ですみません。 並べ替え前 ----+---+---+---+-- 1 |A |1 |f | ----+---+---+---+-- 2 |B |3 |g | ----+---+---+---+-- 3 |C |5 |h | ----+---+---+---+-- 4 |D |7 |i | ----+---+---+---+-- 5 |E |9 |j | ↓並べ替え 並べ替え後 ----+---+---+---+-- 1 |A |1 |f | ----+---+---+---+-- 2 |B | | | ----+---+---+---+-- 3 |C |3 |g | ----+---+---+---+-- 4 |D | | | ----+---+---+---+-- 5 |E |5 |h | 上のように並べ替えるにはどうしたら良いですか?
89 :
名無しさん@そうだ選挙にいこう :02/02/06 17:31
これは並べ替えじゃなくて単に空白セルを挿入すれば良いのでは?
>>89 それを自動でやりたいのですが、できますでしょうか?初心者な質問ですみません。
>90 Excelのヘルプに『マクロを使って作業を自動化する』って項目があって、 そのなかに「マクロの記録」って部分があるからそこだけ読んでトライして。 なんかごちゃごちゃ書いてあってびびっちゃうかもしれないけど、マクロの 記録だけなら簡単だから。
92 :
名無しさん@そうだ選挙にいこう :02/02/06 19:57
>90 やりたいことは、1列目と3列目をマッチさせて、並び替えたいのかな? それとも、データを列番号として移動させたいのかな? いずれにしても、VBAなら余裕で出来る。 後々のこともあるので、Webで検索して勉強してみるといい。 みんながVBAを使い始めるきっかけは、そんなちょっとしたことからだと思うよ。
コマンドボタンを作ってコードにこれをコピペ。 「空白を挿入して1行下に移動させたい範囲」を選ぶ。 この例の場合は「3」と「G」が入力された範囲。 そして「キチガイ」のようにボタンを乱打するとオーケー。 Private Sub CommandButton1_Click() Dim retsu1 As Long Dim retsu2 As Long Dim gyou2 As Long Dim gyou1 As Long retsu1 = ActiveCell.Column retsu2 = Selection.Columns.Count gyou1 = Selection.Rows.Count gyou2 = ActiveCell.Row Range(Cells(gyou2, retsu1), Cells(gyou2, retsu1 + retsu2 - 1)).Select Selection.Insert Shift:=xlDown Range(Cells(gyou2 + 2, retsu1), Cells(gyou2 + 2, retsu1 + retsu2 - 1)).Select End Sub
94 :
名無しさん@そうだ選挙にいこう :02/02/07 19:26
Excel総合相談所3があがってるのでage
>88 ----+---+---+---+-- 1 |A |1 |f | ----+---+---+---+-- ↑ここにセルを合わせて実行 Sub Test() Dim LCnt As Long, Cnt As Long, LColum As Integer Application.ScreenUpdating = 0 With ActiveCell LCnt = .End(xlDown).Row - .Row LColum = .End(xlToRight).Column - .Column + 1 .Offset(LCnt, 0).Resize(1, LColum).Activate End With Cnt = 1 Do While Cnt <= LCnt Selection.Insert ActiveCell.Offset(-1, 0).Resize(1, LColum).Activate Cnt = Cnt + 1 Loop End Sub
96 :
名無しさん@そうだ選挙にいこう :02/02/07 23:52
初心者です。低レベルな質問で申し訳有りません。 エクセル97で、グラフを書く時 2種類の棒グラフと、2種類の折れ線グラフを 同じプロットエリアに書くことは出来るのでしょうか? 知り合いはXPのみの機能ではないかといっております。
>>96 グラフウィザードから「ユーザー設定」タブで
「折れ線−縦棒」でイケルかな?
それとも「2軸上の折れ線と縦棒」の方かな?
どっちも違うかも・・・
98 :
名無しさん@そうだ選挙にいこう :02/02/08 10:52
99 :
名無しさん@そうだ選挙にいこう :02/02/08 13:59
>>96 「2種類の棒グラフと、2種類の折れ線グラフ」という意味がよくわからんが、
とりあえず、棒グラフか折れ線グラフのみで作ってから、グラフの系列(棒か線)を
右クリック-「グラフの種類」でグラフの種類を変更できる。
と思った。最近97使ってないんで違ったらスマソ。
100 :
さりげなく100ゲット? :02/02/08 14:51
数字から文字の変換について悩んでいます。 伝票に仕入れ金額を印字するのにそのままではダメというルールがあり たとえば 1000円→C1 1200円→B21 1250円→A521 1252円→2521 というように、0の桁数をアルファベットに置き換え それ以外は全て逆から記述しています。 これを関数などで実現できるでしょうか?
101 :
名無しさん@そうだ選挙にいこう :02/02/08 19:20
質問です。 Excelのファイルの中にある複数のワークシートの名前を 一覧として表示する方法ってありますか?
>>51-52 を応用すれば普通のエクセル関数でもなんとかなりそうなきがする。
たとえば
1020なんかはc2c1となるの?
それとも
C201か?
103 :
名無しさん@そうだ選挙にいこう :02/02/08 20:35
>>100 (´-`).。oO( つーか、そこまで言うなら )
計算の手順(アルゴリズム)を箇条書きしてみぃ。
それくらい自分でやってくらさい。
(´-`).。oO( シートの関数ではチョー面倒。VBAでやろうぜ )
105 :
100です。 :02/02/08 21:02
>102さん 途中の0は考慮しませんので、C201になります。 >103さん 金額を表すもので、桁数は現実的には数十円(2桁)から 数百万(6桁)まであります。
106 :
エクセルマン :02/02/08 22:53
>101 For INC = 1 To Worksheets.Count Cells(INC + 1, 1).Value = ActiveWorkbook.Name Cells(INC + 1, 2).Value = Worksheets(INC).Name Next INC これでA列にブック名、B列シート名が入る
107 :
96です。 :02/02/08 23:05
>97さん ありがとうございます! 97さんのやり方でいけました。 おかげさまで、いい資料が作れます。 >98さん99さん お二方も回答ありがとうございました!
>105 行が長すぎると言われたので改行してるが下記の数式を A列に2〜6桁の数値を入れてそれと同じ行に代入。 数値の列がA列でない場合は適当なシートで列の挿入などをつかって式の「A」を任意の文字に変更しる。 =IF(MOD(A3,10)*1000000=0,IF(((MOD(A3,100)-MOD(A3,10))/10)*100000=0, IF(((MOD(A3,1000)-MOD(A3,100))/100)*10000=0,IF(((MOD(A3,10000)- MOD(A3,1000))/1000)*100=0,IF(((MOD(A3,100000)-MOD(A3,10000))/10000) *10=0,IF((MOD(A3,1000000)-MOD(A3,100000))/100000=0,"f","e"),"d"),"c") ,"b"),"a"),"") & MOD(A3,10)*100000+((MOD(A3,100)-MOD(A3,10))/10) *10000+((MOD(A3,1000)-MOD(A3,100))/100)*1000+((MOD(A3,10000)-MOD (A3,1000))/1000)*100+((MOD(A3,100000)-MOD(A3,10000))/10000)*10+(MOD (A3,1000000)-MOD(A3,100000))/100000
109 :
名無しさん@そうだ選挙にいこう :02/02/08 23:19
しかしこれには欠点がある。
111 :
名無しさん@そうだ選挙にいこう :02/02/08 23:29
>>100 Function strFuchou(Kingaku As Long) As String
Dim Pos As Integer, ZeroCount As Integer
Dim strKingaku, strTemp As String
strTemp = ""
strKingaku = CStr(Kingaku)
Pos = Len(strKingaku)
If Right$(strKingaku, 1) = "0" Then
ZeroCount = 1
Pos = Pos - 1
Do While Mid$(strKingaku, Pos, 1) = "0"
ZeroCount = ZeroCount + 1
Pos = Pos - 1
Loop
strTemp = strTemp & Chr$(Asc("A") + ZeroCount - 1)
End If
Do While Pos > 0
strTemp = strTemp & Mid$(strKingaku, Pos, 1)
Pos = Pos - 1
Loop
strFuchou = strTemp
End Function
# Replace()使ってもよければ、もうちょっと短くできるけど。
ちゃんとした式にしようとしたら一つのセルでおさまらないので一つ目のセルに =MOD(A4,10)*100000+((MOD(A4,100)-MOD(A4,10))/10)* 10000+((MOD(A4,1000)-MOD(A4,100))/100)*1000+((MOD(A4,10000)- MOD(A4,1000))/1000)*100+((MOD(A4,100000)-MOD(A4,10000))/10000) *10+(MOD(A4,1000000)-MOD(A4,100000))/100000 その横のセルに =IF(MOD(A4,10)*1000000=0,IF(((MOD(A4,100)-MOD(A4,10))/10)* 100000=0,IF(((MOD(A4,1000)-MOD(A4,100))/100)*10000=0,IF( ((MOD(A4,10000)-MOD(A4,1000))/1000)*100=0,IF(((MOD(A4,100000) -MOD(A4,10000))/10000)*10=0,IF((MOD(A4,1000000)-MOD(A4,100000)) /100000=0,"f","e"),"d"),"c"),"b"),"a"),"")&IF((MOD(A4,1000000)- MOD(A4,100000))/100000=0,IF(((MOD(A4,100000)-MOD(A4,10000))/ 10000)*10=0,IF(((MOD(A4,10000)-MOD(A4,1000))/1000)*100=0,IF( ((MOD(A4,1000)-MOD(A4,100))/100)*1000=0,IF(((MOD(A4,100)-MOD( A4,10))/10)*10000=0,B4/10000,B4/1000),B4/1000),B4/100),B4/10) ,B4) これでOKかなぁ。ためしてみてくれ(゚Д゚)ゴルァ
113 :
100です。 :02/02/08 23:52
>108 試してみました。昔COBOLのプログラムを組んでいたのでIFのネスト 程度ならなんとかわかるけど、ここまですごいのは初めてです。 >110 はたとえば1234などの場合ですね。 勉強のために明日の”開店休業”的土曜出勤にとりくんでみます。 それと104さん、102さんのご指摘にあるよう、プロセスをばらしてみて やってみます。
>100 後ろに 円 を付けない事。 数値を入れたセルを選択し、実行すると直接書きかえる。 1234560000 → D654321 Sub Test() Dim buf, buf2, vCnt As Integer, cnt As Integer If Not IsNumeric(ActiveCell.Value) Then Exit Sub vCnt = Len(ActiveCell.Value) cnt = 0 Do While vCnt > 0 If Mid(ActiveCell.Value, vCnt, 1) = 0 Then cnt = cnt + 1 Else Exit Do End If vCnt = vCnt - 1 Loop buf = Left(ActiveCell.Value, Len(ActiveCell.Value) - cnt) vCnt = Len(buf) Do While vCnt > 0 buf2 = buf2 & Mid(buf, vCnt, 1) vCnt = vCnt - 1 Loop If cnt > 0 Then buf2 = Chr(cnt + 64) & buf2 ActiveCell.Value = buf2 End Sub
115 :
エクセルマン :02/02/09 00:18
>100 マクロでやったほうがいいが頭の体操と関数で組んでみた。長いよ A列に仕入れ金額を入れる B列に=MID(A1,7,1)&MID(A1,6,1)&MID(A1,5,1)&MID(A1,4,1)&MID(A1,3,1)&MID(A1,2,1)&MID(A1,1,1) C列に=IF(LEFT(B1,4)="0000","D",IF(LEFT(B1,3)="000","C",IF(LEFT(B1,2)="00","B",IF(LEFT(B1,1)="0","A","")))) D列に=C1 & TEXT(VALUE(B1),"########") D列には秘密の仕入れ暗号が入る。7桁まで対応。 後でB、C列は非表示にすればよい。疲れたフー もっとスッキリの案もあると思う。関数の達人にリメイクを期待。
>>100 Function strFuchou(Kingaku As Long) As String
Dim i As Integer
Dim strTemp As String, strKingaku As String
strTemp = CStr(Kingaku)
If Len(strTemp) > 27 Then Exit Function
For i = Len(strTemp) - 1 To 1 Step -1
If Right$(strTemp, i) = String(i, "0") Then
strTemp = Left$(strTemp, Len(strTemp) - i) & Chr$(64 + i)
Exit For
End If
Next
For i = Len(strTemp) To 1 Step -1
strKingaku = strKingaku & Mid(strTemp, i, 1)
Next
strFuchou = strKingaku
End Function
117 :
名無しさん@そうだ選挙にいこう :02/02/09 08:54
セルの内容を編集するときっていちいちマウスでクリックして 入力ボックスを更にクリックしないと編集できないのが面倒だと思うんですが、 一発で入力ボックスにいけるショートカットってないですか?
>117 F2
119 :
100でした :02/02/09 11:03
大変多くの方からアドバイスいただきましてありがとうございました。 シート関数までが理解できた範囲なのでそちらを活用させていただき ますが、VBAで教えていただいたものを自分のものにして理解できるよう 努力いたします。 長々と占拠してしまい申しわけありません、ほんとに助かりました。
120 :
991&993 :02/02/09 17:13
>エクセル相談所3の992、994さん 出来ましたありがとう。 朝のうちに郵便番号辞書がはいってるのは確認できたんだけど、 enter押したりスペースキー押したりしてて 出来ないって思って誠にお恥ずかしいです。 今、変換押したら出来て感動しました。すごいですね。 来週から家で内職するので、助かりました。ありがとう。
グラフを選択して右クリックしたときに、「オブジェクトの書式設定」がでるようにするにはどうすればいいのでしょうか? 複数グラフを選択した後右クリックするとメニューの中に出てくるのですが 一つのグラフを選択して右クリックしても出てこないのです。。
最近、初めてマクロ始めたんですが、マクロの記録をして、その後 そのマクロを削除しても、ファイルを開こうとすると、マクロを有効にする か無効にするの選択画面が表示されるんですが(ちなみにその他のマクロは 記録されていないんです)この選択画面を表示させない様にするには どうすればいいんでしょうか、初心者な質問ですが、お願いします。
>121 シフトキーを押しながら選択すると、一つのグラフでも オブジェクトの書式設定がでてくるみたい。
>122 「そのマクロを削除しても」ってどうやってやった? VBAエディタ上で行を削除するだけじゃダメだと思うよ。 プロジェクトエクスプローラでモジュールを選択して右クリか ファイルメニューで「解放」ってやればいいはずだけど。
>>124 >122ですが
ツール−マクロ−マクロ名選択−削除という方法ですが
>125 その方法でもVBAエディタ上で行を削除するのと変わらないようだ。 VBAエディタ開いて124後半で書いたとおりにしてみてくれ。
>126 >122です ありがとうございました、解決しました。
データ→入力規則→入力値の種類”リスト”で ドロップダウンリストから、データを選ぶように しているのですが、このドロップダウンリストの文字を 制御できるでしょうか?もうちょっと大きくしたいんです。 コンボボックスで作れば、プロパティでフォント制御できるのですが、 上述の方法だとプロパティがないんです。 方法をご存知のかたがいらしたら教えてください。 よろしくお願いします。
129 :
エクセラー :02/02/10 06:15
厨房的な質問だったら申し訳ないのだが、 列番号のA,B,C...の所が1,2,3...になってしまったのを 元に戻す方法ご存知の方いらっしゃいますか? OSはXPでEXCEL2002です。お願いします。
130 :
msの馬鹿 :02/02/10 09:44
>129 ツール→オプション→全般 のなかにR1C1参照式にチェックが入っているはずだからそれを外せ R1C1というのはエクセルの前のDOS時代の代表的表計算ソフト マルチプランが採用していたやり方だ。
131 :
名無しさん@そうだ選挙にいこう :02/02/10 10:58
IF関数を使って空欄の時は空欄を示すのは 何て表記すれば良いのでしょうか? 空欄=空欄としたいのだが。。 既出だったらスマン
>131 ""ジャネーノ?
自己解決しました。
>>106 ,
>>109 ありがとうございます。
マクロはちょっと分からないので、これを機会に少し勉強してみます。
あるサイトでエクセルの裏技を見つけてやったのだが出来ないよ〜 誰か出来る人いるかな? ●エクセルの裏技 ★フライトシミュレ−ター、、なんで??(^−^; エクセルを起動 →[f5]キーを押す →参照先(R):のらんに x97:l97 と入力してOKを押す(l97のlはLの小文字) →[TAB]キーを1回押す →その状態で[Ctrl]と[Shift] を押しながら 「グラフウィザード」を押す(上にある青と黄色と赤の棒があるボタン) →操作はマウスの左右移動で旋回、上下移動で機首を上下に。 左クリックで前へ右クリックは後へスピードが上がります。 DirectXが必要かもしれません・・・ →[Esc]で終了
137 :
名無しさん@そうだ選挙にいこう :02/02/10 16:55
今までは手作業でやってたんですが、一念発起、マクロ勉強中です。 Excel外のファイルからURLをExcelに貼り付けなければなりません。 URLをコピーしたあと、 「セル右クリック→ハイパーリンク→貼り付け→次のセルに移動」 のマクロを組みたいのですが、クリップボードの内容を貼り付ける 命令文がわからず困っています。 マクロの自動記録をすると以下のようになりました。 ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:= _ "コピーしたURL" なので、無手勝流で ActiveSheet..Paste.Hyperlinks.Add Anchor:=Selection, Address:= _ "" と、「.Paste」を付け加え、URLを削除しましたら、実行時エラー424 オブジェクトが無効ですといわれてしまいます。う〜む、調べてるんですが よくわかりません。どなたか助言いただけますようお願いします。
す、すみません、無手勝流編集後のコードは ActiveSheet.Paste.Hyperlinks.Add Anchor:=Selection, Address:= _ "" です。ActiveSheetのあとのドットはひとつです。
139 :
名無しさん@そうだ選挙にいこう :02/02/10 18:50
大量のシートの同じ位置のセルのデータを抽出して 別のシートに縦に並べることはできないだろうか? 串刺し計算ならぬ、串刺し配列な感じで。 統合で合算やら平均やらはできるのに、ただデータを抜き出すだけ、 というのがどうしてもできない。 だれかお願いします。
>137-138 ActiveSheet.Paste ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:=ActiveCell.Value みたいなのはどうかな?
>140 できました。分けて命令すればよかったのですね。 で、address:= の内容はアクティヴセルに.valueと。 勉強になりました。ありがとうございました。
142 :
名無しさん@そうだ選挙にいこう :02/02/10 22:12
>>137 ハイパーリンクにしなくても「F2」-「Enter」でクリッカブルになるよ。
143 :
名無しさん@そうだ選挙にいこう :02/02/10 22:59
>139 シートを1枚追加し、他のシートのシート名をA列に、他のシートのA1 の値をB列に記入 Sub test() Dim ws As Worksheet, adws As Worksheet Dim LRow As Long Set adws = Worksheets.Add(Before:=Worksheets(1)) For Each ws In Worksheets If Not ws Is adws Then With adws LRow = .Range("A65536").End(xlUp).Row + 1 .Range("A" & LRow) = ws.Name .Range("B" & LRow) = ws.Range("A1") End With End If Next ws Set adws = Nothing End Sub
>>143 さん
excel 2000では出来ませんか?
やたっ!! まさしく求めていた物! こいつはいい! ほんまにほんまにマジ感謝ですぅ>144 m(_ _)mアリガトゴゼェマス いままで手作業でやっていたのは何だったのか・・・。やっぱりマクロ勉強しよう・・。
>146 なれるとこのくらいなら、1〜2分くらいで書けるよ。ガンバレ 基本はループと条件文 Sub aaa() 'アクティブブックの全シート For Each a In Worksheets MsgBox a.Name Next a '開いている全ブック For Each a In Workbooks MsgBox a.Name Next a '選択している全セル For Each a In Selection MsgBox a.Address Next a End Sub
>>4 Sub raws3to1000()
Rows("3:1000").Select
End Sub
1000のところは、適当に。
>>7 基本的に、エクセルではデータの内容を変えずに見た目を変える場合、
表示形式を変えればいい。
80.9875のセルが、"分"が付かないで単に80.9875と表示されているなら、
分単位の数値として扱われているから、
B1に
=trunc(A1)/24/60
と入力して、B1の表示形式を
h"時間"mm"分"
とすればOK
意味は、数値として切り捨てた後、シリアル値と見なしているということ。
エクセルのシリアル値は、1日単位なので。
>>17 =SUMPRODUCT(A1:A20,B1:B20)
>>130 さん
ありがとうございました。助かりました。
また厨房な質問するかもしれませんが、
よろしくお願いします。
153 :
名無しさん@そうだ選挙にいこう :02/02/11 15:05
申し訳ありません。エクセルで作ったグラフなのですが、 凡例で「9−8」と半角で記述したいのです。 なのに入力すると日付と勘違いしているらしく、 9月8日なんて表示してくれます。 ヘルプファイルのグラフのあたりを当たっているのですがそれらしき説明は見つからず・・・ お手数ですが、よろしければご教授ください・・・・
>153 セルの書式設定で、表示形式を文字列にしておいて入力する。 又はアポストロフィをつけて入力する。 ' 9-8
即答ありがとうございました 上手くいきました。感謝いたします
156 :
名無しさん@そうだ選挙にいこう :02/02/11 15:23
人口ピラミッドのグラフが描きたいです。 左右に男女があって、だいたい10歳ごとにグラフを作りたいです。
どうぞご自由にお描きください。
158 :
名無しさん@そうだ選挙にいこう :02/02/11 20:51
130>>ありがとうございました! 長年の疑問が解決いたしました。感謝感激!!
159 :
名無しさん@そうだ選挙にいこう :02/02/11 22:33
Sheet1のデータをSheet2へリンクさせています。 (数値、文字を=Sheet1〜で) そこでSheet1を開かずにSheet2を開いた時に、Sheet1のデータが Sheet2でリンクされて表示されるのですが リンクのセル合計が40000くらいを超えると「メモリが足りません」と出ます。 ただ単にメモリが足りないのでしょうか(当方メモリ320MB) それとも何か大量にリンクさせる方法があるのでしょうか?
>159 > そこでSheet1を開かずにSheet2を開いた時に、Sheet1のデータが > Sheet2でリンクされて表示されるのですが Book1とBook2? > リンクのセル合計が40000くらいを超えると「メモリが足りません」と出ます。 > ただ単にメモリが足りないのでしょうか(当方メモリ320MB) > それとも何か大量にリンクさせる方法があるのでしょうか? 使い方が無謀だと思います。 40000ものセルをリンクする必要性が理解出来ませんが?
161 :
名無しさん@そうだ選挙にいこう :02/02/11 23:56
>>160 すみません。Book1とBook2でした。
>使い方が無謀だと思います。
>40000ものセルをリンクする必要性が理解出来ませんが?
そうですよね。仕事で商品データを入力して使っていたので
膨大な量になってしまったのですが、やはり無謀な作業量なのですね。
何か他の方法を考えてみます。有難うございました。
>161 リンクが必要なのは、普通、リンク元の値が変更される可能性がある時でしょ? 確定数値でなく、見通し数値であるような場合とか。 40000件のデータが、絶えず更新される可能性が無いなら、必要なリンク以外は リンクを切るべきだと思う。
163 :
名無しさん@そうだ選挙にいこう :02/02/12 02:09
>>162 ごもっともです。更新しないデータが沢山あります。
それらを確定データにして、リンクしないようにしてみます。どうも有難う。
>156 100%積み上げ横棒グラフを2つ並べれば? 元データの見せ方に工夫がいりそうだけど。
教えてください。 エクセル2000でレジスターマークを印刷するとなにか四角いものが 印刷されます。プレビューではちゃんとしたマークなのですが。 そのシートをエクセル97に送って印刷するときちんと出てくるのですが バージョンの問題なのでしょうか。
>>165 (´−`).。oO(そこだけフォントを変えてみそ。)
167 :
名無しさん@そうだ選挙にいこう :02/02/13 10:45
>>156 男性のデータをマイナスにして、
-10 10
-35 25
・
・
・
横棒積み上げグラフ一発でOK。
すみません。 文書を開くと、常にその文書とは別にbook1が同時に別ウィンドウで開かれてしまいます。 再インストールしてもだめです。設定等も一通り見たのですが、どうしてもわかりません。 おわかりになる方、教えてください。
170 :
名無しさん@そうだ選挙にいこう :02/02/13 19:08
マクロをぜんぶ削除して開いても「マクロを有効にしますか」ウィンドウが 出てしまいます。もうマクロは必要ないし、操作系のマクロで表示にも 関係ないので出ないようにしたいのですが、どうすればいいのでしょう。。
>170 自分も同じ現象でなやんでます、 どうすればいいのでしょう。
>170 >122から数レス読んでみて。
>172
ガイシュツだったとは、ほんと申しわけないっす。。。
>>124 でできました。ありがとうございました。
174 :
名無しさん@そうだ選挙にいこう :02/02/13 21:54
初心者です。どうか教えて下さい! オートフィルタは行単位に出来ないのでしょうか?
175 :
名無しさん@そうだ選挙にいこう :02/02/14 00:06
初めて質問します。 AデータとBデータがあって、 そのなかでAとBに共通するものだけを抽出したいのですが。 どうすればできるのでしょうか? よろしくお願いします。
>175 =MATCH
>174 ナニガイイタイノカ サパーリワカリマセン
>>174 別なシートに行列を入れ替えて貼り付けてからやるのはダメ?
179 :
名無しさん@そうだ選挙にいこう :02/02/14 19:52
質問です。 Select Caseで比較演算子を使って〜以上〜未満という場合をうまく 表現できず困っています。 たとえば1/3以上で1/2未満という場合ですが Case Is >=1/3 And Is < 0.5 Case Is ( >=1/3 And < 0.5 ) というふうにしてみましたが駄目でした。 あらかじめ変数を宣言して1/3未満、1/3以上1/2未満、1/2以上1未満と いうふうに分類して、それからSelect Caseを使うしかないのでしょうか?
179です。それなりに解決しました。 VBAなら結構すっきり見えるから素直にIfを使った方がよさそうですね。 お騒がせしました。
181 :
名無しさん@そうだ選挙にいこう :02/02/15 12:41
フォームのチェックボックスで困っています。 ワークシートのA1セルにチェックボックスをつくり、このチェックボックスと A1セルとをリンクさせました。これをA2セルにコピーしたらA2セルとリンクし てくれるかと思いきや、A2セルにコピーしたチェックボックスのリンクするセ ルは、元のA1セルなのです。どうやってコピーしたら、リンクするセルも自動 的に変化してくれるのでしょうか?ご存知の方がいましたら教えてください。 ちなみに、リンクするセルの絶対参照(=$A$1)をはずして(=A1)でもやってみた のですが、同じ結果でした。 よろしくお願いします。
182 :
名無しさん@そうだ選挙にいこう :02/02/15 14:13
次のようなステートメントを書いてて使ってたんだけどデータ件数が0件と 表示されて使えなくなりました(データはあるのに)。 どこに問題があるのでしょうか? Set fs = Application.FileSearch With fs .LookIn = "C:\data" .Filename = "*" If .Execute > 0 Then MsgBox .FoundFiles.Count & " 個のファイルが見つかりました。" <<処理>> Else MsgBox "ファイルは見つかりませんでした。" End If End With
183 :
名無しさん@そうだ選挙にいこう :02/02/15 14:31
Excel2000 で、ワークシート関数の sinh() が、 ゼロの付近で正しい値を返しません(例 : sinh(1e-17) がゼロになってしまう)。 自分で近似式を書くしかないのでしょうか?
>>182 コードをそのままコピペして実行したら、
Excelファイルだけ数えて数字出してくれた。
4個見つかったって。
へー、こんなこともできるんだー。←役立たず
わかった。 .Filename = "*.*" にしたら、Excel以外のも合わせて数えてくれたよ!
186 :
名無しさん@そうだ選挙にいこう :02/02/15 17:39
>184 データはUNIXで作った拡張子無しのテキストデータなんです。 で、こないだまでこのコードで動いてたんですが配布した時に署名が 入ってなくて使えないって話だったから設定をいじってるうちに動か なくなったんです。 未だに署名の仕方がわからないんだけど・・・ 署名みたいのが入って使いにくくなったぞ、MS
>182 fs.NewSearch
188 :
名無しさん@そうだ選挙にいこう :02/02/15 23:26
グラフに関する質問です。 excel2000で折れ線グラフを90度回転させたいのですが可能でしょうか? 縦軸に時系列、横軸に数量を配置したいのです。 ちなみに数量はマイナスもあります。 今はいちいちjpgに変換してから回転させているのですが他に方法はあるでしょうか?
189 :
名無しさん@そうだ選挙にいこう :02/02/15 23:46
良スレに今日も感謝。 FAQでしたら申し訳ありませんが、質問です。 Execl2000で、ファイルの最終保存日時をワークシート内に表示して、自動的に更新させたい のですが、こうした機能はないのでしょうか? Wordでは、SAVE DATEフィールドでできるので すが、何か方法がありましたら、ご教示いただけると幸甚です。
>189 回答じゃなくて悪いけど。これできたら便利だね。 漏れはいつも「Ctrl+:」してから保存してます。 他人がファイルいじるとやってくんないからちょっと鬱。
191 :
名無しさん@そうだ選挙にいこう :02/02/16 00:17
>>189 =now()か=today()としておいて、
計算方法を手動にして、保存前に再計算にしておくとできる。
ただし、ブック内のすべての計算が手動になってしまうけど。
>181 Sub Test() Dim ch1 As CheckBox, ch2 As Object, i As Long ActiveCell.Activate For i = 1 To 5 With Range("B" & i) .Activate Set ch1 = ActiveSheet.CheckBoxes. _ Add(.Left, .Top, .Width, Height) ch1.LinkedCell = Range("A" & i).Address(0, 0) Range("A" & i) = "TRUE" End With Next i For i = 1 To 5 With Range("D" & i) Set ch2 = ActiveSheet.OLEObjects. _ Add(ClassType:="Forms.CheckBox.1", _ Left:=.Left, Top:=.Top, Width:=.Width, Height:=.Height) ch2.LinkedCell = Range("C" & i).Address(0, 0) Range("C" & i) = "TRUE" End With Next i End Sub
193 :
名無しさん@そうだ選挙にいこう :02/02/16 00:29
>>188 散布図としてグラフを作成し、
グラフを選択して、
=SERIES(Sheet1!$B$1,Sheet1!$A$2:$A$100,Sheet1!$B$2:$B$100,1)
のようになっているののAとBを入れ換える。
194 :
名無しさん@そうだ選挙にいこう :02/02/16 08:47
セルの塗りつぶしについて。 セルに入力された値が正の数か0か負の数かで、そのセルの 色を自動的に変える方法があったら教えて下さい。 正数だったら、青。 ゼロだったら、白のまま。 負数だったら、赤。 みたいな感じです。
195 :
名無しさん@そうだ選挙にいこう :02/02/16 10:36
条件付書式
Windows板の方でExcelについての質問があったんで、 こっち誘導するから分かる方よろしく。 くだらない質問〜スレより、 813 名前:卒研 :02/02/16 11:03 この質問がこのスレでいいのかわかりませんが質問します。卒研でエクセル97を使っているのですがどうしても分からないところがあります。近似曲線の使い方です。 例えば、0,0,30,50,60,100,100,100,という散布図を作って近似曲線を作ろうとすると、山形の2次曲線になってしまうのです。私が作りたいのは下のようなグラフなんです。 このグラフはエクセルから作れますか?もし作れない場合はこのグラフの作れるソフトも教えてください。 ______ / / / / / __/
197 :
名無しさん@そうだ選挙にいこう :02/02/16 11:57
>>196 この図が正しいなら、
別に近似曲線じゃなくて単に折れ線グラフで良いんじゃないの。
大体散布図って言うのはX・Yと必要だろ。
>197 いえ、折れ線は無理なんです。 0,0,30,50,40,50,80,100,100 みたいなデータの時とか上のグラフのようにはいかないので、近似じゃないとダメなんです。
200 :
名無しさん@そうだ選挙にいこう :02/02/16 14:34
>>199 198の発言について理解しているか?
X 0,0,30,50,40,50,80,90,100
Y 1,2,3,4,5,6,7,8,9
でよろしいか?
いいとして、線形近似(すなわち一次直線)を選ぶ。それが君の望みに最も近い。
ただし勿論最初と最後の0,0や100,100には、君の希望では対応できない。
グラフが寝てる部分はデータ系列から外さないと…
n次関数としてグラフを描く訳だからね。
エクセル以外の作れるソフトは知りません。
>>199 もしかして散布図の各点が結べることを知らないのかな?
202 :
名無しさん@そうだ選挙にいこう :02/02/16 16:19
>201 データ系列が必ず増加(あるいは減少)するとは限らないと思われ たまには乱れるのだが、ギザギザは困ると グラフィックな面では、全て思いのままを出来合いで!は難しひ。
203 :
名無しさん@そうだ選挙にいこう :02/02/16 16:37
【不幸のレス】 このレスを見た人間は七日以内に死にます。 ※あなたに訪れる死を回避する方法が一つだけあります。 それはこのコピペを一時間以内に7つ、別のスレに貼り付ける事です。
204 :
名無しさん@そうだ選挙にいこう :02/02/16 16:39
>>199 200、201に同感。
散布図の上に近似曲線をオートシェイプで手書きしろ。
200、202に同感。 スマソ
206 :
名無しさん@そうだ選挙にいこう :02/02/16 16:49
207 :
名無しさん@そうだ選挙にいこう :02/02/16 16:56
まあどうやるにしても近似曲線の当てはめは、 理論的な裏づけが無きゃダメだよ。 ただつなげればイイってもんじゃない。
208 :
名無しさん@そうだ選挙にいこう :02/02/16 20:22
>>183 sinh(x)は、x<<1とx
>>1 で振る舞いがかなり違うし、
その両方を使うような用途はあまりないから、
目的に合わせて自分でやるしかないでしょう。
>>193 解答ありがとうございます。
しかし、うちのエクセル君はデータ範囲が複雑すぎるため、表示できません。
と言っております。
自分が散布図(初めて聞く言葉だ)に関して無知だからかもしれませんが・・・・
>=SERIES(Sheet1!$B$1,Sheet1!$A$2:$A$100,Sheet1!$B$2:$B$100,1)
>のようになっているののAとBを入れ換える。
AとBを入れ替えると言うことはA列の1月、2月・・・とB列の数量を選択してグラフ化するということですよね?
210 :
名無しさん@そうだ選挙にいこう :02/02/16 20:32
卒研くんは、いわゆるS字カーブを描きたいのだろうが、
>>207 が言うように、どの種類のS字カーブを書きたいのかがわかれば
自然と答えが出るはず。
今出ていたsinh(x)の逆関数などもそのひとつ。
211 :
名無しさん@そうだ選挙にいこう :02/02/16 20:54
>>209 たとえば、
日付 データ1 データ2
2002/2/16 1 5
2002/2/17 2 6
2002/2/18 3 7
2002/2/19 4 8
2002/2/20 5 9
2002/2/21 -5 10
2002/2/22 -4 9
2002/2/23 -3 8
2002/2/24 -2 7
2002/2/25 -1 6
2002/2/26 0 5
というシートがあるときに、このA1:C12を選択して散布図を作ると、
へ
ヘレ
みたいなのが出来る(折れ線グラフと同じ形状)。
そこで、ヘレの部分を選択すると
=SERIES(Sheet1!$B$1,Sheet1!$A$2:$A$12,Sheet1!$B$2:$B$12,1)
となっているが、この第1項は見出しなのでそのままにして、第2項と第3項とを入れ換えて
=SERIES(Sheet1!$B$1,Sheet1!$B$2:$B$12,Sheet1!$A$2:$A$12,1)
とする。
同様に、へを選択し、(選択しにくいが、カーソルキーなどを使って)
=SERIES(Sheet1!$C$1,Sheet1!$A$2:$A$12,Sheet1!$C$2:$C$12,2)
を
=SERIES(Sheet1!$C$1,Sheet1!$C$2:$C$12,Sheet1!$A$2:$A$12,2)
にすれば、
И>
のようになっている。
212 :
名無しさん@そうだ選挙にいこう :02/02/16 21:22
>>192 とてもありがとうございました。
迷惑ついでに質問しますが、選択したセル範囲にガバっと作るにはどうしたよいのでしょう?
>212 どっちのチェックボックスをよ?
214 :
名無しさん@そうだ選挙にいこう :02/02/16 21:38
215 :
( ゚д゚)σ)Д`) :02/02/16 21:49
先ほどからマクロを使ったブックが全てひらけなくなってしまいました。 (マクロ無しのは開けます。) マクロを有効にするか、無効にするかをきいてくる ボタンまでは進めるけどどちらを選択してもそこで画面が止まってしまいます。 最終更新が昨日のファイルでもこうなってしまいます。 自分で組んだマクロなのでウィルスはないと思います。 再起動や、エクセルの再インストールまでしても改善されませんでした。 なにかよい解決方法はありませんでしょうか。
>214 人に頼ってばかりではダメだぞ。 向上心をもて。 Sub Test1() Dim r As Range, ch1 As CheckBox For Each r In Selection With r .Activate Set ch1 = ActiveSheet.CheckBoxes. _ Add(.Left, .Top, .Width, Height) ch1.LinkedCell = r.Address(0, 0) End With Next r End Sub
217 :
名無しさん@そうだ選挙にいこう :02/02/16 21:55
>>216 ありがとう!つきあって!
こんなことができるとわおとといしったばかりなの
べんきょします
>215 Shift を押しながら マクロ有効で開いてもダメ?
219 :
( ゚д゚)σ)Д`) :02/02/16 23:37
shift押しながらでも駄目でした。 その後試行錯誤したのですが、マクロの記述量が少ないブックは すごく長い起動時間の後に開きました。 記述量の多いブックは有効無効選択後に応答無しになってしまいます。 どのくらいの行かは忘れましたが合計200行以上あったと思います。 ブック自体のサイズも1.3M、2.3Mと割と大き目です。 マクロ入りで開けるブックのサイズは190KBです。 このような現象になったのは午後8時ごろなのですが それまでの2時間ほどは何の異常もありませんでした。 また普通に操作できていた今日の午前にLZHにして保存した マクロ入りブックも開かなくなっているので ファイル自体が急に壊れてしまったわけではないと思います。
220 :
( ゚д゚)σ)Д`) :02/02/16 23:42
osはwin98なのですが、これから再インストールしたほうがいいのかな。 今まで集めたエロ動画を失うのが無念でならないのでできればこの手段は選びたくないです。 もしwin再インストール後もブックが開かないと、エロもマクロも失ってしまいます。 この3種のマクロファイルは結構重要なので真剣に悩んでます。
221 :
( ゚д゚)σ)Д`) :02/02/16 23:50
いま試してみたのですが 新しく作ったブックにマクロを記述して保存したものも 再度開く事が困難になってます。 つまり原因はマクロを使用すること自体にあるものと考えられます。 一体何故こんなことになってしまったのでしょうか。 なにか対処法はないものでしょうか。
222 :
名無しさん@そうだ選挙にいこう :02/02/17 00:07
>>211 やっとわかりました〜
丁寧な解説ありがとうございます。
うちの事務所ではこのグラフを作る作業は何年も手書きでやっていたようです。
年度末には300枚ぐらい書くことになってました(^^;)
エクセル歴一週間の僕がこの成果を持っていったら一週間は天狗になっていられますよ〜♪
まだ、わからないこともありますがあとは勉強して来ます。
お世話様でした。
224 :
msの馬鹿 :02/02/17 08:54
>215 excelのバージョンは? 2002(office-XP)なら開けなくなったファイルもMSのサーバーにつないで開けるようになる例がたくさんあるぞ。 大体アクティブ何たらが、悪さしているらしいが
解答してくださった方ありがとうございました。
226 :
出勤シュキシュキ :02/02/17 16:14
227 :
出勤シュキシュキ :02/02/17 16:19
環境は、windows2000 office2000です
228 :
名無しさん@そうだ選挙にいこう :02/02/17 16:32
普通の折れ線グラフで 右がわに y座標を増やすにはどうすればいいんですか?
Cドライブのフォーマット→win98の再インストール→オフィスのインストール を行った結果解決いたしました。 ファイルではなくエクセル側に問題があったようです。 お騒がせしてすみませんでした。 追記 エロ動画の件ですがDドライブに移しておき、 Cドライブのみをフォーマットしたので無事でした。 二兎を追って二兎とも得られました。
230 :
名無しさん@そうだ選挙にいこう :02/02/17 17:03
>229 よかったね。最近質問しっぱなしで消えるヤシが多いなか、 ちゃんと報告してくれるとこっちも一件落着って感じでハッピーです。 卒研くんよ、どう解決したのか教えてほしいな。 自己解決した人もある程度説明してくれると資料価値が生まれて いいと思うのです。
187さん fs.NewSearchも試してみたんですが駄目でした。 スレが進んでて気がつかなかった、遅レスすみません。
>231 そもそも、提示した内容はそのままじゃないでしょ? 他の部分に問題があるって事はないの?
>他の部分に問題があるって事はないの? ソースを見ていただければわかるかと思いますが。 bookをエントリー.xlsで作って、以下のcodeを書いているだけです。 Sub Make_Report() Dim source As Object Dim target As Object Set target = Workbooks("エントリー.xls").Sheets("Sheet1").Range("A1") MsgBox "エントリーデータをc:\dataに置いて下さい。" Set fs = Application.FileSearch With fs .LookIn = "C:\data" .Filename = "*" If .Execute > 0 Then MsgBox .FoundFiles.Count & " 個のファイルが見つかりました。" For i = 1 To .FoundFiles.Count fname = Right(.FoundFiles(i), Len(.FoundFiles(i)) - 8) Workbooks.OpenText Filename:=.FoundFiles(i), Origin:=932, StartRow:=1, _ DataType:=xlDelimited, TextQualifier:=xlNone, ConsecutiveDelimiter:=False _ , Tab:=True, Semicolon:=False, Comma:=False, Space:=False, Other:= _ True, OtherChar:=":", FieldInfo:=Array(Array(1, 2), Array(2, 2), Array(3, 2)), _ TrailingMinusNumbers:=True Range("B13").Value = Range("B13").Value & ":" & Range("C13").Value Range("C13").ClearContents If i = 1 Then Set source = Workbooks(fname).Sheets(fname).Range("A1:A13") source.Copy target.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:=False, Transpose:=True Set target = Workbooks("エントリー.xls").Sheets("Sheet1").Range("K1") target = "DO ID" Set target = Workbooks("エントリー.xls").Sheets("Sheet1").Range("L1") target = "ダブルスパートナー" End If Set source = Workbooks(fname).Sheets(fname).Range("B1:B13") source.Copy Set target = Workbooks("エントリー.xls").Sheets("Sheet1").Cells(i + 1, 1) target.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:=False, Transpose:=True Workbooks(fname).Close (False) Next i Else MsgBox "ファイルは見つかりませんでした。" End If End With Columns("A:M").EntireColumn.AutoFit End Sub
テストデータは以下のフォーマット
PASSWORD:qwSfMtWHNsgPw
ID:ahahaha
名前:HP管理人
読み:テスト
性別:女
EMAIL:
[email protected] 郵便番号:5430083
住所1:
住所2:
TEL:
備考1:
備考2:
登録日:2002/2/10(日)18:12
235 :
名無しさん@そうだ選挙にいこう :02/02/17 21:46
バージョン2000新機能、メニューの項目を初めは一部分だけ表示して、しばらくポインティング してると、残りの項目も表示するようになってるが、あれを無効にして、初めから全部の項目を表示 するように設定するにはどうすればいいのか。
>233 * を *.* で動いたが? 少しだけ改良。 Sub Make_Report1() Dim fs, fName As String Dim tBook As Workbook, mySheet As Worksheet Application.ScreenUpdating = 0 Set mySheet = ThisWorkbook.Worksheets("Sheet1") Set fs = Application.FileSearch fs.NewSearch fs.LookIn = "C:\data" fs.FileName = "*.*" If fs.Execute > 0 Then For i = 1 To fs.FoundFiles.Count fName = Dir(fs.FoundFiles(i)) Workbooks.OpenText FileName:=fs.FoundFiles(i), _ Other:= True, OtherChar:=":", FieldInfo:= _ Array(Array(1, 2), Array(2, 2), Array(3, 2)) Set tBook = Workbooks(fName) With tBook.ActiveSheet .Range("B13") = .Range("B13") & ":" & .Range("C13") If i = 1 Then .Range("A1:A13").Copy mySheet.Range("A1").PasteSpecial _ Paste:=xlPasteAll, Transpose:=True mySheet.Range("K1") = "DO ID" mySheet.Range("L1") = "ダブルスパートナー" End If .Range("B1:B13").Copy mySheet.Cells(i + 1, 1).PasteSpecial _ Paste:=xlPasteAll, Transpose:=True tBook.Close (False) End With Next i Else MsgBox "エントリーデータが c:\data にある事を" & Chr(13) & _ "確認して再実行して下さい。", vbOKOnly + vbExclamation, _ "エントリーデータが見つかりません" End If mySheet.Columns("A:M").EntireColumn.AutoFit Set mySheet = Nothing: Set tBook = Nothing: Set fs = Nothing End Sub
237 :
名無しさん@そうだ選挙にいこう :02/02/18 00:45
>>235 ツール-ユーザー設定-のどっかのタブで設定できるよ。
238 :
名無しさん@そうだ選挙にいこう :02/02/18 01:49
Excel2000 SR1&Win2000を使用しています。 「データ」→「外部データの取り込み」→「データベースクエリ」で Accessのデータベースを取り込んだのですが、 「どのファイルのどのテーブルを取り込んだのか」が参照できなくて不便です。 Accessのリンクテーブルならデータベースユーティリティのリンクテーブルマネージャなどで 確認できるのですが・・・ Excelで同様のことは出来ないでしょうか?
シート内の全データをならびかえるマクロをつくりました。 この並び替えをおこなった後、一番下の行を表示するには どのようなコードを書けばいいのでしょうか。 一番下の行は「aaaa」という変数ですでに取得してます。 .range("a" & aaaa).select または .range("a" & aaaa).activate で表示できるかと思ったのですが無理でした。
すんません、例題集に乗ってました。 scrollrowで解決。
241 :
名無しさん@そうだ選挙にいこう :02/02/18 13:03
散布図でグラフを描いたのですが プロット 以外の点の座標をしる方法はありますか?
242 :
名無しさん@そうだ選挙にいこう :02/02/18 18:20
大変困ってます。 たとえば、「333」を「33.3」と表示させるには セルの書式設定をどうすればいいんでしょうか? わかりにくい日本語ですいませんが、ご教示ください。
243 :
名無しさん@そうだ選挙にいこう :02/02/18 20:17
>>242 10で割る、じゃないんだよね。
自分でもわかってると思うけどちゃんと整理してから書きこんでよ。
244 :
名無しさん@そうだ選挙にいこう :02/02/18 21:42
ワークシートのLOG関数は常用対数なのに、 プロシージャのLog関数は自然対数ってことになかなか気づかなくてはまった。 ヘルプにかいてあるのにね。
>>243 おっしゃるとおりです・・。
「333」と入力して、「33.3」と
表示になるようにしたいんです。
関数を使わずに何とか出来ないもんでしょうか?
(グラフ内の数値をそのように表示したいので)
>>241 「プロット 以外の点の座標をしる方法」 意味が判らん。要説明。
>>242 ユーザ書式に『#"."#』ってこと?
>>228 遅レスだけど。
Y軸を右側(第二軸という)にしたいデータ系列の中の、グラフ中の任意の一点に
マウスを合わせて右クリック。(これでそのデータ系列がアクティブになるはず。)
出てきたメニューから「データ系列の書式設定」−「軸」−「第二軸」の順で選択。
これで第ニ軸が出来るから、その後で第二軸をアクティブにして任意の設定をする。
247 :
名無しさん@そうだ選挙にいこう :02/02/18 22:09
>>245 隣のセルを=A1/10とかにしておいて、
グラフにはそちらのセルを利用すれば良いのでは・・・
いまいちかな。
187さん どうやってもexecuteの結果が0件を返します。 そちらでも動作確認を取られたのでしょうし見た限りcodeに問題無いので 環境ではないかと考えるのですが・・・ windowsXP(pro)+officeXP(developer)、セキュリティ低+デジタル署名無し あと考えられるのは何だろう。
>>248 c:\data にファイルはあるよね?
フォルダを変えてもダメ?
WinXPはまったく知らんけど、NT系なのだから、ログインユーザーによっては
特定フォルダにアクセス出来ないとかないの?アドミニで試すとか。。。
後はわからんねぇ。
例えば x軸0,1,2,3,4,5でy軸10,23,33,45,66,70とし、 散布図で線で結んだ時 xの値が2.5の時のy座標の値を知ることは 無理ですか?
>>242 なんども悪いんだけどもこれが理想的か?
#0"."0
不都合があったらあとは適当になおしてよ
254 :
名無しさん@そうだ選挙にいこう :02/02/19 17:39
255 :
名無しさん@そうだ選挙にいこう :02/02/19 18:06
すいません 単回帰ってどのようにすれば?
256 :
名無しさん@そうだ選挙にいこう :02/02/19 21:38
>>250 散布図では、単調増加になるとは限らない。
グラフが<やZやΣやξになる可能性もあり、
xを決めてもyは決まらない。
第1案
単調増加になるような近似曲線を求め、
その数式にxを代入する。
第2案
元データが単調増加であるということが予めわかっているのなら、
求めるxを挟む2点を求め、その間を補間する。
>>256 で言っている単調増加とは、
yが増れば必ずxが増える、ということです。
というか、単調増加である必要無いですね。 酔っていて混乱してスマソ ひとつのxに対して対応するyが必ずひとつであればよい。
259 :
名無しさん@そうだ選挙にいこう :02/02/19 21:56
260 :
名無しさん@そうだ選挙にいこう :02/02/19 22:13
XIRRのような、範囲を要求する引数が複数ある関数で、飛び飛びの範囲を指定するこ とは可能でしょうか。例えば、 =XIRR(A1:D1,A2:D2) とするようなところを、 =XIRR((A1,C1:D1),(A2,C2:D2)) という感じにしたいのですが、当然エラーになります。[Ctrl]+[Shift]+[Enter]で、 配列変数にしてもだめでした。 引数が定数の場合は、配列定数でできるのに、変数になるとできないなんて、方手落 ちのような気がする。
261 :
名無し募集中。。。 :02/02/19 22:39
Excel97の時はショートカットーキーを割り当て、ctrl + Alt + 3で起動するようにしていたのですが、 2000になってからショートカットのプロパティを開けてもショートカットキー入力欄がグレーアウトして 入力できなくなりました。 WIN98SE・WIN NTともに駄目なのですがなぜかWin2000だけは入力可能です。 Win98やWinNTでもショートカットキーで起動したいのですが、良い手はないでしょうか?
262 :
名無しさん@そうだ選挙にいこう :02/02/19 23:54
めちゃめちゃ困ってるんで聞きます。 今、エクセルを開こうとするとなぜかQ2の利用のあれが出てしまいます。 で、ケーブル回線なんで繋がる危険は無いのですが、エクセル自体ができないのでかなり困っています。一応今の状態のまとめ。 ・エクセルを起動と同時にQ2に入る前のあれが出てくる。 ・ダイヤルチェッカーは既に起動済み ・エクセルのアイコンがダイヤルチェッカーの虫眼鏡が無いver ・セーフモードでは起動済み ってとこです。どなたか改善法を教えて下さい。
263 :
名無しさん@そうだ選挙にいこう :02/02/20 00:29
>>255 知らないなら使っちゃいけません。
ただ示されたデータ系列みると単回帰でいけそうな気はする。
264 :
あるケミストさん :02/02/20 00:29
>241=250 グラフのデータ系列右クリックで散布図上に近似曲線を表示。 オプションでグラフに数式を表示させれば 各種の近似式が表示されるから任意のXの時のyの値が求められる。 250の例から考えると 線形近似 y=12.6x+9.6667 多項式近似(3次)y=-0.0179x2+12.689x+9.6071 指数近似 y=13.288e0.3772x 関数で切片やら傾き求めることも可能だが?
みなさん いろいろありがとうございました 曲線で だいたいの値を検討します
266 :
名無しさん@そうだ選挙にいこう :02/02/20 14:41
A1:E1の範囲に入力された値をF1を参照する事によってセルの色を変える様 にしたいのですが・・・この場合、条件付き書式を使えばいいのですが、す でにそのセルの範囲で条件付き書式の設定を3つ使っている為、これ以上条 件付き書式は使えません。条件付き書式の設定を3つ以上設定できる方法、 または条件付き書式を使わない方法がありましたら教えてください。
遅レスですいません。 お答えいただいた皆さんのおかげで「333」→「33.3」 の表示はうまくいったんですが、欲が出てきまして、 グラフ上で「333」を「33.3%」と表示させたくなりました。 ご教示いただいたのでは、うまくいかないようなんですが、 再度教えてもらえないでしょうか?今のままでも充分なんですが よろしくお願いいたします。
教えてもらった方へのお礼が抜けてました。 改めてありがとうございました。
269 :
あるケミストさん :02/02/20 19:16
>245 #0"."0"%" じゃダメなのかな?
270 :
名無しさん@そうだ選挙にいこう :02/02/20 19:42
Aというファイルと、それを修正したBというファイルがあるのですが、 どこを修正したか比較検索するにはどうすればいいのでしょうか。
271 :
名無しさん@そうだ選挙にいこう :02/02/20 19:51
連続でセルをコピーすると、「クリップボード」とかいうツールバーが 偉そうにシートのど真ん中に出てきて、新(チン?)機能を 堪能してくれと言わんばかりに現れます。 いいかげん邪魔くさいので、この機能をごっそり抹消したいのですが いい方法はあるでしょうか?
>>270 (;´д`).。oO(テキスト化して diff 掛ける、ぐらいしか思い浮かばないヨ)
>>270 変更履歴の応用
修正前のAで
【ツール】メニュー→【ブックの共有】で、「複数の〜〜〜」に
チェックを入れて保存
Bを全選択してコピー→Aに貼り付け
【ツール】メニュー→【変更履歴の確認】
ただし、書式の確認は不可であるため注意。
また、最初は失敗する可能性が大で取り返しがつかなくなるかも
しれないのでバックアップは必要です。
>>273 変更履歴の表示で「新しいシートに変更箇所一覧の作成」を
したほうがわかりやすかも
>>271 コピーしても3回連続で無視して閉じれば出てこなくなります。
278 :
名無しさん@そうだ選挙にいこう :02/02/20 21:33
お世話になります。 エクセル表計算の他シート参照に関しての質問です。 決まった間隔での参照作業を簡単にしたいのですが 作業シートのセルで別ファイルAのセルから数値を参照した時、もう一つのセルに同じ別ファイルAの一定数離れたセルから参照をさせたい時はどうすればいいのでしょう。 AファイルのA1からOFFSETして常に3っつ下のセルを参照させたいのですが・・・ 方法がありましたら教えてください。よろしくお願いします。
>>266 ユーザー定義書式
操作方法はヘルプを参照
>>278 マルチポストはダメだめだよ、やかく〜。
うーむ。場所違えばいーかとおもたよー。失礼>280
>272さん
>>273-274 さん
>>275 さん
ありがとうございました。273の方法でできました。
275のツールも後で使ってみます。
275のツールを使ってみました。 全てのワークシートを一括して比較し、差異に色がついたり 差分についての表ができたりと、かなり便利です。 ありがとうございました。
284 :
名無しさん@そうだ選挙にいこう :02/02/21 11:38
VLOOKUPで検索した値に一致する別の値を、 他のセルに表示させたいのですが、どうすればいいですか。 例えば「2635-7AJ」と検索されたら、別のセルに「380ED」、「IBM」 と表示させたいのです。
>>277 マクロですか・・マクロはほとんど知識がない為にどうしたらいいのかわかりません。
>>279 ユーザー定義書式・・ヘルプを見ながら考えてみます。
わからなくなったらもう1度お尋ねするかもしれません。
有難う御座いました。
>>284 Vlookupをさらに使用。第3引数の列番号を有効に使いましょう。
A列に 0,0,1,1,1,0,0,0,-1,-1… というように1,0、-1のいずれかが入っています。 そしてB列に =IF(A3=1,B2+1,IF(A3=-1,0,B2)) C列に =IF(B3=B2,0,IF(B3=1,1,-1)) というワークシート関数をいれてます。 これをしたまでオートフィルしますと、 A列において、「1」がひとつ以上出てきた場合、最初の「1」の行のC列に 「1」をかえし、 その後初めてA列に「−1」が出てきたときにC列に「-1」が返されます。 それ以外の場合は同じくC列に「0」が返されます。 このB,C列で行われている作業をユーザー定義関数にしたいのですが (つづく)
288 :
名無しさん@そうだ選挙にいこう :02/02/21 14:48
エクセルで入力したデータを、OCR用紙に印刷しようとしているのですが、 印刷位置の調整がなかなか上手くいきません。 途中に別のソフトを噛ませて印刷位置の設定等を上手く行えませんでしょうか。
Function sing() As Integer Dim row As Integer '行 Dim col As Integer '列 row = ActiveCell.row col = ActiveCell.Column If Cells(row, col - 1).Value = 1 Then Cells(row, col).Value = Cells(row - 1, col).Value + 1 ElseIf Cells(row, col - 1).Value <> 1 Then If Cells(row, col - 1).Value = -1 Then Cells(row, col).Value = 0 ElseIf Cells(row, col - 1).Value <> -1 Then Cells(row, col).Value = Cells(row - 1, col).Value End If End If End Function このようなコードを書いたところ失敗におわってしまいました。 if文以下は間違ってないと思います。 予想ではユーザー定義関数が放り込まれているセルアドレスの取得法が おかしいのだとおもいますが、どのようにすればいいのかわかりません。 よい解決法がありましたら教えてください。
すいません、質問撤回します。 どうやらひとつのユーザー定義関数では無理っぽいです。
291 :
名無しさん@Emacs :02/02/21 15:51
すみません。ちょっとお聞きします。 Excel(に限らずMS系のOfficeツール全般なんですけど) の直線オブジェクトに目盛をつけたいんですけど、そん な事って出来ますでしょうか? なんか変わりになるオブジェクトでも良いです。 これを --------------------------------------------- こんな風にしたい ---+---+---+---+---+---+---+---+---+---+---+-
>>286 どうもありがとうございます。
検索値の、第3引数の列番号の具体的な記述が分からないのです。
変化する場合、何を入力したらいいのかが…。
293 :
名無し募集中。。。 :02/02/21 21:37
294 :
名無し募集中。。。 :02/02/21 21:47
295 :
名無しさん :02/02/21 22:19
A県B市C区DEFマンションG101号室 A県B市C区DEFGマンション蒲田202 : : : これを分解するVBAマクロ(エクセル)を作ったのですか、区以降をどうすればよいか教えて下さい。
>>295 どうにも出来ません。
固定長でもなく、規則性のないデータを区切れるわけないでしょ。
>>291 | を1つ作って選択し、Ctrlを押しながらドラック&ドロップして、何個も複写
オブジェクトの選択を押し、周囲をドラックして全て選択
図形の調整−配置・整列で「上揃え」と「左右に整列」
― を作って上に置く
オブジェクトの選択を押し、周囲をドラックして全て選択
グループ化
>295 意図がよくわからん。
301 :
名無しさん@そうだ選挙にいこう :02/02/22 00:47
これは可能でしょうか? チェックボックスオブジェクトの形状は、変えられますか? 丸とか、三角とか・・・ お願いします。
>>287 何いってるかサパーリ解からん。
=IF(A3=1,B2+1,IF(A3=-1,0,B2)) はB列のどのセルにいれる?B1か?
A列のデータを元にどんな結果を得たい訳?
引数も与えない関数書いて、無理だって言い切ってるけど多分出来るぞ。
勉強しな。
>>299 シートCに管理番号を入力するだけで、
型番とモデルの値が反映されるようにしたいのです。
シートCのA2には、
=IF(ISERROR(VLOOKUP(A2,シートA!A2:B2,2,FALSE)),"",VLOOKUP(A2,シートA!A2:B2,2,FALSE))
としましたが、
B2が分からないのです。
ちなみにシートCは作業報告書のため、実際は一列ではありません。
あと、シートAはCSVで更新が多く、サンプルも800近くあるので、
変更が大変なのです。
#長文すまそ。
┏━━━━┯━━━━┓
┃管理番号│ 型番 ┃
┠────┼────┨
┃ 1234 │26357AJ ┃
┗━━━━┷━━━━┛シートA
┏━━━━┯━━━━━━━┓
┃ 型番 │ モデル. ┃
┠────┼───────┨
┃ 26357AJ│ThinkPad 380ED.┃
┗━━━━┷━━━━━━━┛シートB
┏━━━━┯━━━━┯━━━━━━━┓
┃管理番号│ 型番 │ モデル. ┃
┠────┼────┼───────┨
┃ 1234 │26357AJ │ThinkPad 380ED.┃
┗━━━━┷━━━━┷━━━━━━━┛シートC
304 :
名無しさん@Emacs :02/02/22 11:00
291です。
>>297 さん
どうもありがとう。こんな地道にやらないと
だめなんですね。これで実装してみます。
>>298 Excelで表を追加するのってできます?
305 :
名無しさん@そうだ選挙にいこう :02/02/22 11:22
シートのタブに色は付けられないの?
(;´д`).。oO(無理)
>>306 あれ?2002ではつけられなかったっけ?
手元にないから確認できないけど
>>305 少なくとも2000までは無理。<シートタブの色
308 :
名無しさん@そうだ選挙にいこう :02/02/22 13:50
いつもお世話なります。 A2〜G2(計7列):A1を参照している I2〜O2( 〃 ):I1を参照している Q2〜W2( 〃 ):Q1を参照している 以下同じように、7列カタマリでの 計算式はすべてそれぞれの1列目の セルを参照しています。 A2で計算式を作り、G2までコピーするためには 式の中で登場するA1は、1の部分に絶対記号の$ をつけなければいけませんが、A2〜G2までコピー し終わってから、A2〜G2まで範囲指定して I2やQ2にコピーするためには先ほどの$マークを 消さなければなりません。 何とか、最初は絶対参照だったA2を、相対参照 させてコピーできないものでしょうか。 A1を含めて「切り取り」「貼り付け」だったら うまくいきますが、エクセルは切り取ったら 一度の貼り付けしかできないようなのでだめでした。 indirect,address,column の関数を使って A1,I1,Q1を割り出す式を作ってみたら ものすごくながくなってしまいました。 他にいい方法があるような気がして。。。
309 :
名無しさん@そうだ選挙にいこう :02/02/22 16:48
>>308 切り取りでなくコピーを使ったら、何度でも貼り付けられると思うが。
Winでの用語はよく知らんが、ctrl-cからctrl-vかな。
>>299 自己解決しました。
シートCのC2に
=IF(ISERROR(VLOOKUP(B2,シートB!A2:B2,2,FALSE)),"",VLOOKUP(B2,シートB!A2:B2,2,FALSE))
で、できました。
どうもありがとうございました。
>>303 シートC!C2=
VLOOKUP(B2,シートB!A1:B2,2)
じゃぁだめなんですか??
>>312 該当するものがなかった場合に、何も表示させたくなかったのです。
>>311 は間違いでした。
複数グラフがあるんだけど、 整列させることできる?? コピペじゃうまくいかないし、 図形の調整では外枠だけは整列できるんだけど。。。 プロットエリアもろもろまで整列させたいよ!!
315 :
名無しさん@ウン :02/02/22 23:05
今後VBAはどうなるの?
>>308 隠し列を作って良いなら...
1.A3〜G3にそれぞれ、0、-1、-2 ・・・ -6までの数値を入れとく。
2.A2に =OFFSET(A1,0,A3) と入れて、G2までコピー。
3.A2:G3までコピーし、I2とQ2に貼る。
4.3行目は非表示にする。
317 :
名無しさん@そうだ選挙にいこう :02/02/22 23:49
>316 その方法で完璧にできました!!!! 実際のセル番地や式の内容は複雑だったのですが、 OFFSET関数を使うことと隠しセルに数値を入れる ことをそのまま実践してみました。 実はOFFSET関数は初めて見たので今からヘルプで 「なぜできたのか!」を調べまーす。 どうもどうもありがとう!
318 :
名無しさん@そうだ選挙にいこう :02/02/23 00:09
Excel2000とExcel97です。 チェックボックスを追加したんですが、 「コントロールの書式設定」の「代わりに表示する文字列」のフォントは、 どこで変更できるんですか。 あと、複数のチェックボックスを、 セル内で整列させるのもおしえてください。
>>314 テスト環境で試せよ。
Sub Test()
Dim myChart As ChartObject
Dim W As Long, H As Long, T As Long, L As Long
cnt = 1: T = 0: L = 0: W = 250: H = 250
On Error Resume Next
For Each myChart In ActiveSheet.ChartObjects
With myChart
.Activate
.Top = T
.Left = L
.Height = W
.Width = H
End With
With myChart.Chart.PlotArea
.Height = 200
.Width = 200
.Top = 20
.Left = 20
End With
With myChart.Chart.Legend
.Top = 20
.Left = 180
.Height = 20
.Width = 60
End With
If (cnt Mod 2) = 0 Then
L = L + W + 10
T = 0
Else
T = T + H + 10
End If
cnt = cnt + 1
Next myChart
End Sub
>>314 グラフのプロットエリアを整列させるなら
【グラフの種類】の【ユーザー設定】の【ユーザー定義】でどれかひとつを
登録してください。
外枠などの配置は【Shift】を使用して選択すれば【オブジェクトの書式設定】
が使用できるようになります。
あとは、【図形の調整】でよいかと思われます。
…変なの出来ました。御自由に御使い下さい。
>>208 Win98SE 付属の電卓では正しく計算出来るだけに惜しまれます。
同じ会社の製品ではないみたいですね。(藁
---8<------8<------8<------8<------8<---
Option Explicit
Private Function s(x As Double) As Double
Const c As Double = 2018349# / 4194304# '≒ asinh(0.5)
'sinh() の Maclaurin 展開用係数
Const f3 As Double = 1 / 6# '1 / 3!
Const f5 As Double = 1 / 120# '1 / 5!
Const f7 As Double = 1 / 5040# '1 / 7!
Const f9 As Double = 1 / 362880# '1 / 9!
Const f11 As Double = 1 / 39916800# '1 / 11!
Const f13 As Double = 1 / 6227020800# '1 / 13!
Const f15 As Double = 1 / 1307674368000# '1 / 15!
Dim y As Double
If x > c Then
s = s(x / 3)
s = s * (3 + 4 * s * s) '三倍角の公式
Exit Function
End If
s = x * x
s = (((((((f15 * s + f13) * s + f11) * s + f9) * s + f7) * s _
+ f5) * s + f3) * s + 1) * x
End Function
つづき Public Function my_sinh(x As Double) As Double Const c28 As Double = 1 / 268435456# '2 ^ -28 Dim sign As Integer sign = Sgn(x) Select Case sign Case 0 my_sinh = 0 Exit Function Case -1 x = -x End Select Select Case x Case Is <= c28 my_sinh = x Case Is < 22 my_sinh = s(x) Case Else On Error GoTo huge my_sinh = Exp(x) / 2 End Select my_sinh = my_sinh * sign Exit Function huge: my_sinh = Exp(x / 2) my_sinh = (my_sinh / 2) * my_sinh * sign End Function
XLSをXML変換するフリーソフトはありますか?
324 :
名無しさん@そうだ選挙にいこう :02/02/23 22:02
サブプロシージャで求めた数値を 親プロシージャで使うにはどうしたらいいのでしょうか?
325 :
エクセルマン :02/02/23 23:49
>324 グローバル変数でいいのでは。
326 :
名無しさん@そうだ選挙にいこう :02/02/23 23:50
>324 サブプロシージャを関数にすれば、値を返せる。
>>324 結果を入れたい変数を、サブプロシージャの引数としてByRefで渡す。
>>327 それで出来る?下の例では、i は100のままだよ。
それとも使い方間違ってる?
Sub OYA()
Dim i As Integer
i = 100
Kodomo1 (i)
MsgBox "Kodomo1の戻り値: " & i
i = Kodomo2(i)
MsgBox "Kodomo2の戻り値: " & i
End Sub
Sub Kodomo1(ByRef i As Integer)
i = i + 1000
MsgBox "Kodomo1の計算結果 " & i
End Sub
Function Kodomo2(i As Integer) As Integer
Kodomo2 = i + 1000
End Function
329 :
名無しさん@そうだ選挙にいこう :02/02/24 03:00
>>328 ()を抜いた、
Kodomo1 i
も、やってみよう!
>>329 お、できた。
Call Kodomo1 (i)
と
Kodomo1 i
Callを省略する時は、引数カッコも省略しなければなりません。
使わないんでシランカッタヨ、サンクス。
変な仕様やね。
うまくいきました。 ありがとうございました。 もうひとつ質問なのですが あるプロシージャ内だけで使用する変数が番号違いで1200個あります。 kai0001〜kai1200という様に後ろの番号を変えたものだけなのですが kai[0001-2000] as single というようにシンプルに宣言する方法はありますでしょうか?
>>319 thanx!!
ChartObjectでやるんですんねん。
Legendはよくわかりませんが、
マターリむさぼりますです。
>>331 なぜ配列を使わないの?
Dim kai(1200) As Single
そんなのがあったのですね! 配列というのですか。これから勉強しておきます。 ありがとうございました。
ユーザーフォームにセルA1の文字列を表示させたいのですが、 どう記述すればよいかわかりません。 msgboxに表示させることはわかったのですけど・・・
336 :
名無しさん@そうだ選挙にいこう :02/02/24 20:55
A列とB列は固定して、右にスクロールすることってできる? 項目は常に見たいので…。
すまそ。イルカに「固定」って聞いたらあっさりできたよ。
>>335 ラベルでも置いて、
Private Sub UserForm_Initialize()
Label1.Caption = ActiveSheet.Range("A1").Text
End Sub
とかやるんだよ。
339 :
ここもいいよ! :02/02/24 21:12
>>338 おかげさまでできました。
ありがとうございました。
341 :
名無しさん@そうだ選挙にいこう :02/02/25 16:11
エクセル2000で作った表を2002が入ったPCで呼び出すと マクロが実行できず、デジタル認証がどうのと出てきて機能しません。 どうやったら実行できますか?
342 :
名無しさん@そうだ選挙にいこう :02/02/25 19:55
PMT関数やFV関数で、支払期日の欄に、期首か期末か(1か0)を指定しますよね。 なんで期首と期末じゃ金額が異なるのでしょうか? 利率の発生の仕方がよく分りません。 どなたか教えてください!!
>>342 期首にすると、一回払いならば利子がつかない。
2回目以降で利子がつく
>>343 ありがとうございます。
支払い期間が3年だと、利子は期首だと3回ついて、期末だと1回ですよね。
どういう仕組みなのかさっぱり分りません。
エクセルのレコード一つ一つを、ワード文書1ページ1ページに する方法はありませんか? よろしくお願いします。
>346 差込印刷のこと?
>>345 まああれだ、PMTとは1万円の支払額があったとするだろ。
それを5分割にした時には一回あたりいくら支払えばいいかというのを
計算するわけだ。
通常考えれば2000円だわな。でも、1回目の支払いを通常行なったときに
残額は8千円ではないわけだ。利子がつくからだよ。残額は年利12%だとすると
一回の支払いごとに残額が1.01倍になるよね。つまり残額は¥8,080なのよ。
まあ、そうすると一回の支払いが2000円であるという前提が次から崩れるわけなんだけど
そういうのも考慮して1回あたりいくらずつ支払えば、たとえ一回の支払いごとに
元金が増えたとしても指定回数で支払い終わるかを計算してくれるのがPMTなんだよ。
ふつうに計算すると頭が痛くなるらしいよ。
さて話を戻すけどこれが期首なんだ。一回目の支払い時にはじめて利子が
発生する状態のことを指す。
まだよくわからんと思うので次の期末と対照して考えてみてください。
期末とはなにかというと、1万円借りた時点でいきなり利子がついている状態だ。
つまり、¥10,100からのスタートになるわけですね。
期首と期末と考えると頭がごっちゃになりそうならばこう考えてくれ。
期首=1で、期末=0だよね。このことから
「1とは一回目の支払い時にはじめて元金が利子分だけ増加する状態
0とは0回目、つまり借り入れ時にいきなり利子分だけ増加している状態」
いかがでしょうか?
>347 いえ、10レコードのリストがあったら、 10ページのワード文書にしたいのです。
>350 347じゃないが... だから差込み印刷だろ。 使い方知らんのか?印刷も出来るし、文書にも出来る。
>350 ワードのヘルプよんでね
>>348 5分割って、年利は5で割るのですか?
すみません。もう頭ごっちゃです。
でも少し分ったような気もします。
>>353 利率・・・一回の支払い終了後にどの程度元金が増加してしまうか
期間・・・現在価値を何等分にするか
現在価値・元の値
さっきのたとえだと年利は12%だろ。ということは一回の支払いごとに
元金が増加する率は1%だ。年利を月利になおすのだよ。PMTでは1回の支払い後に
元金がどのくらい増加するかを利率で定義するんだよ。
1年間で12%増加するってんなら1ヶ月で1%だよね
>>354 そうですよね。月1%で5回支払いですよね。失礼。
期首なら全部で200円の利子がつくし、期末なら300円の利子がつく。
図に描いてみたら分りました!!期末は1回目は100円、2回目は80円…
で、期首は1回目80円、2回目60円…って感じですね。
ありがとうございました!感謝。
>>347 素早い情報ありがとうございます。
>ワードのヘルプよんでね
すいません。ヘルプで確認しました。
大変助かりました。
>>351 >使い方知らんのか?印刷も出来るし、文書にも出来る。
おっしゃる通りです。印刷だけの機能と勘違いしてました。
ご指摘ありがとうございます。
357 :
名無しさん@そうだ選挙にいこう :02/02/26 13:07
教えてください。 ちょっとイレギュラーな話になるのですが。 MODE(最頻値)という関数がありまして。 =MODE(1,2,3,4,4,5,5,5,6) とすれば5が帰ってくるわけなんですが。 =MODE(1,2,2,3,4,4,5,6,6) と言う感じで、最頻数が複数ある場合、仕様では一番手前にある2が帰ってきます。 これを、一番最後に出てくる値(この場合は6)を返してくるようにしたいのですが、 よい方法はありますでしょうか? よろしくお願いします。
358 :
名無しさん@そうだ選挙にいこう :02/02/26 16:01
質問させてください。 たとえば、A1とC5のデータをまるごと入れ替えたい場合、 いまのところカット&ペーストでやってますが、 入れ替えたいデータが大量にあるとちょっとめんどうです。 もっとスマートにエクスチェンジするやるやり方ってありますでしょうか
>>357 (´-`).。oO( パラメタの順序を逆にして MODE( ) に突っ込む..で、いかが?)
>359 並び替えが出来る量ならそれでよかったんですが(^^; A B C 〜 CI 1 16 14 12 2 | 24 10 10 11 18 25A1:A25 B1:B25 C1:C25 〜CI1:CI25 26 28 25 12 23 | 50A26:A49B26:B49 〜〜〜 ずれそうな気がするけど大丈夫かな? こんなかんじで、25行ごとに最頻値計算が入るものが数十列あるので、 各パラメータにソートをかけるのが物理的に厳しい情勢だったりします。 何かよい知恵はないものでしょうか?
VBAで書いてみたがどうだろう? ドライバも作ったのでセルにデータを入れて動かしてみて下さい。 'x_range(string型): "A3:D11"(リテラル不要)のデータで引き渡す。 'X_mode(varient型): 最も頻繁に出現する値 (最頻値) を配列で返す。 Function x_mode(x_range As String) As Variant Dim R As Object Dim flg As Boolean 'セル値を配列に集計。C_arry()はC_arry(0,x)がセル値,c_arry(1,x)が出現数。 '(xは出現した数字の種類数) Set R = Range(x_range) Dim C_arry() As Integer i = 0 ReDim C_arry(1, i) For Each c In R flg = False For j = 0 To i - 1 If C_arry(0, j) = c.Value Then flg = True Exit For End If Next If flg = True Then C_arry(1, j) = C_arry(1, j) + 1 Else ReDim Preserve C_arry(1, i) C_arry(0, i) = c.Value C_arry(1, i) = 1 i = i + 1 End If Next '最多出現数を求める Dim max As Integer max = 0 For j = 0 To i - 1 If max < C_arry(1, j) Then max = C_arry(1, j) End If Next '最多出現数の数字で配列作成 Dim tmp_x_mode() As Integer Dim x_mode_cnt As Integer x_mode_cnt = 0 For j = 0 To i - 1 If max = C_arry(1, j) Then ReDim Preserve tmp_x_mode(x_mode_cnt) tmp_x_mode(x_mode_cnt) = C_arry(0, j) x_mode_cnt = x_mode_cnt + 1 End If Next x_mode = tmp_x_mode() End Function
こっちがドライバ Sub X_mode_Driver() i = x_mode("A12:B15") j = 0 For j = 0 To UBound(i) MsgBox i(j) Next End Sub
363 :
名無しさん@そうだ選挙にいこう :02/02/26 20:46
ExcelVBAのユーザフォームで、ボタンをクリックすると、 ・標準のブラウザにURLを渡して起動する。(ヘルプとして使いたい) ・標準のメーラーにあて先を渡して起動する。 という機能をつけたいのですが、どうすればよいのでしょうか。
364 :
名無し募集中。。。 :02/02/26 21:30
>>363 Dim IE As Object
'オブジェクトの生成
Set IE = CreateObject("InternetExplorer.Application")
IE.Navigate2 Text1.text
IE.Visible = True
'オブジェクトの解放
Set IE = Nothing
365 :
名無し募集中。。。 :02/02/26 21:35
>>364 -> IE.Navigate2 Text1.text
で
実行エラー424 オブジェクトが必要です
と言われるんですが...
あと、IEにこだわらず、通常使うブラウザを起動できないですかね?
368 :
名無し募集中。。。 :02/02/26 22:51
>>367 Text1オブジェクトを作ってない、とかいうのは無しだぞ
>182さん ありがとうございます。 とりあえずコードをそのまま貼り付けてx_mode関数を実行してみたのですが、#VALUE!が帰ってきました。 マクロの実行をしてみると「型が一致しません」となってしまいます。 デバッグを実行してみると > C_arry(0, i) = c.Value この行が引っかかっているようです。 当方、VBAはほとんどわからないので、見ていただけますでしょうか? よろしくおねがいします。
やっぱりコピペするしかないの?
373 :
名無しさん@そうだ選挙にいこう :02/02/27 16:51
すいません、教えてください。 グラフの区分線をあるデータとデータの間には付けて、他のデータ間には 付けないなんてことは出来るんでしょうか?
>>349 さん
デジタル署名の情報ありがとうございました。おかげでやっとマクロが使えました。
375 :
名無しさん@そうだ選挙にいこう :02/02/27 17:03
エクセル2000のVBで困っています。 VBを起動してユーザーフォームを作成し、右クリックしてプロパティを 選択すると画面の左にプロパティの窓が開きますが、「全体」「項目別」 のどちらもいろいろと表に書いてあるのですが草書みたいな変なフォント で文字も小さく何が書いてあるかさっぱりわかりません。 思いつく限りのメニューを探しましたがどうにもなりません。 ここの文字のフォント変更の仕方を教えてください
376 :
名無しさん@そうだ選挙にいこう :02/02/27 18:16
既出かもしれませんが 使用している行が60行程度、列が100程度で 画像等のオブジェクトを張り付けているわけでも マクロを使っているわけでもないのに ファイルサイズが1.4MBを超えておるシートがあります FDに入らないし困ってます。 気になるのはスクロールバーを下に引っ張ると 65536行目まで行っちゃいます。 どなたか原因&対処方を教えていただけませんが?
377 :
名無しさん@そうだ選挙にいこう :02/02/27 19:20
>376 M$サポートに既出 検索キーは「ファイル」「サイズ」
>371さん >> C_arry(0, i) = c.Value >この行が引っかかっているようです。 多分、範囲内に数値以外のデータが入ってるんでしょう。 範囲とは"X_mode_Driver()"の i = x_mode("A12:B15") 部分です。 数値以外はskipするようにした修正版をupしますが月末は仕事が立て込んで て客先に張り付きになりそうなのでちょっと待って下さい。
379 :
名無しさん@そうだ選挙にいこう :02/02/27 20:31
Excel2000にて印刷時の罫線を極限まで細くしたいのですが、 Excelだと線の太さの数値入力が出来ないのでしょうか?
380 :
名無しさん@そうだ選挙にいこう :02/02/27 21:27
381 :
名無しさん@そうだ選挙にいこう :02/02/27 21:45
同じ計算をワークシートで行った場合と マクロで行った場合で答えが3%〜5%くらい異なるのですが、仕様なのでしょうか?
382 :
名無しさん@そうだ選挙にいこう :02/02/27 21:59
383 :
名無しさん@そうだ選挙にいこう :02/02/27 22:07
>>381 例えばどんな計算で、それぞれどんな値が返ってくるの?
>380サマ あちこちさ迷いましたがそこだけは存在忘れてました。 無事解決しまして。ありがとうございました
プログラミングミスでした。 VBAにおいて、計算対象が本来の行とひとつずれてました。
386 :
名無しさん@そうだ選挙にいこう :02/02/28 01:46
皆様、お助けください。 エクセル2000でセルの罫線を、 印刷しないようにすることはできるでしょうか? もし、できるのならば、その方法を教えてください。 よろしくお願いします。
>>386 ファイル>ページ設定>シートタブで
「簡易印刷」にチェックを入れる
389 :
名無しさん@そうだ選挙にいこう :02/02/28 08:30
373は放置ですか?
377さんのご指摘で、 MSサポートを検索しました。 解決策らしきものは「最後のセル」の修正だと思い、 65536行目から上に向かって必要部分手前までドラッグして 編集-削除しましたが、 行は消えず、「最後のセル」の位置は65536行目の最終列のセルのままで 保存してもファイルサイズが小さくなりません。 ほかの方法があるのでしょうか? どなたか教えていただけますと助かります。
391 :
名無しさん@そうだ選挙にいこう :02/02/28 09:45
新しいシートにグラフを作った時に 他のシートからリンクを張るのはどうやるのでしょうか? ハイパーリンク設定しようと思っても「このドキュメント内」 にグラフシートが出てきません ver2000です。文章が変ですみません
質問を2つさせて頂きます。 1.「縦3cm×横2cmの表」と言う風にcm単位で図形を 書くにはどうしたら良いのでしょうか。エクセルとワードでは どちらが良いですか? 2.「平成○年○月○日」と入力したセルから、別セルに"年"、"月"、"日"を 取出すのはどうしたら良いのでしょうか?詳しい計算式を教えてください。 よろしくお願いします。
>>392 2.についてはleft()、mid()、right()でいけるんじゃない?
3cm×2cmの表に関しては、ワード使って表のプロパティーから
自分で調節してくれ。mm単位で調節可能だから。
394 :
名無しさん@そうだ選挙にいこう :02/02/28 13:29
>>390 ぼくも何回か遭遇したことがある。
データコピーして新規シートに貼りつけ、
これでうまくいく場合もあったし、いかない場合もあった。
395 :
名無しさん@そうだ選挙にいこう :02/02/28 14:33
すみませんが、教えてください。 EXCEL2000を使用しています。 sheet1に計算式を作って、その答えをsheet2に表示することって できますか? ヘルプも読んだのですが、全然わかりません…
>378 お手数をおかけします。 よろしくおねがいします。
397 :
名無しさん@そうだ選挙にいこう :02/02/28 14:38
sheet1の計算式が入っているセルが仮に B10だとしたら、sheet2のどこかのセルに =sheet1!B10 と書けばsheet1のB10の 結果がそのまま出ます。 または、sheet1の計算式をそのまま 直接sheet2に入力してもできますよ。 計算式の前に =sheet1! をつけるだけ。
398 :
名無しさん@そうだ選挙にいこう :02/02/28 14:39
>397 は、>395へのレスです。
>397 ありがとうございます!! これで進むことができます!
357さん これでどうでしょうか? 'x_range(string型): "A3:D11"(リテラル不要)のデータで引き渡す。 'X_mode(varient型): 最も頻繁に出現する値 (最頻値) を配列で返す。 '範囲に含まれる値が文字列の場合、データが無い場合(empty)の場合は該当データをスキップ。 Function x_mode(x_range As String) As Variant Dim R As Object Dim flg As Boolean 'セル値を配列に集計。C_arry()はC_arry(0,x)がセル値,c_arry(1,x)が出現数。 '(xは出現した数字の種類数) Set R = Range(x_range) Dim C_arry() As Integer i = 0 ReDim C_arry(1, i) For Each c In R If IsNumeric(c.Value) = True And IsEmpty(c.Value) = False Then flg = False For j = 0 To i - 1 If C_arry(0, j) = c.Value Then flg = True Exit For End If Next If flg = True Then C_arry(1, j) = C_arry(1, j) + 1 Else ReDim Preserve C_arry(1, i) C_arry(0, i) = c.Value C_arry(1, i) = 1 i = i + 1 End If End If Next '最多出現数を求める Dim max As Integer max = 0 For j = 0 To i - 1 If max < C_arry(1, j) Then max = C_arry(1, j) End If Next '最多出現数の数字で配列作成 Dim tmp_x_mode() As Integer Dim x_mode_cnt As Integer x_mode_cnt = 0 For j = 0 To i - 1 If max = C_arry(1, j) Then ReDim Preserve tmp_x_mode(x_mode_cnt) tmp_x_mode(x_mode_cnt) = C_arry(0, j) x_mode_cnt = x_mode_cnt + 1 End If Next x_mode = tmp_x_mode() End Function
401 :
376=390 :02/02/28 19:19
やっぱり必要部分だけ 新シートに貼り付けるしか手が無いんですかね? そうすると、幅とかの書式が新シートにあわせられるので、 書式をいじらないといけないので、めんどくさいのです。
402 :
名無しさん@そうだ選挙にいこう :02/02/28 21:32
>>399 ちょっと間違い。
> 直接sheet2に入力してもできますよ。
> 計算式の前に =sheet1! をつけるだけ
ではなく、計算式の中の[それぞれの番地の前に]
=sheet1!をつける です。
403 :
392ですが :02/02/28 22:13
>>393 さん
その方法だと数字が一桁の時、年月日まで入ってしまうんですよ。
「平成11年11月11日」→"11"、"11"、"11"
「平成2年2月2日」 → "2"、 "2"、 "2"
という風に数字だけを抽出したいんですが・・・・。
申し訳ありませんが、よろしくお願いします。
404 :
名無しさん@そうだ選挙にいこう :02/02/28 22:30
1.平成11年11月11日というデータがどういう形式で入っているのか (日付型か、文字列型か) 2.切り出したデータはどうあればよいのか (表示さえ11ならよいのか、数値として11であるべきなのか…)
405 :
392ですが :02/02/28 22:39
404さん 1.答えとしておかしいかもしれませんが、どちらでも構いません。 出来れば両方お教え頂けますでしょうか? 2.表示が11なら構いません。
指名かよ! 405でどっちでも良いと言ってるからシリアル値で入っていると仮定して =YEAR()-1988で標準で年 =MONTH()で月 =DAY()で日 仮に昭和の場合は当然-1925だ。 指名はするな。他の回答者に対して失礼に当たるし、 俺もここに張り付いているわけじゃない。
407 :
392ですが :02/02/28 22:51
指名したわけでも、他の解答者の皆さんを 無視したわけでもないのですが、 不愉快の想いをさせて、どうもすみません。 とりあえず406さんに教えてもらった方法でやってみます。 どうもありがとうございました。
408 :
エクセル初心者です。 :02/02/28 23:05
A1:C1のいずれかの値がD1と等しい場合、E1に○、等しくない場合は×、と表示させ たいのですが・・・。 ifを使えばいいのかな、と思ってるんですが行き詰まってしまい困っています。 どなたか教えて頂けないでしょうか。宜しくお願いします。
>>408 =IF(A1=D1,"○",IF(B1=D1,"○",IF(C1=D1,"○","×")))
エクセルで動かしてないけど、これであってると思う。
>>388 さん
無事、解決しました。
どうもありがとうございました。
>408 =IF(OR(A1=D1,B1=D1,C1=D1),"○","×") 比べるセル数がもっと多ければ配列数式の方がよさそうだけど。
=IF(OR(A1=D1,B1=D1,C1=D1),"○","×")
A1にシリアル値で日付データがはいっていて、表示が11ならよいと仮定して 年:=A1(表示形式:e) 月:=A1(表示形式:m) 日:=A1(表示形式:d)
414 :
名無しさん@そうだ選挙にいこう :02/03/01 00:21
>>408 =IF(COUNTIF(A1:C1,D1),"○","×")
質問です。 A1に例えば15と数字が入っています。同様にA2にも、A3にも1〜20の 数字が入っていまして、仮にA115で、A2に9が入ったとき、B2に13と入るように、 A1とA2の差額?を記入していきたいのですが、どのようにしたら良いでしょうか? 初心者ですが 皆様よろしくお願いします。
416 :
名無しさん@そうだ選挙にいこう :02/03/01 10:46
A1に文字を入力したら自動的に ActiveSheet.Name = Range("A1") を行いたいのですが、どうすればできますか?
417 :
名無しさん@そうだ選挙にいこう :02/03/01 11:50
>>415 A1が15で、A2が9の時、B2に13?どこが差になるんだ?
と一応突っ込んでおく。
B2に =A1-A2 と入力しなさい。その後にB2を下方向にコピーしなさい。
回帰係数をもとめるアルゴリズムをつくってVBA上で計算するのと VBAでワークシート関数「slope」を使用して計算するのでは どちらが処理速度がはやいのでしょうか。
>>416 ThisWorkbookのSheetSelectionChangeイベントに
ActiveSheet.Name = ActiveSheet.Range("A1").Value
>>400 ありがとうございます。
なんとか動作させることができました。
ですが、返ってくる値がmodeと同じ値のようです。
あまり長々とご迷惑するのも悪い気がするので、なんとか自力でやってみます。
ありがとうございました。
>>417 ご返事ありがとう御座います。しかしながらB2にA1―A2と入れると
B2は6となりますよね。答えが13となるようにしたいのですが
そういうやり方はありますでしょうか?
上にも書きましたが、A列には 1〜20の数字が不特定に入ります。
よろしくお願いします。
>>421 意味がわからん。
A1とA2の差額と書いている以上どう考えて13が入るんだ?
やりたいことをサンプルとして具体的に書け。
君のやりたいことが第三者にはちっともわからんのだがな。
421>> ご親切にアドバイスありがとう御座います。 A B 1 15 2 9 13 3 1 15 図で示すとこんな感じです。 つまり、A1に15で、次のA2に9ですから、 その間の16,17,18,19,20,1,2,3,4,5,6,7,8、で、13個間があいていますよね。 その個数のことです。 初心者なので説明と用語がわかりませんが いかがでしょうか。 よろしくお願いします。
>> 423 さん、すいません。上司に命令されて、切羽詰ってますもので。 よろしくお願いします。
>>424 その例だとB3に15って書いてるけど、これはどのセルとどのセルの比較なんだ?
A1とA3?A2とA3?
>>424 B3に15が入るはどういう計算だ?
そこの流れだと10,11,12,13,14,15,16,17,18,19,20になるんじゃないの?
ということは11だよな?
訳分からんよ。
単純に算数で考えると
=(20-A1)+(A2-1)ってことだろ。
なんじゃ、これ?
428 :
名無しさん@そうだ選挙にいこう :02/03/01 15:54
>>419 ありがとうございます。
この方法だと、どのセルが変更されても代入が行われるということでよろしいでしょうか?
あと、マクロが実行されると「元に戻す」が使えないのは仕様でしょうか。
すいません説明が下手で。
>>426 A2とA3の比較です。が、慌てていて例が間違っていました。
A2が9なので、10,11,12,13,14,15,16,17,18,19,20、で、10でした。
ちゃんとした例をもう一度書きます。
A B
1 15
2 9 13
3 1 10
4 7 5 (A3が1なので、2,3,4,5,6、で、B4が5になります。)
5 2 14 (A4が7なので、8,9,10,11,12,13,14,15,16,17,18,19,20,1で、14となります。)
よろしくお願いします。
>>429 =IF((20-A1)+(A2-1)<=20,(20-A1)+(A2-1),(20-A1)+(A2-1)-20)
これをB2に入れて下にドラッグしていけ!
間違ってる場合、訂正してくれよ。
>>430 さんどうもありがとう御座いました。正確に出ました。
A列で、A5が2で、A6が3の時は0になるのですが、
上記の式では20となってしまいます。
その点を訂正したいのですが、どうやるのかわかりません。
よろしくお願いします。
<=を<
お忙しいところどうもありがとう御座いました。 本当に助かりました。
グラフの外枠を修正するとき、alt+マウス移動でセル枠線に 合わせるってやりますよね。で、印刷範囲ギリギリのセルでこれやると、 Excel2000:普通に印刷範囲内。問題なし Excel2002:なぜか印刷ページ数増加。当然追加ページは白紙。 フォントと見た目の関係でとか、外から貼り付けた図形とかでページが 増えることはあるけど、グラフでこうなるとは…他の人もそうなんでしょうか?
435 :
名無しさん@そうだ選挙にいこう :02/03/01 23:25
え〜、すごくマヌケな質問で申し訳ないのですが助けてください。 Excel2000を使ってますが、「ツール」→「オプション」→「移行」で 「Lotus1-2-3形式のキー操作」が『オン』になったまま戻りません。 『オフ』にしても次にシートを開くとまた『オン』に戻ってしまいます。 多分、以前に一度自分で『オン』にしたのだと思いますが直し方が判らず困っています。 アンインストールして再度インストールしましたが直りませんでした。 助けてください!お願いします。
>>409 >>411 >>414 教えて頂きありがとうございました。おかげさまで無事解決しました。
また困った事があったら質問させて頂きます。
本当にありがとうございました。
>428 仕様です。 新しいワークブックで 1."ツール"→"マクロ"→"新しいマクロの記録"で記録を開始します。 2.セル"A1"に文字を入力。"a"を入力してみます。 3."ツール"→"マクロ"→"記録終了"で記録を停止します。 4.「元にもどす」ボタンを押すと"a"が消える。 5."ツール"→"マクロ"→"マクロ"で記録したマクロを実行します。 6.「元にもどす」ボタンが無効になっている。 この操作で2と5の相違がわかると思います。
357さん お役に立てませんでしたか・・・ 元データとやりたい事をメールで送っていただければ見てみますが。
440 :
名無しさん@そうだ選挙にいこう :02/03/02 18:50
Excel2000でのエラーメッセージなんですが、 メニューから印刷をクリックすると、 ”ファイルにアクセスできませんでした”というエラーが表示されて、 印刷が出来ないのですが、どなたかこのエラーの解除方法を知っている方いらっしゃいますか? Excelを起動した直後の何もセルに入力していない状態で出ます。 ただし、ボタンのほうから印刷すると普通に印刷されるのですが…
AAAAA AAAAA BBBBBBBB BBBBBBBB BBBBBBBB CC CC CC のように同じ内容のセルが複数あった時、同じ内容のうちの一つのセルを残して、 AAAAA BBBBBBBB CC のようにするにはどうしたらいいんでしょうか?
442 :
435です。 :02/03/03 01:40
「エクセルの学校」で調べてみたら バグ だと判りました。 書いてある通りにレジストリを削除して再インストールしたら直りました。 お騒がせしました。
>441 1行目にタイトルを入れる(リストが複数列の場合は全てに入れる) ほげほげリスト AAAAA AAAAA BBBBBBBB BBBBBBBB BBBBBBBB CC CC CC ほげほげリスト内のセルを選択し、メニューのデータ−フィルタ− フィルタオプションの設定で「重複するレコードは無視する」を 選択してOK(重複セルは非表示になる。再度表示させるには メニューのデータ−フィルタ−全て表示) 必要に応じて別のシートにコピー
エクセルで昇順、降順に並べ替えるには どうしたら良いのですか?
>>444 Excelのヘルプ>キーワード「並べ替え」で検索
A B C D E F G H 1| 12 24 45 12 45 12 10 12 2| 11 13 84 25 14 44 21 13 前提:列番号EはA、FはB、GはCに関連したい値です。 ここで列E,F,Gを求める 上の図の例で行くと 1行目ならE1=45,2行目ならF1=44 H1に最大値E1に関連する値A1=12 H2に最大値F2に関連する値B2=13 を書き込んでいくにはどのような関数を使えばよろしいのでしょうか
>>446 1) E〜Gの範囲で最大値を求める。(MAX関数)
2) E〜Gの範囲で1の最大値が何番目にあるか探す。(MATCH関数)
3) Aを基準に2で求めた数だけずらした位置の値を求める。(OFFSET関数)
って方針でどう?
(E〜Gの間で最大値が2カ所以上出たとき、一番左のセルが使われるけど)
>>447 OFFSET関数かぁ
なるほど思いつかなかった、447さんの方針で試してみます
レスありがとうございました
何の問題もなく目的達成できました
450 :
名無しさん@そうだ選挙にいこう :02/03/05 14:03
エクセルの質問
451 :
名無しさん@そうだ選挙にいこう :02/03/05 16:40
仕事で管理しているファイルが200くらいあるんですが これをエクセルでリスト作成したいんです。 ファイル名だけを縦に並べたいんですが、 1つ1つ手打ちしないで一気に並べる方法ってありますか? よろしくおねがいします。
>>451 Sub ファイル名読み込み()
Dim fn As String
Dim i As Integer
i = 1
fn = Dir("C:\WINNT\*.*", vbNormal) '※C:\WINNTの部分を対象ドライブとフォルダ名に書き換える
With ActiveSheet
.Cells(i, 1) = fn
While fn <> ""
i = i + 1
fn = Dir
.Cells(i, 1) = fn
Wend
End With
End Sub
1 ファイル一覧をテキストファイルに出力してくれるソフトを拾う 2 実行 3 結果をエクセルにコピペ
454 :
名無しさん@そうだ選挙にいこう :02/03/05 23:40
エクセルのソフトを出力できるフリーのソフトはありませんか??
455 :
名無しさん@そうだ選挙にいこう :02/03/05 23:57
>>454 やりたいことを自分で咀嚼してから書きこもう。
456 :
名無しさん@そうだ選挙にいこう :02/03/06 00:09
エクセルのファイルを出力できるですね・・・
458 :
◆ejtEjtjE :02/03/06 02:22
A B C D E F 1 α β 点 α β 点 2 1 2 30 4 5 60 3 6 3 90 1 3 100 ・・・ という表があって、(α、βは1〜6まで)これをピボットテーブル(平均)で β α 1 2 3 4 5 6 1 20 30 40 50 60 2 10 40 80 50 90 3 30 50 70 70 80 4 40 30 55 55 60 5 50 90 30 30 77 6 90 30 10 20 88 というようにまとめたいんですけど、どーすりゃいいんすか?
紙のベータ版? エクセルのファイルのビュワーソフトを 探してたんだけど、あった。自己完結と。
>>460 (´-`).。oO(胃エーテル。)
ドス窓で DIR /ON /B > dir.txt
とかやって、ファイル嫁ばいいのニナー
462 :
名無しさん@そうだ選挙にいこう :02/03/06 13:34
データが1.4MBくらいなんだけど、LZHで圧縮すると112Bになります。 圧縮112Bってことは本来400MBだと思うんですが。。。 このデータはあるデータのシートをたくさん削除して作ったんだけど、 削除したハズのシートの残像がデータに残ってるとかってあるのかな? データを軽くする方法知ってる方いますか?
>>462 > 圧縮112Bってことは本来400MBだと思うんですが
(´-`).。oO(んなこたぁ〜 ない)
464 :
名無しさん@そうだ選挙にいこう :02/03/06 14:46
>>463 「400Bぐらいだと思う」の間違いですね。
で、解決策はご存知?
465 :
名無しさん@そうだ選挙にいこう :02/03/06 15:43
文字列の出現回数を計算するのに、 =LEN(<文字列>)-LEN(SUBSTITUTE(<文字列>,<検索文字列>,LEFT(<検索文字列>,LEN(<検索文字列>)-1))) ってしていますが、他にスマートな方法ってあります? エクセルの文字列処理って、かなりトリッキーな事をしないと出来ないこと多すぎと思います。
>>464 > 「400Bぐらいだと思う」の間違いですね。
(´-`).。oO(んなこたぁ〜 ないよん)
てか、「本来」ってのがNGワード。
いつ(の時点のファイル)がオリジンなのかしらん…。
あと、出来合いのファイルからシートやその一部を
切り取るよりも、
新規ブックに対して 出来合いのファイルのシートやその一部を
コピー&ペーストするほうが、(自分にとって)不要なデータの
混入に対しては強いです。
お試しあれ。
>>466 新規にコピペしたほうがいいんですね、では試してみます。
アドバイスありがとうございました。
>>465 (LEN(<文字列>)-LEN(SUBSTITUTE(<文字列>,<検索文字列>,""))) / LEN(<検索文字列>)
うう、全然スマートじゃないな...
さらに検索文字列長が0だとDiv/0エラー(藁
469 :
名無しさん@そうだ選挙にいこう :02/03/06 16:54
EXCEL2000で他人が作成した物なんですが ファイルを開くときに 他のファイルへの自動リンクが設定されています うんだらかんだら ・情報を更新する場合は[はい] ・情報を保持する場合は[いいえ] をクリックして下さいと出るんですが ワークシート中を検索してもそれらしいファイル名が探せず。 新しいファイルに内容をCOPYしても出て来るのですが 何とかこのリンクを切ることは出来ないでしょうか? 説明が陳腐ですみませんがよろしくお願いします。
>>468 どうも。
エクセルの組み込み関数に無い機能を使おうとすると、どうもパズルを解くようで、、
トリッキーなコードを使うと、後で虫取りが大変ですが、このまま使います。
ところで、自分で関数を定義するって出来るの?
471 :
名無しさん@そうだ選挙にいこう :02/03/06 17:21
マクロでフォームのテキストボックスからセルに文章を入力したいんですけど、 テキストボックス内で改行をすると、セルに『・』な文字が入力されてて邪魔です。 たぶんコレ、改行コードだと思うんだけど、消すにはどうしたら良いの? よろしくお願いします。
>>470 VBAで標準モジュール追加して、
その中でFunctionプロシージャを定義してやれば呼べるね。
# 使ったこと無かった...
>>472 (´-`).。oO(うん。うん。)と、首肯してみるテスト。
Function プロシージャを自分でかけばよいのよさ。
特定の文字の数とか数えるの、簡単になるさ。
やってみそ
>>465
>>469 結合されてたり非表示になってたりするセルにリンクがあったりして。
以前そんなことがあったので。
476 :
名無しさん@そうだ選挙にいこう :02/03/07 01:45
すいません。。エクセルファイルが表示可能なフリーソフトをご存知 でないでしょうか? エクセルを持ってなくて、どうしても至急表示させなければいけない ファイルがあるのですが。 教えていただけませんでしょうか?宜しく御願いいたします
477 :
名無しさん@そうだ選挙にいこう :02/03/07 01:59
あげ
>>475 Excelのツール>オプション>表示タブの「数式」にチェックを入れて
ファイルへのリンクがないかもう一度確認してみたら?
481 :
476と477 :02/03/07 02:13
478さん。本当にありがとうございました! ほんとに素早いレスで、感謝の言葉もありません。。 ありがとうございました。。
482 :
名無しさん@そうだ選挙にいこう :02/03/07 16:06
>475 >480 結合セルにありました! でも、結合するときにどちらかのデータが無くなるはずなのに なんで残っていたんでしょうね? ありがとうございました。
483 :
名無しさん@お腹いっぱい :02/03/07 16:49
初めてうかがいました。 早速質問させていただきます。 マクロで作成した表(入力シート)をweb上に貼り付けたいのですがどうすればよいのでしょうか?
484 :
おやじ35歳 :02/03/07 17:28
A列に入社年度、B列に性別、C列に部署、D列に年齢が入力してあります。 このデータを元に「60年入社」「男」「総務」「42歳」の全ての条件に合致する社員数をカウントしたいのですがどのような数式を作ればよいでしょうか。 自分では、{count(if($a$2:$a$100"=60",if($b$2:$b$100"=男",if($C$2:$c$100"=総務",$a$2:$100$,0))))} としてみたのですが、ぜんぜん違う答えになってしまいました。 どのような方法をとればよいでしょうか。 ちなみにエクセル暦 1年。独学です。ようやくif式が何を意味しているのがわかり始めてきました。 また、自分が所有している書籍は、Xメディアの「超図解EXCEL 2000」基礎編、応用編、関数編です。ここにのってるよという指摘もお願いします。 同様に「エクセルの勉強部屋」「エクセル道場」にもあるぞという指摘もお願いします。 自分も検索をしてみたのですが探すことができませんでした。(あったのかもしれませんが理解できなかったのかもしれません。) 過去ログで検索した際、このスレの「1」で二つの条件のものは見つけたのですが4つのものに当てはまるのかどうかわかりませんでしたし、わたしがかろうじで理解できるCOUNT関数でなかったので再度質問をさせていただきたいと思います。 よろしくお願いします。
ゲ、同い年だ... まとめてやろうとするんじゃなくて、条件にあてはまるデータにフラグを立てて、 そのフラグを数えればいいと思う。 各行のE列あたりにつぎのような式を書けば =IF(AND(A2=1960, B2="男", C2="総務", D2=42),1,"") 該当するデータだけ1がたつから、=COUNT(E2:E100)とかすればいい。
書いてから気づいたけど、=IF(AND(...),1,0) として =SUM(E2:E100) でもいいっすね。 いろいろな工夫があるってことで。
>>484 ピボットとかは使っちゃだめなの?
だめならF列くらいに次の式を使ってちょ。
=And(A2=60,B2="男",C2="総務",D2=42)
そうすると条件に適合した人にはTrue、ちがえばFalseとかえる。
あとは、どっかに
=Countif(F2:F100,true)
実験していないが多分出ると思われ。
>>483 質問がアバウトなのでよくわからないが……単にWebページとして保存コマンドじゃ駄目なのか?
>>483 スレ違い。Web製作板 か WebProg板 へ 逝っておいで。
…って、「入力シート」を Web ページに貼り付けて
何ををしたいんだろう。
かなり不便なものが出来上がるに違いない。
490 :
名無しくん :02/03/07 21:34
>484 フィルタとSUBTOTAL使うのはダメかな?
491 :
EMIKO :02/03/07 21:55
すみませんが、どなたか ピポットテーブルの使い方教えて下さい。
>>491 教えようがありません。
自分で使ってみてニュアンスをつかんでください。
ヒントとしてはデータの集計・分析に使用。
493 :
名無しさん@そうだ選挙にいこう :02/03/07 23:00
>>484 ダブルクォーテーションの位置が違う
>>485 >>487 配列数式を知らないのか?
>>471 =SUBSTITUTE(そのセル,CHAR(10),"")
置換したい場合は、ダイアログの中でCtrl+Jをおす。
>>491 EMIKOたんいくつ? (;´Д`)ハァハァ....
>>493 元質問の COUNT() の使い方を説明するほうに頭が行ってたもんで。
指摘する手間で説明してもらえたらうれしかったと思うんだけど。
>>493 これで満足でしょうか?
{=SUM(IF(A2:A100=60,IF(B2:B100="男",IF(C2:C100="総務",IF(D2:D100=42,1)))))}
498 :
名無しさん@そうだ選挙にいこう :02/03/08 09:23
会社にExcel2000が入っているんですが、セル-書式の設定が「標準」なのにもかかわらず、 全ての入力した数値が1/10で表示されてしまうようになってしまいました。 やってた当人に聞けば「突然なった」とのこと。 本気で業務できなくて困ってます。誰か解決法知りませんか?
>>491 ぴぼっとテーブルについては、
(´-`).。oO(ヘルプっつーか、チュートリアルっつーか、そういうのが)
付いていたんじゃなかったっけ?
500 :
おやじ35歳 :02/03/08 13:21
みなさんありがとうございます。 >485、486、487 確かに別のセルに計算をさせてその結果を参照するという方法は初心者の自分にとって理解しやすいものでした。 しかし、「60歳」「男」「総務」「42歳」の条件に合うものだけでなく、それぞれの年度や部署などの様々な組み合わせで集計をする必要性がありますので、この方法を採ると多量のセルが必要になるような気がしますがどうなんでしょう。 >493 ダブルクォーテーションの位置を修正すれば、わたしの立てた式は有効に働くのでしょうか? >496 この、頭にSUMがつく式で複数条件に合致した場合に特定セルの合計を求める式を作りうまくいった経緯から、COUNTの式を作ったのですが、COUNTが頭だと同じようにいかないのでしょうか。 >497 過去ログでこれを発見していたのですが、オートフィルタ等をすると表がぐちゃぐちゃになってしまうように記憶していたのですが、記憶違いなんでしょうか? なんとかCOUNTを使って1つの式にしたいと考えていたのですが、ピボットテーブルやデータベース関数を使うほうがわかりやすいのでしょうか?自分が理解できていない分、不安があるのですが。 もし、データベース、ピボットなどを使う場合、社員数(元の表となるサンプル)の増減によっては範囲の指定をその都度する必要があるのでしょうか。 SUBTOTALについては勉強をしてみます。 引き続きよい(物分りの悪いおやじが理解できる方法:都合がよいですが)方法がありましたらご教授願います。
501 :
名無しさん@そうだ選挙にいこう :02/03/08 13:47
Excel2000で、計算式のあるセルだけ入力出来ないように規制したいんですが 簡単な方法はないでしょうか。 (シートの保護とかで、セルを自分で一つ一つ選択するのではなく、 自動的に計算式のあるセルだけ選択して保護する技を、以前雑誌で見たような 気がするんです) どなたか分かる方、教えて下さい。宜しくお願いします。
表示形式で 0972××××××(0975000000未満)と入力したら 0972-××-××××と表示 0975××××××(0975999999以下)と入力したら 097-5××-××××と表示 0977××××××(0976000000以上(上記以外))と入力したら 0977-××-××××と表示 までは出来たんですけど、 090××××××××(携帯)が 090××-××-××××になっちゃうんですね。 マクロでLEN関数(文字列数)で分岐してやってみたんですけど If Len("b18") = 10 Then Selection.NumberFormatLocal = """0""##-####-####" ElseIf Len("b18") = 9 Then Selection.NumberFormatLocal = "[<975000000]""0""###-##-####;[<975999999]""0""##-###-####;""0""###-##-####" Else End If ↑こんなのじゃダメみたいで、どうすりゃいいですかね。
503 :
名無しさん@そうだ選挙にいこう :02/03/08 14:53
セルの複数範囲指定をVBAでやろうと思っています。 RANGEを使えば簡単なんですが、コードで制御したいため、CELLSを使いたいのですが・・・・ (変数で処理したいため。CELLS(x,y)みたいな感じで) CELLSでの複数範囲指定の方法がなかなか載ってなくて困っています。 わかるかたよければご教授願います。
504 :
名無しさん@そうだ選挙にいこう :02/03/08 14:54
エクセルで、ばらばらに入力したセルを名前順に並べ替える プラグインとかってありますか? 厨房くさい質問ですみません…。
>>503 expression.Range(Cell1, Cell2)
で対角にCELLSオブジェクト指定してやればええんじゃないの?
ヘルプからコピペ
> 次の使用例は、シート 1 のセル範囲 A1:C5 のフォント スタイルを斜体に設定します。
> Range プロパティの構文 2 を使用します。
> Worksheets("Sheet1").Range(Cells(1, 1), Cells(5, 3)). _
> Font.Italic = True
>>504 データ→並べ替え
だと何か問題が?
506 :
名無しさん@そうだ選挙にいこう :02/03/08 15:55
LOTUSだと ワークシートタブの色を変更出るんですが EXCEL2000だと出来ないですよね ここ何年LOTUSいじっていないけど 好きだー!(だいぶ慣れたけど)
507 :
名無しくん :02/03/08 23:05
>500 SUBTOTALを使うとフィルタによって隠れたセルはカウントしなくなる。 フィルタでいろんな条件設定をかけてやれば その都度、表示されてる行の数がSUBTOTALで計算される。 SUBTOTALの使い方はヘルプを参照。 フィルタはきちんとしたリスト形式になってないとダメ。 リスト形式なんかもヘルプになかったかな。
508 :
名無しさん@そうだ選挙にいこう :02/03/09 18:48
保守age
509 :
名無しさん@そうだ選挙にいこう :02/03/10 17:38
パソコンにインストールされている、昔のエクセル、ワードを、フロッピーにコピーすることってできないのでしょうか? どなたか、詳しい方、お教えください・・。
>509 あなたは、輪レザーですか? そんなことを書くのはやめてください
便乗質問気味なのですが、
>>496 を見てハタとひざを打ちまして、
当方の業務に活かすべく試行錯誤しております。が、どうしても
解決できない点がいくつかでてきましたので質問させてください。
Q. 配列数式では「C:C」のような範囲指定はできない?
{=SUM(IF($C$2:$C$100>=4,IF($C$2:$C$1000<5,1,)))}
だと、C2:C100の範囲で「4」「4.5」の数を集計できるのですが、
{=SUM(IF($C:$C>=4,IF($C:$C<5,1,)))}
とすると#NUM!となってしまいます($を外してもだめでした)。
日々データを追加していきながら集計したいため、範囲を決め打ち
したくないのです。もちろん、C2:C100をC2:C10000などとすることは
考えたのですが、べつの問題(次に書きます)が発生して希望どおりの
動作にはなりませんでした。
最終行を見つけることのできる関数などあれば教えていただけると
幸いです。ヘルプなど見てるのですが、まだ発見できません。
>>511 のつづきです。
すみません、いきなりですが訂正させてください。
×{=SUM(IF($C$2:$C$100>=4,IF($C$2:$C$1000<5,1,)))}
○{=SUM(IF($C$2:$C$100>=4,IF($C$2:$C$100<5,1,)))}
コピー&ペースト時のミスです。○の式を入れているのですが#NUM!エラーに
なります。
さて、「C2:C10000」などと広い範囲を指定すると、集計したいデータに「0」が
あるためにうまくいかず、こまっています。
{=SUM(IF($C$2:$C$10000>=0,IF($C$2:$C$10000<1,1,)))}
として「0」と「0.5」の数を集計したいのですが、この式だと空白セルも「0」と
見做され、集計されてしまいます。ものすごく基本的なことかとは思いますが、
セルの書式設定を文字列にしたり数値にしたり、いろいろにしても空白セルを
数えないようにはできませんでした。ISBLANKを使おうとしてみたのですが、
これもうまくいきませんでした。なにかよい工夫があればご教示いただけると
ありがたく思います。
なお、説明が遅くなりましたが、0〜5段階で0.5刻みのデータを集計したいのです。
(「4.5〜4」が10個、「3.5〜3」が8個・・・という感じです。「0〜0.5」がうまくいきません)
自分でも試行錯誤しておりますが、アドバイスあればいただきたく。お願いします。
513 :
名無しさん@そうだ選挙にいこう :02/03/11 00:12
質問っす。 ウェブから、データをとって、それを今日の日付けの下に貼り付ける ようなマクロをつくろうと思うんですけど、マクロ使い始めたばかりなので よくわかりません。 誰か教えてください。
>>512 これじゃダメなんか?
=SUMPRODUCT((C2:C1000>=0)*(C2:C1000<=0.5))-COUNTBLANK(C2:C1000)
>>514 さん
なるほど、ばっちりできました。まだまだ知らない関数が多くて勉強のし甲斐が
あります。ありがとうございました。取り急ぎお礼のみにて。感謝。
VLOOKUP関数で範囲内が空白セルの場合"0"と 表示されてしまいますが、空白セルとして 返すにはどうしたら良いでしょうか?
>>516 IF関数と組み合わせて、空白の場合は空白を返すようにする。
518 :
516ですが :02/03/11 11:40
実はIF関数と組み合わせてやっているのですが、 どうしたら良いのでしょうか? 詳しい計算式を教えてください
519 :
名無しさん@そうだ選挙にいこう :02/03/11 13:39
>>518 あなたが具体的に書いてないので、詳しくも糞もないような気がするのだが、
IF関数の論理式に(VLOOKUPの検索値、仮にA1="")として、
真の場合""、偽の場合に計算させるじゃ、駄目?
訂正 検索値、仮にA1→検索列、仮にA列ならA1
>>520 の意味がわからんが、
>>518 =
>>516 はこれでできないか?
=IF(VLOOKUP(516の式)=0,"",VLOOKUP(516の式))
523 :
名無しさん@そうだ選挙にいこう :02/03/11 17:32
516-3655という電話番号を5163655にしたくて-を空白で置き換え、 516 3655にしたんですが、その後の空白のとり方が分かりません。 どなたかご存知でしょうか?
>>523 空白じゃなくて空白文字列""で置き換える。
>>524 (´-`).。oO( "" は「空白文字列」 じゃなくて 「空文字列」ダ)
>>525 ( ´-`).。oO(あうあう、指摘アリガト)
( ´-`).。oO(脊髄反射レスしたあと、微妙な違和感あったんですが...)
527 :
516ですが :02/03/11 18:39
>>517 さん
>>520 さん
詳しく教えていただき、ありがとうございます。
でもいかんせん素人なのでうまく出来ません。
わかりにくいかもしれませんが、どういう状況で
どうしたいのかを出来るだけ詳しくお伝えしたいと思います。
シート『名簿』に"検索列","名前","フリガナ","住所","電話番号"etc…,
という風に一覧表を作り、シート『カルテ』に一人ずつ引っ張るようにしているのです。
ちなみに名前欄の計算式は
=IF(A1,VLOOKUP(A1,名簿!$A$3:$T$300,2))
という風になっています。
名前,フリガナは必須なので空白になることはないのですが、
他が空白になってしまう事があるのです。
長文の上、わかりにくいと思いますが、
どうか説明の方、よろしくお願いします。
>>527 いまいち状況つかめないけど、これでいけない?
=IF(A1="","",VLOOKUP(A1,名簿!$A$3:$T$300,2,FALSE))
ヘルプの「検索条件に基づいた値の計算について」あたりで、
IFワークシート関数について調べてください。
529 :
516ですが :02/03/11 20:05
>>528 お返事ありがとうございます。
早速教えていただいた計算式の方、利用させていただきましたが
駄目でした。名前を空白したら"0"と表示されてしまいました。
ヘルプ機能を使ってみてもイマイチわかりませんでした。
すみません。
>>529 =IF(VLOOKUP(A1,名簿!$A$3:$T$300,2,FALSE)="","",VLOOKUP(A1,名簿!$A$3:$T$300,2,FALSE))
じゃ、こういうことかな。
#ヘルプみてさっぱりわからないなら、入門書を一冊購入することを強く推奨するよ。
#1から10まで全部他人に聞くわけにはいかないでしょ?
>>529 =IF(VLOOKUP(A1,名簿!$A$3:$T$300,2,0)=0,"",VLOOKUP(A1,名簿!$A$3:$T$300,2,0))
いまいち、どのセルがどこを参照してるかわからないけど、
こういうこと?(522の書き直しをしてみた)
やってることは、Vlookup関数が0を返したら、空白をいれろって
してるんだけどね。
532 :
516ですが :02/03/11 21:52
531さん 教えていただいた方法で試したところ 無事空白で返すことが出来ました。 ありがとうございました。 528さんもお世話になりました。 ありがとうございます。 これからも度々お邪魔すると思いますが、 よろしくお願いします。それでは失礼します。
教えてください!エクセル2000で、ファイルを閉じようとするとフリー ズしてしまいます。ワードでもなるのかと思いやってみましたが、フリーズ しません。エクセルだけが閉じようとするとフリーズしてしまいます。 何か原因がわかる方教えてください。
グラフックウェザードを使ってグラフを作って グラフの製作場所を新しいシートに指定しました この時に他のシートからリンクを張りたいのですが ハイパーリンクの何処を探してもリンクできそに 無いです 新しいシートのグラフを作った時に他のシートから リンクするやり方を知ってる方がいたら教えて下さい verは2000です
Excel2000で、すでに作成しているグラフのデータ範囲を変更するとき Excel97ではshift+Ctrl+矢印でデータの最後まで範囲指定できたのですが Excel2000では、できないのでしょうか? データの範囲指定の状態ではEndキーや矢印が使えなく、大量のデータ範囲指定 をするときに困っています。 キーボードでの範囲指定の仕方を教えてください。 ちなみに新規グラフを作成するときは、Endキーと矢印で範囲指定できるのですが
536 :
名無しさん@そうだ選挙にいこう :02/03/12 14:01
おたずねします。 2000を使ってるのですが、特定のブックを開いた時に 何秒かだけユーザーフォームを表示させるというのはでできるんでしょうか? タイトルと注意書きを表示してすぐ消えるようにしたいんですが… 可能なら教えてください。
537 :
名無しさん@そうだ選挙にいこう :02/03/12 15:07
excelくれ。もってねーんだ。
>>536 (´−`).。oO(VBAでイベントプロシージャを使えばできます)
539 :
名無しさん@そうだ選挙にいこう :02/03/12 15:54
セル内の文字列を全部””でくくるにはどうしたらいいでしょう? 例えば、テレビ、ラジオー>”テレビ”、”ラジオ”。
イベントプロシージャがいまいち?です…すみません。 例えばUserForm1を作ったとして、 「ブックを開いたときにuserform1を表示して3秒後に消す」 という命令をどこにどう書けばよいのでしょう? よろしければお教え下さい。
>541さん ありがとうございます。 ビットマップを表示させるマクロとなってますが実行してもエラーがでます。 やり方がおかしいのでしょうか? これと同じでUserForm1を表示させることはできますでしょうか? 重ね重ねすみません
543 :
あぷろだ使ってスマン :02/03/12 22:11
544 :
名無しさん@そうだ選挙にいこう :02/03/12 22:20
991015 10725 10760 10621 10627 0 0 991018 10537 10581 10499 10520 0 0 このように、データが並んでいるCSVファイルを、 配列変数に落とす上手い方法はありますか? 今は、OPEN で、一行一行読んでいますが…
545 :
名無しさん@そうだ選挙にいこう :02/03/12 22:34
>>543 俺だったら、31日までの表にしといて、28日までの月は
29日から31日までの列を非表示にするけどな。
あまった行を非表示にするやり方をよくする。
546 :
516=532ですが :02/03/12 23:05
昨日はお世話になりました。 IF関数とVLOOKUP関数について質問させていただいた者です。 早速新たな質問をさせていただきます。 今作成中の一覧表は男女混合で五十音順に並べられており、 A列に全体の番号が入力されているのですが、B列に”男性番号”、 C列に”女性番号”を表示するにはどうしたら良いでしょうか? 性別の区別はF列で『男性:1、女性:2』という風に入力してあります。 これまではオートフィルタを使って一つ一つ手入力していたのですが、 もし計算式で出来る良い方法があればよろしくお願いします。
547 :
名無しさん@そうだ選挙にいこう :02/03/12 23:30
>>539 表示形式を
"”"@"”"
とする。
しかし、””では囲んだことにならないから、“”にすることをお勧めするが。
548 :
名無しさん@そうだ選挙にいこう :02/03/12 23:36
>>544 スペースで区切られているのはCSVとは呼ばないと思うが、
=open.text()
でデータ形式を指定してワークシートとして開き、
その適当な範囲を配列変数にすればよいのではないか。
549 :
名無しさん@そうだ選挙にいこう :02/03/12 23:41
>>546 男性番号女性番号とは、それぞれの性での通し番号か?
全体の番号を単にその欄に表示するのか?
それとも”男性番号”という文字列を表示させたいのか?
>542 >542 UserForm1にこう Private Sub UserForm_Activate() Dim Start Start = Timer Do While Timer < Start + 3 DoEvents Loop Unload Me End Sub ThisWorkbookにこう Private Sub Workbook_Open() UserForm1.Show End Sub
>546 どこかに通し番号を入力して F列を基準にソート F列に1が入力されているB列の範囲を選択 男性番号と入力後、Ctrlを押しながらEnterで確定 同様に女性番号も入力 通し番号でソートし直す 関数なら =IF(F1=1,"男性番号","女性番号")
552 :
名無しさん@そうだ選挙にいこう :02/03/13 06:55
マクロについてなのですが、マクロの記録が出来ません。 OSはMEで、エクセルはXPが入ってます。 セキュリティレベルを、中、低にしても「マクロを記録する」とやると イルカに、記録できません。といわれてしまいます。なぜでしょうか? ユーザーごとに分けてはいないので、管理者がどうこうではないと思います。 再起動してもやっぱり出来ませんでした。 ヘルプにも載ってないのでわかる方いらっしゃいましたらおねがいします
>>552 どのブックに記録できないの?
あと、「記録できません」と言われるタイミングは?
(マクロ記録ボタンを押した直後に言われるの?)
>>546 517だが、あなたの場合、質問が的確に状況説明できてないし、
とりあえず、初心者用のエクセルの解説書を購入したほうが
よいと思われる。
今回の質問も、IF関数のことと推測するが、A列の番号から
振り分けるんだろうけど、その番号の入力規則が判らないから
答えようがない。
555 :
名無しさん@そうだ選挙にいこう :02/03/13 10:16
お教えください。 「ちがうセル幅のセルが交じった表ってどうやってつくるんですか?」 セルの結合などをつかうんじゃなくて・・・。 表はつくれなくても印刷時に2つのシートやブックからケイセンごと表の 一部が飛んできて一枚の表になってプリントアウト、 そしてその表のセル幅がちがう(ようは上下でセルとセルの境目のラインがあって ないってこと・・・、こんな風になりませんかね。教えてください!
556 :
516ですが :02/03/13 10:45
>>554 さん
説明不足の上返事が遅れてしまい、申し訳ありません。
A列に全体の番号を表示した上で、
B列に"男性番号"、C列に"女性番号"を表示させたいのです。
表全体は五十音順に並べてあるので、男女とも上から
『1、2、3、…』という風に番号を表示させたいのですが…。
注文ばっかりで申し訳ありません。
>>555 それができればセル結合なんて機能は無かったはずだ
>>555 ごめん、わからん。
>>556 上でも指摘されているように、君の言ってることはよくわからんな。
“男性番号”、“女性番号”と言うのは何?
単にそういう文字列をB列とC列に入れたいのなら
B列は=IF(F1=1,"男性番号","")
C列は=IF(F1=2,"女性番号","")
君のやりたいことが、理解できないよ。
掲示板というのは、文字情報でやり取りするもんだから、
やりたいことを第三者に伝わるように、
サンプルで書くなり、的確な説明をしてくれないか?
>>516 以降の君のやり取りを見ていると、回答が?付きばかりなのはわかってる?
>>556 次のような表に番号を入力したいとするなら
A列 B列 C列 D列
通番号 男番号 女番号 性別
1 1 1 男
2 2 1 女
3 3 2 男
4 4 3 男
5 5 2 女
6 6 3 女
7 7 4 女
8 8 4 男
9 9 5 男
10 10 5 女
B列
=IF(D2="男",COUNT(B$1:B1)+1,"")
C列
=IF(D3="女",COUNT(C$1:C1)+1,"")
と入力してコピーすればよろし
すまん、スペースが半角なので無視されてしまったが 入力式は間違ってないぞ
>>556 それなら、F列を基準にソートして、
B列とC列にそれぞれ連番を入れていくしかないと思う。
関数で仮にできたとしても、あまりメリットもなさそう。
とりあえず、参考書1冊買うことを勧めるよ。
この板は人数少ないから、煽りもいないけど、
的確な質問をしないと、的を射た回答も出ないからね。
>550さん 求めていた通りにできました! 大変勉強になりました ありがとうございます!
関数で他のシートを指定している時、 そのシート名を変更すると関数部分のシート名も同時に変更されてしまいますが、 変更されない方法はありますか?
>>556 回答してるみなさんが「何言ってるのかわからん」といってるのは、
Excel でのやりかたが分かんないというのではないよ。
紙に書く場合ですら分かんない、というぐらいの意味だよ。
まず、あなたが「今回の御仕事は、こうあるべきだ」って見本として
自分で紙に表を描いて御覧なさいな。
ていうか、氏名はどこへ?
あてずっぽうだけど、こんな感じかな?(CSV表記)
A, B, C, D, E, F
全体番号, 男性番号, 女性番号, , , 性別
1, , 1, , , 2
2, 1, , , , 1
3, 2, , , , 1
4, , 2, , , 2
…
ただし、
・ 全体番号、男性番号 および 女性番号は、それぞれ1からはじまる
連番。
>>555 > 表はつくれなくても印刷時に2つのシートやブックからケイセンごと表の
> 一部が飛んできて一枚の表になってプリントアウト、
(´−`).。oO(なんで仕様に機能が増えてるんだろ?)
566 :
名無しさん@そうだ選挙にいこう :02/03/13 14:22
>>555 カメラ機能でやるとできるような気が
しますけど。。。
でも、作るのが面倒そうです。
>>553 速レスありがとうございます。言われるタイミングは、新しいマクロを記録のOKボタンを押した直後です。
ブックは作業中のブックです。フォームを使って、シートにボタンを作り、
そこにマクロの登録をしようとしてもできません。この場合はノーリアクションです。
マクロを登録、とすると、なにもならず通常画面に戻ります。
この質問は、既出なの? 放置されてるんで 回答求む。
>>567 (´-`).。oO(Office XP は、よく分からんのだけれど)
Form を 創れるってことは、標準モジュールも作れるってことかなぁ。
標準モジュールが作れれば、なんだかうまくいくような気がするけど。
>>545 ありがとうございます
他の方法も聞きたいのでage
どうかひとつ
>>543 をお願いします
参照元のトレース矢印を複数のセルで同時に表示することって出来ますか?
573 :
516ですが :02/03/13 19:30
遅くなって申し訳ありません。 "517"サン、"仕様書無しさん"、 私の説明が分かりにくかったため、大変ご迷惑をおかけしております。 とりあえずお二人がおっしゃられた様にイメージ図で お伝えしたいと思います。 A B C D E F 1全体No 男性No 女性No 氏名 フリガナ 性別 2 1 1 孝 タカシ 1 3 2 2 宏 ヒロシ 1 4 3 1 清子 キヨコ 2 5 4 3 淳 アツシ 1 6 5 2 幸子 サチコ 2 簡単なモノで申し訳ないのですが、このような感じになります。 私の他にもたくさんの方がこのスレを利用しており、ご迷惑を おかけしているとは思いますが、もうしばらくお付き合いください。 よろしくお願いします。
>>573 >>559 氏の回答では不満ですか?
あなたのやりたいことと一致しているようですが。
自分宛のレスはちゃんと見ようよ。
575 :
516=532ですが :02/03/13 21:13
>>574 さんへ
おっしゃる通り
>>559 さんの解答通りで
やったら無事出来ました。
大変ご迷惑をおかけしました。
これからもよろしくお願いします。
散布図についてですが、個々の点に対する説明をテキストでワークシートから 参照するいい方法ありませんか? X Y コメント 1 3 A 2 4 B 5 7 V 8 2 K こんな感じでxーyの散布図を作って、各点の横にコメントを書きたいのです。 数が多いのでテキストボックスでは処理し切れませんし。 よろしくお願いします。
577 :
516=532よ :02/03/13 23:11
578 :
名無しさん@そうだ選挙にいこう :02/03/14 09:33
セルに対するデータ入力時、例えば括弧 () を入力後(この時点でカーソルは 入力文の最後尾にある)、括弧内にデータを入力しようとして←キーを押すと カーソルが動くのではなく対象セルそのものが左のセルに移ってしまいます。 この現象を防ぐ方法はあるでしょうか。Shift+←とか色々試してみたのですが……
580 :
名無しさん@そうだ選挙にいこう :02/03/14 10:40
質問です。教えて下さい。 日付データがA列にあります。H13.1.1〜H13.12.31まであり 各日付が複数ずつ有ります。 各日付を月ごとに、元のシートからコピーして別のシートにコピー したいのですが、手動でフィルタをかけてコピーではなくて、マクロで 自動で行いたいのです。例えばボタンをつくり1月分コピー、2月分コピー などを行いたいのですが、どなたかご教授ください。 よろしくお願いします。
>>580 日付データは文字列?それともシリアル?
582さん 日付はシリアル値です。
584 :
(・ω・)モル ◆.6X/mols :02/03/14 15:57
教えてください。 印字したとき 一連のセル内にかかれている文字(文字列)の 頭と尻をぞろりとそろえることはできますか?
585 :
(・ω・)モル ◆.6X/mols :02/03/14 16:01
教えてください その2 カルク表からグラフを作成して基本ファイルを作成します。 この元ファイルを基本フォーマットとしてコピーして別の数字を 入力したときに、グラフのリンク元がもともとの基本ファイルとなってしまいます。 そうではなくて、コピーした先の表としたいのですが どうやったらよいでしょう?
586 :
(・ω・)モル ◆.6X/mols :02/03/14 16:04
教えてください その3 1.一連のセル内の真・偽を判断して真のみのセルをカウントする。 2.一連のセル内の真・偽を判断して真のみの文字を赤くする。 どうやったらいいでしょう?
教えてください。 averageを求めるとき、0のあるセルを計算に含めないようにするには どうしたらいいでしょう?
589 :
(・ω・)モル ◆.6X/mols :02/03/14 16:52
>588 具体的にどのようにするのでしょう? 表をクリックしてもリンク先が見えません。
590 :
名無しさん@そうだ選挙にいこう :02/03/14 16:54
591 :
名無しさん@そうだ選挙にいこう :02/03/14 16:57
>587 0を書かない(空白にする)ではだめ?
>>591 数値は他のセルで計算したものを、=c12とかでいれているのです。
593 :
(・ω・)モル ◆.6X/mols :02/03/14 17:17
>591 実は私も同じ事をしたいのです。 ゼロの数字のみを抜き出し、カウントできればマイナスすることができますよね。
>>592 =IF(C12=0,"",C12)ってな感じ?
>>587 スマートなやり方ではないが、countifを使って0の入るセルを計算。
後は、関数を使わずに合計/(セル数−countifの結果)で平均。
596 :
名無しさん@そうだ選挙にいこう :02/03/14 17:42
=c12 を =IF(c12=0,"",c12) にしたらどうでしょう? とりあえずできます。 「もしc12が0だったら空白にする」って意味です。
597 :
587=591 :02/03/14 18:19
>>594 >>595 >>596 皆さまありがとうございます。
解決しました。
countifやif使えば良かったんですね。
たくさんの解答どうもでした。
598 :
名無しさん@そうだ選挙にいこう :02/03/15 01:55
お尋ねします。 Web上に記入シートを作って、書き込んだ内容を メールすると同時に Excelに記入内容を移し、データベースを作成したいと考えています。 この場合、EXCELのVBA機能を使ったほうがよいのか、もしくはPerlで スクリプトを書いて処理した方がよいのかわかりません。 記入内容は数行の簡単なものです。 メール配信は同時に10ッ個所ほどです。 また、上記のような処理を行うのに、よい参考書、ページなどあればご教授 ください。 #Web データベース Excelがキーワードでは数万件hitしてしまいます よろしくお願いいたします。
599 :
名無しさん@そうだ選挙にいこう :02/03/15 08:53
今父に エクセルの入力作業 任されたんですけど 4.0といれたり6.0と入れたいんですけど 入力すると自動的に 4や6になってしまいます。 とても初歩的なことだと思うのですが 忙しいのでサイトを探すわけにもいきません おねぎします
600 :
名無しさん@そうだ選挙にいこう :02/03/15 09:07
>599 セルの書式設定→分類を"数値"に→小数点以下の桁数を"1"にする。
601 :
名無しさん@そうだ選挙にいこう :02/03/15 09:13
>>600 600さんありがとうございます
でも、セルの書式設定ってどこにあるんでしょうか?
ホントエクセルなんてちょっとしか触ったことないんで
さっぱりなんです。
すいません
602 :
名無しさん@そうだ選挙にいこう :02/03/15 09:31
セルを選択してから ツールバーの「書式」または 右クリックすればあるよ。
>>598 イントラじゃなしに、インターネットってこと?
でしたら、擦れ違い、イタチ飼い。
WebProg 板へ ゴーゴー
>>603 イントラです。 システムはWin2000上で動かします。
エクセルのVBA機能を使ってもできそうなのですが、良い参考書とか
Webが見つからないんです…何か良いものをご紹介くだせい。
605 :
名無しさん@そうだ選挙にいこう :02/03/15 20:39
セルに「赤」と入力したら、セルを赤で塗りつぶしたいのです。 「条件付書式」で可能なのはわかるのですが、 条件が3つまでしか設定できないので困っています。 4色に塗りたいので、他に関数やマクロなど使用して 設定できる方法はありませんでしょうか?
606 :
名無しさん@そうだ選挙にいこう :02/03/15 20:41
セルをクリックするとメッセージがでるようにしたいのですが、 「挿入」「コメント」ではなく、Officeアシスタント(いるかなど)が メッセージを出してくれるものがありました。 これはどのように設定するのでしょうか?またこの機能で、 Officeアシスタントを非表示にすると、セルの右下にメッセージが 表示されるようになります。「コメント」ですと、 セルの右上にマークが付いてしまうので、是非上記機能を 使用したいのですが、設定の方法がわかりません。 よろしくお願いいたします。
>>604 IIS とか Apache とか使うんでしょ。それなのに
DB の「ファイル」型式がいきなり(GUI バリバリの)
Excel 型式じゃあ、メリット激減です。
もっとスタンダードな Web + DB な方法を導入するか、
Excel ファイルを 単に共有するだけにするか、
やりやすいほうを選ぶのがよいでしょう。
608 :
名無しさん@そうだ選挙にいこう :02/03/15 22:30
>605 赤etc.のセルをマウスで選択してからやる方法。どうでしょ? Sub セルの色分け() Dim cell For Each cell In Selection If cell.Value = "赤" Then cell.Interior.ColorIndex = 3 ElseIf cell.Value = "青" Then cell.Interior.ColorIndex = 41 ElseIf cell.Value = "黄" Then cell.Interior.ColorIndex = 36 ElseIf cell.Value = "緑" Then cell.Interior.ColorIndex = 4 End If Next MsgBox "終了しました" End Sub
>605 608とほとんど同じだがRGBで適当な色付けをしてみる。 1.必要なシートだけならで良いなら、シートのタブを右クリック 2.コードの表示をクリック 3.あいてる所にコピペ Private Sub Worksheet_Change(ByVal Target As Excel.Range) Dim r As Range For Each r In Target Select Case r.Text Case "赤" r.Interior.Color = RGB(255, 70, 60) Case "青" r.Interior.Color = RGB(40, 60, 255) Case "黄" r.Interior.Color = RGB(255, 255, 60) Case "緑" r.Interior.Color = RGB(60, 255, 60) End Select Next r End Sub ブック内の全シートに適用したいなら、VBE画面のThisWorkbookを開き あいてる所にコピペ Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Excel.Range) Dim r As Range For Each r In Target Select Case r.Text Case "赤" r.Interior.Color = RGB(255, 70, 60) Case "青" r.Interior.Color = RGB(40, 60, 255) Case "黄" r.Interior.Color = RGB(255, 255, 60) Case "緑" r.Interior.Color = RGB(60, 255, 60) End Select Next r End Sub
610 :
名無しさん@そうだ選挙にいこう :02/03/16 00:18
602さん有難うございました(^^)
612 :
名無しさん@そうだ選挙にいこう :02/03/16 10:41
はじめまして初心者質問とは思うんですが A1-B1=C1としてC1が「0」になる時は 「±0」と表示させたいのですが、やり方がわかりません。 IFを使うんじゃないかとは思って、色々試してみはしたんですが・・・ どうかお助けください。
613 :
名無しさん@そうだ選挙にいこう :02/03/16 11:15
>>612 表示形式のユーザー定義で出来そうな気もするが・・・
615 :
初心者回答 :02/03/16 11:28
文字列になってしまうけど、表示だけは出来る。 =IF(A1-B1=0,"±0",A1-B1)
>>615 ありがとございます!
これで十分です!助かりました!!
617 :
名無しさん@そうだ選挙にいこう :02/03/16 12:17
マクロが記憶できません!と言うのがでてくるんですが、 何でかわかりません、教えてください おねがいします
618 :
名無しさん@そうだ選挙にいこう :02/03/16 13:32
>>612 表示形式は、
+の時の形式;-の時の形式;0の時の形式;文字列の時の形式
のように、4つの形式をセミコロンで区切って指定する。
+や-のときにどう表示したいかに依るが、例えば
#;#;"±0"
でできる。
詳しくは、セル書式の設定のところでヘルプ。
>>618 さんくーす。どうもありがとうございます。
『_ * +0;_ * -0;_ * "±0"』って感じでいいんですよね。
でもこれだと全角と半角がおりまざって・・・ヽ(´Д`;)ノ アゥア・・・
>>619 わかった!(゚∀゚)
『"+"0;"−"0;"±0"』でよかったのか!
621 :
名無しさん@そうだ選挙にいこう :02/03/16 14:29
>>609 横から質問すいません。
上のマクロを入れて赤とセルに入力するとたしかに色が
赤になるのですが、赤という文字をDELETEしても赤い色
だけは残ってしまいます。文字を消したらセルの色も消える
ようにする方法はありますでしょうか?
>608,609 かなり参考&助かりました! 丁寧なお答えありがとうございました。感謝!!!
609さんではないが
>>621 ↓を付け加えたらいいかも。
Case ""
r.Interior.ColorIndex = xlNone
624 :
名無しさん@そうだ選挙にいこう :02/03/16 15:14
郵便番号の検索ってどれをダウンロードしたらいいの? 地域別で全部入れなくてはならないのでしょうか? その後どうしたらいいの? 滅多に使わないものなのでさっぱり分らず非常に困っています。 宜しくお願いします
625 :
名無しさん@そうだ選挙にいこう :02/03/16 23:43
コード番号などで指定してやると 定型フォーマットの中の複数箇所に 決まった文字や数字などが自動的に流し込まれる ・・・というものを作りたいのですが どういった手を使うのがいいでしょう。 ヒントや手がかりだけでもいただけたらがんばって勉強します。
626 :
名無しさん@そうだ選挙にいこう :02/03/16 23:44
3120415 とかいう数値を上の桁から消していく事ってできますか? 例えば 3120415 を 120415 にしたい時はどうしたらいいんでしょうか。 どうしても大量のデータを処理しなければならないので、、。 わかる方ぜひお願いします。
627 :
名無しさん@そうだ選挙にいこう :02/03/16 23:56
>>625 コード番号の種類が少ないのなら、各欄に
=if(a1=1,"男",if(a1=2,"女","おかま"))
のように入れる。
多いのなら、別のところに表を作り、=vlookup()などで参照。
すんません、自己解決しました。 RIGHT使えば良かったんですね、鬱だ詩嚢。
629 :
名無しさん@そうだ選挙にいこう :02/03/17 00:02
>>626 長さが7文字中の右6文字に決まっているのなら、
=right(a1,6)
左の一文字を除くのなら、
=mid(a1,2,len(a1)-1)
630 :
名無しさん@そうだ選挙にいこう :02/03/17 00:04
エクセルとワードって割れ物でもバレない?
631 :
名無しさん@そうだ選挙にいこう :02/03/17 00:08
EXCELで縦と横の変換って出来ますか?
632 :
名無しさん@そうだ選挙にいこう :02/03/17 00:38
633 :
名無しさん@そうだ選挙にいこう :02/03/17 00:39
>627, ありがとうございます。 コード番号は1000くらいあります。 あと実は「流し込む」ってところもポイントなんです。 定型フォーマットの中に 文字数が多かったり少なかったりするものを どんどん並べていくというか… ちょうど、2ちゃんのスレッドが書き込みでどんどん 伸びていくようなイメージです。 あと、上下左右に位置の微調整がかけられることと、 できればオートシェイプも登録しておいて返せるようにしたいんです。 ムチャクチャ大変なことをいってるような気がしてきました…
ごめんなさい、一行目は>627>632です
636 :
名無しさん@そうだ選挙にいこう :02/03/17 01:18
>>631 入れ替えたい領域を選択してコピー
形式を選択して貼り付けで
行列を入れ替えるを選んで貼り付け
>>634 > あと実は「流し込む」ってところもポイントなんです。
よく分からない。
「流し込む」は「入力する」や「読み込む」とは違う特別な動作なのか?
シートを3枚用意して、
1枚目にコードを入力、2枚目にコードとデータの一覧表をおいて、
3枚目に =vlookup(Sheet1!a1, Sheet2!$a$1,$z$1000, n) (n=1,2,3...)を並べておくというので
何がまずいのか。
> あと、上下左右に位置の微調整がかけられることと、
> できればオートシェイプも登録しておいて返せるようにしたいんです。
位置の微調整をかけるとは何のことか?
データの内容によってA1に入力したりB2に入力したりする?
オートシェイプを返すとは?
結果によって、元のコードや、コードとデータの一覧表が変化する?
あるセルに決まった値(文字列)を入力したいのですが、 プルダウンメニューみたいな感じにして選ぶだけで入力できるようには できますか? いちいち入力するのがめんどくさいので。 具体例はこういうことです。 D3セルをクリックするとプルダウンメニューが出て、 「母」、「父」、「弟」、「兄」、「妹」、「姉」の6個の選択肢の中から 一つを選ぶと(例えば「母」)、D3セルの値が選んだ文字列(「母」)になる。
>>638 ですが、ひょっとしてマクロだとかVBAだとか使わないとダメなんすか?
>>640 入力規則で設定しても結局、セルに値を文字入力しないとダメですよね?
選択肢を選ぶだけっていう入力スタイルにしたいのですが。。。
642 :
名無しさん@そうだ選挙にいこう :02/03/17 14:42
>>638 バージョンが分からないけど多分ヘルプで「リストから入力」とかすれば
出てくると思う。どこかに「母、父…」とか書いておくこと
(同一ワークシートが無難)。
あとは、D3セルをアクティブにして、データ→入力規則でリストてのを
探す。詳細はヘルプで見る方がいいと思う。
>638 >642 入力規則で入力値の種類をリストにし、元の値の所に 母,父,弟,兄,妹,姉 とカンマで区切って入れるだけ。 元リストはセルに書かなくてもできる。
>>643 いや、書かなくてもできるのは分かっているけど、
わかりやすいかなあと思って。
でも、そっちで入力する方がわかりやすかったかもしれない、
後で考えてみると。
みなさまありがとうございます。 最高に思った通りにできました。
やっぱり、ついでに聞いておきたいのですが、別のエクセルファイルにある一覧から リストを持って来るにはどうすればいいのでしょうか? 教わったやり方だと同じシートにあるデータしか選択リストとして選べません。
647 :
名無しさん@そうだ選挙にいこう :02/03/17 22:00
>>646 フォームツールバーを表示してコンボボックスを選べばよし。
パソコン初心者のカテゴリから紹介され来ました。 よろしくお願いします。 エクセルで、マクロしてる方、いないでしょうか。 マクロ時にでる、アイコン消しちゃって、 表示、ツールバー、VBAしても「相対参照」ボタンがなくて。 初期化しても、出てこない。てんてこまい。 ご存知の方、アドバイス下さい。
648、いじっていたら解決できました。 お邪魔しました。
650 :
名無しさん@そうだ選挙にいこう :02/03/18 01:28
>>649 自己解決おめでとう
一応言っておくと、マクロの記録中にだけ、
ツールバーの右クリックで「記録終了」の
ツールバーのメニューがでてくる。
この仕様にはかなり疑問。
651 :
名無しさん@そうだ選挙にいこう :02/03/18 01:30
>>625 AccessかExcelかの際になりそうな問題だな。
Accessの方が簡単にできるけど、敷居がかなり高いからな。
詳細な住所録リストがあって、それを利用して別シートに
抽出したデータ一覧作るのはどうすればいいですか?
例えば「横浜市」を選ぶと、住所が横浜市の人だけ抜き出して
名前と電話番号と住所だけをピックアップして簡易一覧にするとか。
あとついでに全データの住所部分(「市」の部分のセル)を参照して、
「市」の候補を簡単に選べるようにしたいです。
>>642 や
>>647 だと「横浜市」がたくさんあれば全部候補に出ちゃったりします。
ユニークなリストって言う方がわかりやすいかな?
>>652 の下の方の質問は、要はオートフィルターを使ったときの選択肢みたいにしたいわけです。
オートフィルターだと表の形式は元表と同じ形式なので詳細データだと冗長になります。
別のシートに必要データだけを抽出した簡易一覧を作りたいのです。
>>652 オートフィルタを使って「横浜市」の条件に一致する条件で抜き出して
コピペ。
後半部分に関しては意味不明。
>>652 下の方は住所部分を都道府県、市町村、住所1、住所2等にセルごとに分けて
市町村の列をオートフィルタすればよいだけでは?
そうなってたらごめん。文章をいまいち把握できなかったもので。
上の方はそれを元にオートフィルタの抽出結果を別シートにコピーするマクロを書けば簡単だと思うけど
656 :
名無しさん@そうだ選挙にいこう :02/03/18 10:06
例えば印刷時に縦に20ページ分の表(1ページ分に30行、全体で20×30=600行)が有った時、 うしろ19ページ分(570行)が不要になったため 不要部分の行をまとめて「選択」→「削除」した場合、 その後も右端のスクロールバーは600行までの範囲をカバーしています。 なのでこの時点で(スクロールバーを使って)1ページ目の最後を表示したいと思った場合に非常に不便です。 こういう場合、スクロールバーを有効範囲内のみカバーするように設定し直す事は可能でしょうか。
すみません、基本的な事言うの忘れてましたが、50過ぎのおばちゃんが
使うんです。
元データの詳細住所録シートを意識せず、別シートで「市」の選択肢一覧から選んで、
該当者の簡易データ一覧(元データの一部を抜粋)を表示させたいんです。
住所はちゃんと「市」の部分でひとつのセルになってます。
というわけで
>>654 さんのやり方ではおばちゃんには無理です。
また
>>655 さんの場合、元の表と同じ形式(列の種類とか)なので冗長です。
氏名、電話、住所くらいの表示で十分なのです。
(元シートには勤務先とか家族構成とかいろいろ入ってます。)
>>657 だから、オートフィルタの抽出結果から氏名、電話、住所の列だけをコピーして
他のシートに貼り付けるマクロ作れば良しということ。
>>658 ありがとうございます。
マクロって作り方が解らないのでその単語は無視してました。(笑
やっぱり避けてとおれませんね。
>>657 おばちゃんユーザのためには、前の工程の人が
粉骨砕身してあげなきゃ。
Access でやれば、SQLの文ひとつ(一行)で済んじゃうし。
661 :
名無しさん@そうだ選挙にいこう :02/03/18 21:54
セルに文字を打つとき、一度打った文字列の 最初の部分だけを打ちたいのに全部出てくるのを どうやったら最初の部分だけ選択できるのか わからないのですが。。。 たとえば、「電話番号」と打った後、別のセルで 「電」と打ちたくて、「でん」と打って変換すると 「電」と出るのでエンターキーを押すと、 「電話番号」と出てしまうのを、「電」で止めたいのです。 一旦出しておいて「話番号」を消してますが面倒ですので。
>661 ツール-オプション-編集タブのオートコンプリートを使用するのチェックを外せ
>>580 ですが、
どなたか判りませんか〜。お願いします。
教えて下さい!お願いします エクセルでセルに文字を入力した後Enter押すと 自動的に色塗りつぶしになるんです。 解除するにはどうしたら良いでしょうか?
「0001」って入力すると、ただの「1」の表示になるんだが どこを設定すればいいの?
666 :
豆鉄砲*`σ゚)ノ :02/03/19 16:03
どなたか教えてください エクセルでコピーしようとすると、フリーズしてしまうんです。 考えられる原因はなんでしょうか? 今日、イキナリそうなりました。
667 :
初心者回答 :02/03/19 16:05
'0001 と入れるか文字列あつかいにする。
>>664 さんと同じく
教えて下さい!お願いします
エクセルでセルに文字を入力した後Enter押すと
自動的に色塗りつぶしになるんです。
解除するにはどうしたら良いでしょうか?
669 :
初心者回答 :02/03/19 16:21
ツールの条件付書式がかかってるんじゃないですか?
670 :
名無しさん@そうだ選挙にいこう :02/03/19 16:40
基本的なことで恐縮ですが,Excel2002(OSはXP)で数式の 入っているセルの左上の角に小さな三角印が付いて,お節 介な注意マークが出るのを解除したいのです。 どなたか方法を教えて下さい。
671 :
初心者回答 :02/03/19 17:01
コメントですね? 削除でよければ右クリックから消すのが早いです。
672 :
名無しさん@そうだ選挙にいこう :02/03/19 17:07
回答ありがとうございます。 でもコメントではなくて,そのセルの左側に 黄色い!マークが出るのです。数字の入力中に 目障りでしょうがないんです。
>>663 「マクロで自動でやりたいのです」って仰ってますが、
できますよ。やってみてください。
674 :
名無しさん@そうだ選挙にいこう :02/03/19 17:26
672です。 誰か僕の疑問にも答えて下さい。
>>580 580氏
やり方として
ユーザーフォームを作る。もちろんこのユーザーフォーム上に1月〜12月までに対応したボタンを作る。
ユーザーフォーム上のこれらのボタンに対応したイベントプログラムを書く。
イベントプログラムは、マクロの記録作成で1つやると後は、書く月別に書くよりラクチンである。
以上、
ユーザーフォームって何ですかとか聞かないように
まず、EXCELのVBA解説書を買ってきてやってみるか学校に言って教えてもらうこと
ユーザーフォーム作成とかは、この板にはそぐわないと思う
678 :
名無しさん@そうだ選挙にいこう :02/03/19 17:59
再び672です。 お願いだから僕を無視しないで。
>>677 677氏
ありがとうございます。頑張って勉強してやってみます。
ついついこの板の皆さんに頼ってしまいます。スマソです。
解説書とか買う気はあるのですがどの本がいいかよく判らないもんで・・・。
色々探して見ます。いまから逝ってきます。
681 :
初心者回答 :02/03/19 18:32
>668 ツールバーの[書式]→[条件付書式設定]を見てみてください。 >672 わからない。ごめんね。
682 :
名無しさん@そうだ選挙にいこう :02/03/19 18:36
672です。 ご親切にありがとうございました。 目障りなものがなくなり,快適な入力ができます。 でも,これってみんな気にならないのかな〜
>>681 1つ目が「セルの値が」と、隣が「次の間の値」と
条件が真のとき〜が「書式が設定されていません」になっています
684 :
昨日泊まり込み :02/03/19 18:50
エクセルが急に立ち上がらなくなっってしまいました。起動画面で止まってしまいます。 納期前で、過去ログ見る時間がありません。 誰か助けて!! さっきまで正常に動いていて、印刷もしてました。 思い当たることは、直前にemを使って図を張り付けたということです。
685 :
初心者回答 :02/03/19 18:57
>668 では。ちがったようです、、ごめんね。
>>668 どういたしまして
助けてくれようとしただけでも有り難いです。
>>668 Alt+F11の後「ThisWorkbook」という項目をダブルクリックしたときに
右側のウィンドウに何かマクロが記入されてたりしない?
>>687 「ThisWorkbook」はどこを見ればわかりますか?
689 :
名無しさん@そうだ選挙にいこう :02/03/19 20:10
Office97にてエクセルで作ったファイルをエクスプローラから開くと「同じ名前のファイルが開かれています・・・」という警告がでます。 OKを押せば普通に編集できますが、毎回これが出るのはけっこううっとうしいです。 Excelを起動した状態でファイルをダブルクリックする分には警告は出てきません。 Excelを起動してから「ファイルを開く」でやっても警告は出ません。 当然、同じ名前のファイルが他にもあるということもありません。 いったいなにが原因かわかりますでしょうか? Win2kにOffice97&Word98。 OSごと再インストールしたばかりなので修正プログラムなどはまだ当てていません。 パッチ当てれば治りますかね? 帰ってから試してみます。
>690 おおっ!ビンゴですね! やっぱバグかぁ。今更直さないだろうなぁ。 情報どもです。
692 :
名無しさん@そうだ選挙にいこう :02/03/19 22:05
コンボボックスに以下のような日付データをリストとして指定すると ボックス内の表示がシリアル値に変わってしまいます。 この値の埋め込み先でも同様で、セルの書式設定を変更しても表示が日付に戻りません。 シリアル値表示を日付表示に変えるにはどうしたらよいですか?よろしくお願いします。 37332.292025463 <3/17を選択するとボックスの表示はこうなる。 2002/3/17 2002/3/16 2002/3/14 2002/3/10 2002/3/8 excel 2000, win98seです。
693 :
名無しさん@そうだ選挙にいこう :02/03/19 23:19
692ですが、もうひとつ教えてください. ひとつのワークシートに次のように時系列データが入力されています。 11行目以降に最新値が11行目で最古値が最下行にある。 データ更新すると11行目に最新値が挿入され、既存データ全体が一行さがる。 1-10行でデータの計算をする式を記述する。 ここで最新値(11行)を常に参照するように式を記述するにはどうしたらよいですか? 例えば、11行より上にあるセルに = $A$11 と記述しても、一行挿入後は = $A$12 となって、下向きにひきずられていくのですが。 マクロを使って最新値が上に来るようにデータを配置したのですが、 普通、時系列データを扱う時はどちら向きに並べたほうがいいですか? よろしくお願いします。
694 :
名無しさん@そうだ選挙にいこう :02/03/19 23:34
初心者で申し訳無いです。 大量のシートの数値を1枚にコピーしたいのですが、可能でしょうか? 集計するシートは縦1行横30行です。 それを1枚のシートに縦枚数分に出来ますでしょうか? どなたかお力を…。
>>580 遊んでみたぞ。
オートフィルタで抽出するんで、1行目はタイトル項目である事。
A列は日付データであり、1年分である事。
セルA2のデータを元に対象年を抽出している。
Sub test()
Dim tYear, tMonth, stDay, endDay
Dim Ws As Worksheet, copyWs As Worksheet
Set Ws = ThisWorkbook.ActiveSheet
If Not IsDate(Ws.Range("A2")) Then Exit Sub
Ws.AutoFilterMode = False
Ws.UsedRange.AutoFilter
tYear = Year(Ws.Range("A2"))
For tMonth = 1 To 12
stDay = Format(DateSerial(tYear, tMonth, 1), "yyyy/m/d")
endDay = Format(DateSerial(tYear, tMonth + 1, 0), "yyyy/m/d")
Ws.Range("A1").AutoFilter 1, ">=" & stDay, xlAnd, "<=" & endDay
Ws.Range("A1").CurrentRegion.Copy
Set copyWs = Worksheets.Add(after:=ActiveSheet)
On Error Resume Next
copyWs.Name = Format(stDay, "ge.mm")
copyWs.Range("A1").PasteSpecial (xlPasteAll)
Application.CutCopyMode = False
Next tMonth
End Sub
>>692 こうかね?
Private Sub ComboBox1_Change()
ComboBox1.Text = Format(ComboBox1.Text, "yyyy/m/d")
End Sub
>>693 A1に = $A$11 を入れてるとして、 代りに
=OFFSET(A1,10,0)
でどーよ。
>>694 意味がわからん。
大量のシートの数値?を1枚にコピー?したい?
集計するシートは縦1行?横30行?です。
複数のシートに分かれているデータを1枚のシートにまとめたい、か?
A・B・C・・・・が列
1・2・3・・・・・が行
>>697 さん
すいません。そうです。
複数のシートにそれぞれ1行60列程度のデータがあるのです。
それを1枚のシートにまとめたいのです。。
>>698 こうか?
Sub Test()
Dim copyWs As Worksheet, ws As Worksheet, LRow As Long
Set copyWs = Worksheets.Add
LRow = copyWs.Range("A65536").End(xlUp).Row
For Each ws In Worksheets
If ws.Name <> copyWs.Name Then
ws.Range("1:1").Copy
copyWs.Range("A" & LRow).PasteSpecial (xlPasteAll)
Application.CutCopyMode = False
LRow = LRow + 1
End If
Next ws
End Sub
できました!!! ありがとう御座いました!!!!
701 :
名無しさん@そうだ選挙にいこう :02/03/20 05:54
htmlの外部データを自動的に取り込む方法を教えてください。 今は方法がわからないので htmlファイルを開く、全て選択、コピー エクセルのファイルを開く、A1セルを選択、形式を選択して貼り付け、htmlを選択 といった方法で行っています。 どなたかよろしくお願い致します。
702 :
名無しさん@そうだ選挙にいこう :02/03/20 07:21
>>684 再インストしたほうが早いかも。
お忙しいでしょうけど・・・。
703 :
名無しさん@そうだ選挙にいこう :02/03/20 07:49
699 2行目データを1枚にだったり、1列目のデータ1枚だったりするときにはどこをかえたらイイですか?便乗質問でスマソ
>>701 (;´д`).。oO( 大変だよ )
HTML の 頁をそのまま (Internet Explorer で) マウスなどを
使って手動でコピれば、シートに貼り付けることは可能。
更新も、キー操作 (F5とか Ctrl+R とか)や マクロで
なんとかなりそう。
しかし、HTML にはデータ項目の定義が含まれていないのです。
したがって、マクロなどで上記「コピー」の部分を自動化するためには、
「どのタグから数えて何番目の文字が目的の文字列なのか」と
いうようなデータ並びの書式を自分で (マクロで) 定義しなきゃならない。
もとの HTML データの書式が (見栄え向上のために) ときおり変更される
のであれば、その度に自前の書式定義を (また考え直しながら)
書き替えなければならないので、けっこう大変。
しかも、URL すらときどき変わったりすると、劇的に落ち込みます
( ´Д⊂ヽウエーン
>>695 エクセルさん。有難うございます。
まさに私が求めていたものです。いままでのモヤモヤが吹っ飛びました。
何度もお願いした私に回答して頂きスマソです。どうもでしたm(_ _)m。
706 :
名無しさん@そうだ選挙にいこう :02/03/20 13:49
今100行程データが有るのですが、それをA4一枚の紙に一行ずつ印刷するにはどうすればいいですか?
>>706 (´-`).。oO( 一行ごとに改頁 )
>707 それのやり方がわからないんです。 改ページプレビューで一つずつ手作業でやらないと駄目ですか?(;´д`)
709 :
名無しさん@そうだ選挙にいこう :02/03/20 14:38
>>701 excel2000ならウェブクエリで取り込めると思いますが、表だけとか、全体とか指定して
710 :
名無しさん@そうだ選挙にいこう :02/03/20 15:02
>>706 印刷プレビュ→改ページプレビューで線をドラッグして1ページだけ
設定。あとは自動的になる。
>>696 ありがとうございました。
Private Sub ComboBox1_Change()
ComboBox1.Text = Format(ComboBox1.Text, "yyyy/mm/dd")
End Sub
で解決しました.。 mm/ddにしないとダメでした.。
>>693 OFFSET、勉強になりました.。
712 :
名無しさん@そうだ選挙にいこう :02/03/20 18:02
シートに数値が埋まっていて、1列ずつどの数値が何個あるのかカウントしたいのですが、 なにかよい方法は無いでしょうか? ソート掛けて数えてるのが苦痛な量で…。 よろしくお願いします
>>712 COUNTIF関数じゃダメなの?
例:A列の数値が2であるセルの個数
=COUNTIF(A:A,2)
>>704 ありがとうございます。
URL指定するのではなくあらかじめ落としてあるもので行おうと思っています。
それもある程度、データの並びも決まっていてファイル名も001.htm〜100.htmなどと簡単なものです。
001.htmを1というシートにといった具合に何番目の文字とかではなく
ページごと丸々貼り付けたいだけなのです。
>>709 ウェブクエリというものもいじっていたら出てきましたが
これをマクロで定義すれば自動化が可能ということですか?
マクロを使ってやってみたのですがなにから始めればいいか分かりません。
知恵をお貸しください。
>707,710 ありがとうございました。
716 :
名無しさん@そうだ選挙にいこう :02/03/20 21:49
=IF(A1=1,B1,IF(A2=1,B2,IF(A3=1,B3,””))) といった具合にIFを使うとき何個まで使うことができますか?
>>716 イルカにきけば分かるだろ。
最大 7 つまでの IF 関数を真の場合、偽の場合としてネストすることにより、
より複雑なテストを行うことができます。
>703 2行目?大体解りそうなもんじゃないか? ws.Range("1:1").Copy を ws.Range("2:2").Copy 1列目?意味が解らんけど、全部まとめる例。 ただし、元データのA列の使用行数がB列以降の使用行数より 少ないと1枚にまとめる際にデータが欠ける。 Sub Test2() Dim copyWs As Worksheet, ws As Worksheet, LRow As Long Set copyWs = Worksheets.Add LRow = copyWs.Range("A65536").End(xlUp).Row For Each ws In Worksheets If ws.Name <> copyWs.Name Then ws.UsedRange.Copy copyWs.Range("A" & LRow).PasteSpecial (xlPasteAll) Application.CutCopyMode = False LRow = copyWs.Range("A65536").End(xlUp).Row + 1 End If Next ws End Sub
719 :
名無しさん@そうだ選挙にいこう :02/03/20 23:11
誘導されてきました。 excelで行を「区切り位置」で区切ったものを、 再度結合させるのってどうやるんでしたっけ?
ごめん、列の結合だった。 解決しました。
質問です。 A行に123 B行に456 C行に789 といれてTXT出力したときに 123456789 とするにはどうすればいいんでしょうか? 普通にやったら 123 456 789 ってなってしまいます。
>>721 テキストエディタでtab文字を空欄で置換するとか。
723 :
名無しさん@そうだ選挙にいこう :02/03/21 13:36
>>721 別のシートに、
=Sheet1!A1&Sheet1!B1&Sheet1!C1
のように入れて、そのシートをテキスト形式で保存。
724 :
名無しさん@そうだ選挙にいこう :02/03/21 15:50
質問です。。 エクセルでよく使うマクロをmyマクロとしてコレクションしたいのです。 ここで作ったマクロが保存されるのって確かBookごとでしたよね? Boookごとではなくいつでも即使えるようにマクロをためておくことはできますか?
725 :
名無しさん@そうだ選挙にいこう :02/03/21 16:37
726 :
名無しさん@そうだ選挙にいこう :02/03/21 16:42
EXCELでC4のセルに書かれた2002/03/21, 07:00と言う日時データを 協定世界時(東京の時間より9時間遅い)に修正して曜日を挿入して 2002/03/20,22:00 水曜日 とD5等の他のセルに出力させることはできるでしょうか?
>>726 =C4-(1/24*9)
でそのセルの書式設定>表示形式タブ>ユーザー定義に「yyyy/mm/dd ,h:mm aaa"曜日"」
でとりあえず出来たけど。
あ、時間が常に二桁表示だと「yyyy/mm/dd ,hh:mm aaa"曜日"」だね
730 :
名無しさん@そうだ選挙にいこう :02/03/21 18:52
>>728 教えていただいた通りにやっても#VALUE!になってしまうのですけど、
C4のデータは726に書いた通りに入れた状態でもきちんと表示されるのでしょうか?
731 :
名無しさん@そうだ選挙にいこう :02/03/21 19:08
Win2kでオフィス97つかってます。 エクセルファイルを開くと 「'*.xls'と同じ名前のファイルが既に開かれています。・・・ 2つめのファイルを開く場合は、一方のファイルを閉じるか、またはいずれかのファイルの名前を変更してください。」 などと出ます。何が悪いのでしょう? administratorでインストールしなかったからかな?
733 :
名無しさん@そうだ選挙にいこう :02/03/21 19:33
>>730 色々と試したのですが、やっぱり駄目です。
2002/03/21 07:00 とすると大丈夫なのですけど、
2002/03/21, 07:00 とするとどうしても駄目です。
回避方法を知っている人がいたら教えてください。
734 :
名無しさん@そうだ選挙にいこう :02/03/21 20:45
折れ線グラフに関する質問です。 折れ線グラフを作成した後に、数値軸と項目軸を逆に表示させる(入れ替える)ことは可能でしょうか?
735 :
名無しさん@そうだ選挙にいこう :02/03/21 21:18
>>733 730ではないんだけど、「yyyy/mm/dd ","hh:mm aaa"曜日"」ではどう?
・・・どう?って聞く前にまず確認しろよ>自分
>>733 Excel & Windows は , を日時の区切りとして解釈する仕様がなく、データが日時では
なく文字列として処理されてるから。これはいくらごねてもどうしようもない。
普通はスペース区切りだと思う。
どうしても残したければ、式で , を削除したデータを別セルに書き出して
そのセルの表示形式を操作すればいい。
737 :
調べたけど分からん君 :02/03/21 22:43
A列に日付を,B列に投資損益を記入しといて C列にそれぞれの投資ごとの複利の実質利回りを年率で表示する式はどう書くNO?
738 :
名無しさん@そうだ選挙にいこう :02/03/21 23:08
>>735 駄目でした。考えてくださってありがとう。
>>736 表示形式の操作をやろうと色々と検索をしてみたのですけど、どうしても分かりません。
やりかたを教えていただけないでしょうか?
とっかかりだけでも結構です。
>738 2002/03/21, 07:00 が固定長なら >728さんの 例を修正して、 =REPLACE(C4,11,1,"")-(1/24*9) で良いのでは?
740 :
名無しさん@そうだ選挙にいこう :02/03/22 01:03
>>739 やってみたのですが、#VALUE!になってしまいました。
-(1/24*9)の部分を削除すると37326.1069 4444となってしまいます。
日付と時刻は固定長です。
741 :
名無しさん@そうだ選挙にいこう :02/03/22 01:08
>>740 事故レスです。
出来ました。ありがとうございました。
>>737 =RATE(期間, 定期支払額, 現在価値, 将来価値, 支払期日, 推定値)
詳しくはヘルプを見よ。
744 :
名無しさん@そうだ選挙にいこう :02/03/22 07:46
おねがいします〜。 初歩的なことと思うので恥ずかしいのですが、、、 過去レス読んでもよく分かんないので 質問させていただきます。 I69とR69が空白なら、空白 そうでなければ、N69+T69+Y69+AD69ってのを 書きたいのですが、、、、、、 =IF(AND(I69="",R69=""),"",N69+T69+Y69+AD69) では、#VALUE! って出てダメなんです。。 何処がおかしいのでしょうか。 この2〜3日これでつぶれています。 ^^;
745 :
名無しさん@そうだ選挙にいこう :02/03/22 08:14
=IF(ISBLANK(AND(I69="",R69="")),"",N69+T69+Y69+AD69) でどーでしょーか。
すいません、寝ぼけて嘘書いちゃったみたいです。 識者の出現を待ちましょう。。。ごめんなさい
質問です。教えて下さい。 不定期に不特定多数の人から更新されるシートがあります。 シートの任意の部分に、最終更新日を表示させる方法はありますでしょうか? 色々探したんですが判りませんでした。どなたかよろしくお願いします。
748 :
初心者回答 :02/03/22 09:13
=IF(AND(I69="",R69=""),"",(N69+T69+Y69+AD69)) かな。
>>748 さん
それでも、#VALUE! になってしまいます。 ^^;
>>744 まず、数式から IF 関数をなくして
=N69+T69+Y69+AD69
だけで試してみよう。これでも #VALUE? と表示されるのだったら
=N69 とか =N69+T69 とか も試してみよう。
また、上記が OK だったら、
=IF(I69="", "真です", "偽です")
つぎに
=IF(AND(I69="", R69=""), "真です", "偽です")
などを試してみよう。
要するに、構成要素の数について累進的に試してみよう、ということ。
>>747 ヘルプをキーワード「イベントプロシージャ」で検索してみてちょうだい。
>>744 =IF(AND(I69="",R69=""),"",(N69+T69+Y69+AD69)
なんか、()が多いような。
これでいけない?
>まず、数式から IF 関数をなくして >=N69+T69+Y69+AD69 >だけで試してみよう。これでも #VALUE? と表示されるのだったら >=N69 とか =N69+T69 とか も試してみよう。 う〜ん。。 =N69は良いけど =N69+T69 だと 空白部分があると、 #VALUE! になってしまう。。
>>752 さん
張り付けたら、
『入力した数式にエラーが・・・・・』って
出てエクセル君に修正を求められました。。。 ^^;
>>744 確認してみたら744で君が書いた数式でエラーでないけど?
もしかしてN69、T69、Y69、AD69の値が数値でないとか?
756 :
初心者回答 :02/03/22 09:54
748ですが私のところは出来たんですよ? なぜだろう。
N69tが=IF(L69="","",I69*L69) T69tが=IF(R69="","",80*R69) Y69が=IF(W69="","",80*W69) AD69が=IF(AB69="","",30*AB69) です。んでこの合計が知りたかったのですが。。。
>>744 ""を0に
N69が=IF(L69="",0,I69*L69)
T69が=IF(R69="",0,80*R69)
Y69が=IF(W69="",0,80*W69)
AD69が=IF(AB69="",0,30*AB69)
>>758 何も記載されない時は空白にしたいのですが、
ダメでしょうかねぇ。
>>759 ツール>オプション>表示タブ>ゼロ値のチェックを外す
>>743 RATEは期待しているのと違ったYO!
私の説明が下手だったのかな。
例えばA1に02/01/01と日付あって、B1に100000と金額があったとするYO。
同じくA2に02/01/02とあって、B2に105000と金額があるYO。
このデータだと一日で5千円儲かってるけど、これを一年複利になおすと何%相当に
なるのかが財務関数で検索したんだけど分からなかったのYO。
EXCELを全然使いこなせてないのでうまい使い方や財務関数で出来るのかもしれない
けど、どなたか詳しい方教えてPlease。
>760さん〜〜 ありがとうございます。 これならIF関数もAND関数もいらないようで。。。。。。 お答え下さった皆様方ありがとうございましたぁ。 (゜゜)(。 。 )ペコッ
VBAの質問もOKですか? 当方、一太郎&花子で広告を作ってます。 一太郎には差込項目という機能があって、改行で仕切られたデータのテキストファイルを読み込み、 一太郎ファイルの差込項目部分にデータを流し込めるようになってます。 このデータ用テキストファイルをエクセルの表から作成するのにVBAを利用するつもりです。 で、質問ですが、VBAを利用してデータ用テキストファイルを吐き出すだけではなく、 一太郎のオープン&クローズや印刷まで制御することは可能でしょうか? もしくはテキストファイルを介さずに、エクセル&ワードのように直接データを流せるようにできるでしょうか? やっぱ最初からワードで広告作っておけば良かったでしょうか?(泣
VBAは、文字通りアプリ(excel.word,Access)に特化したもの だから、他のアプリを起動することはできても、その先の作業は一太郎のスクリプトを書く必要がある。 これが、wordだったら良かったのにね 無論、VBAじゃなくてVBならどうかとも思うが、やはり一太郎の操作を行うことは無理かと思われ
>>764 ありがとうございます。
やっぱワード&ATOKってパターンにしておけば良かったです。(悔
ところでワードには花子的なドローイングソフトやフォントエディターみたいなものってあるんでしょうか?
>>765 花子も一太郎と別のソフトのようにWordにその機能が無くても他のアプリで部品を作ってから取り込めばいいだけ。
一応ワードアートで文字飾りを、図形の描画で簡単な図形を描けるけど。
>>763 よくわからん。
一太郎用の VBA のライブラリが出回ってるかどうか聞きたいの?
それとも、Word の VBA で一太郎型式のデータを操作したいの?
前者は… たぶん無理。てか、一太郎のほうの HELP も読んでね。
(私はぜんぜん一太郎を知らないので)
後者は、可能だけど、やっぱ見た目すこし崩れますでしょうから、
最初からワードで創っておけばよかったんだと思います。
>>761 仮に財務関数になくても、
年利の計算式さえ知っていれば簡単だと思いますが。
>>751 判りました。探してみます。
スマソです。
770 :
名無しさん@そうだ選挙にいこう :02/03/22 16:10
44 2 44個 (計算合計)に自動的に(個)や(枚)等の単位がついてくるようにする 計算式orやり方ってありますか?
771 :
名無しさん@そうだ選挙にいこう :02/03/22 16:22
772 :
名無しさん@そうだ選挙にいこう :02/03/22 17:31
10文字ある文字列のうち頭の5文字だけを残すのはどうすればできますか。
773 :
名無しさん@そうだ選挙にいこう :02/03/22 17:35
772です。 文字列の長さは可変するので、REPLACEを使用することはできません。 LENとREPLACEを同じセルで使えればいいのですけど。
774 :
名無しさん@そうだ選挙にいこう :02/03/22 17:37
772です。試しに中に入れてみたら簡単にできました。くだらない質問ですみませんでした。
776 :
名無しさん@そうだ選挙にいこう :02/03/22 18:12
>>775 色々と検索してるんだけどEXCELのヘルプやWebで検索しても
べき根の計算方法が無いんだYO!
POWER関数の逆数をいちいち使わないとべき根は出来ないNO?
いじわるしないで教えてYO!
>>776 「正のn乗根」は「1/n乗」と同値。
( ´D`)ノ<こんなかんじれす
779 :
名無しさん@そうだ選挙にいこう :02/03/22 19:15
POWER関数を使うYO! もう一つ教えてYO A1とA2の中身がERRORだったら、って条件式は =IF(ISERROR(A1),IF(ISERROR(A2),"エラーだ","エラーじゃない"),"エラー無し") とするしかないNO? ANDで一つにできる方法は無いNO?
>>779 セルから/セルヘ の入出力のデータ型(書式)はすべて文字列に
してしまって、式そのものは VBA で書く。
これ、最強。
781 :
名無しさん@そうだ選挙にいこう :02/03/22 19:51
凄くながくなってしまうYO! =IF(ISERROR(W4),IF(ISERROR(W5),P4,IF($W5=$W4,(2*POWER ($O5/$O4,1/(2/365))-1)*100,(2*POWER($O5/$O4,1/(2*($W5 -$W4)/365))-1)*100),IF($W5=$W4,(2*POWER($O5/$O4,1/(2/ 365))-1)*100,(2*POWER($O5/$O4,1/(2*($W5-$W4)/365))-1)*100))) こんな感じになったけどこれでも利率がマイナスになる場合はエラーになるから その時の条件式も書かないといけないから倍のサイズになっちゃうYO! 誰か助けてYO! 簡略化してくれたら助かるYO。
782 :
名無しさん@そうだ選挙にいこう :02/03/22 21:33
>>781 酷い間違いをしてたYO!
=IF(ISERROR(V23),P23,IF(ISERROR(V24),P23,
IF($V24=$V$4,(($O24/$O$4)^(1/(2/365))-1)*200,
(($O24/$O$4)^(1/(($V24-$V$4)/365))-1)*200)))
で、出来たYO!
みんなありがTO!!!
783 :
名無しさん@そうだ選挙にいこう :02/03/22 22:12
EXCELで奇数の行は計算用に使用しているので表示させたくないのですけど、 簡単に表示させないようにする方法は無いでしょうか? いちいち、すべての行の高さを0にするのは時間がかかってしまうので。 どなたかよろしくお願いします。
ジョブ>ジャンプ
おそれいります インチキ本を片手に、株価チャートをつくってみたのですが、 これに、折れ線グラフを重ね書きするには、どのようにすればよいのでしょうか 先週末、一昨日、今日と必死なのですが、なかなかうまくいきません しかたがないので、二枚印刷して、それをかさねて、目を凝らしながら、赤ペンでうつしとっています たいへん骨の折れる作業ですので、できれば現実世界ではなく、パソコン画面上でおこないたいのですが、、、 2ちゃんねらーのみなさん、よろしくおねがいします
786 :
名無しさん@そうだ選挙にいこう :02/03/23 10:14
大量のデータ入力をしているんですが、一番上に項目名があります。 その項目名をつねに表示しておく方法はどうしたらいいんでしたっけ。。 教えてください。
>>783 ジャンプでできるかどうかは忘れた
a)マクロを作っておく
b)=ISODD(ROW(この式を入れたセルの番地))と入れて、その行が奇数かどうかを判定させた後フィルタする
>>786 A2をクリックして ウィンドウ→ウィンドウ枠の固定
788 :
名無しさん@そうだ選挙にいこう :02/03/23 10:41
>>785 株価チャートを使ったことがないんでうまくいくかどうか…
一応、棒グラフと折れ線グラフなど複合グラフを作成する場合、
先に棒グラフを作成しておく
→折れ線グラフにしたい系列を選択
→書式で「選択したデータ系列」→軸から「第2軸(上/右側」
用語とかはバージョンにより異なると思うけど、
要は系列を選んで第2軸を指定。
789 :
名無しさん@そうだ選挙にいこう :02/03/23 10:45
>>785 どんな折れ線がいるのかよくわからないけど。
株価チャート(出来高-始値-高値-安値-終値)を使って作成し、
出来高の棒をクリック→グラフ→グラフの種類→折れ線
>>784 ジョブが見つからないのですけどそのメニューはどこにありますか?
helpではOutlookを開け、となってるもので。
792 :
名無しさん@そうだ選挙にいこう :02/03/23 11:10
他の人あてのレスを勘違いしていました。
>>787 すみません、うまく意味が通じてなかったようですが、例えば50行目まではもう
手動ですべて偶数行の高さは修正しているとします。
51行目以降の高さを自動あるいはマクロ的なもので修正する方法はないでしょうか。
そのシートのすべての偶数行の高さを0にする方法でもいいです。
また、勘違いしてました。早とちりが多いなあ。。
>>787 > b)=ISODD(ROW(この式を入れたセルの番地))と入れて、その行が奇数かどうかを判定させた後フィルタする
行を非表示にする命令はないでしょうか?
フィルタは使った事が無いもので、使い方が良くわからないです。
>>783 こんなマクロでどうよ?
Public Sub hideEvenRow()
Dim rowCurrent As Range
Dim isEven As Boolean
isEven = False
For Each rowCurrent In ActiveSheet.Rows
If isEven Then
rowCurrent.Select
Selection.RowHeight = 0
End If
DoEvents
isEven = Not (isEven)
Next
End Sub
795 :
名無しさん@そうだ選挙にいこう :02/03/23 12:04
>>783 偶数行の計算を奇数行でやっているのだとすると、
見た目の他にも、合計だのグラフだのの度に奇数行を抜く手間が入って面倒だし、
いっそシートの形式を変更し、
計算はその行の右の方でやるようにするというのはどうかな。
データ
↓
計算
↓
データ
を
データ→計算
┌←┘
データ→計算
のようにする。
>>783 必要範囲(内の1列だけで良い)を選択してからな。
行全体を選択すると時間が掛かるので注意。
Sub aaa()
Dim r As Range
For Each r In Selection
If (r.Row Mod 2) <> 0 Then r.EntireRow.Hidden = True
Next r
End Sub
797 :
名無しさん@そうだ選挙にいこう :02/03/23 12:43
>>794 このマクロを実行したらこれまで入力していたデータがすべて消えてしまいました。
消えないようにすることは可能でしょうか?
>>795 他のアプリケーションからもらってくるデータが2行に分かれているのを1行にまとめて
表示しているので奇数行の表示は不要なのですよ。
798 :
名無しさん@そうだ選挙にいこう :02/03/23 13:06
>>797 うああ、奇数行の方を隠したいのか、スマソ(o_ _)o
全選択して全行の高さを13.5(デフォなら)に戻しておいて、
Public Sub hideOddRow()
Dim rowCurrent As Range
Dim isOdd As Boolean
isOdd = True
For Each rowCurrent In ActiveSheet.Rows
If isOdd Then
rowCurrent.Select
Selection.RowHeight = 0
End If
DoEvents
isOdd = Not (isOdd)
Next
End Sub
こっちだ(o_ _)o
800 :
名無しさん@そうだ選挙にいこう :02/03/23 15:18
>>799 ちゃんと出来ました。
あれ?自分でEvenをOddに置き換えた時は動作しなかったのに。
ありがとうございました。
>>800 えっと、isOddとかhideOddRowは変数名・関数名なので、
実際はどんな名前でも良いんです(予約語でなければ)。
まちがったのは
> isOdd = True
の行で初期値(1行目)をTrue/Falseのどちらかにするかで、
Trueにすると1行目から一行おきに処理
Falseにすると2行目から一行おきに処理
となるんです。
>>801 > > isOdd = True
ここはいじってないでした。
ありがとうございました。
803 :
名無しさん@そうだ選挙にいこう :02/03/23 18:03
膨大な実験データを解析するため エクセルのマクロ使いたいです。 初心者向けのマクロ操作方法習得HPでいいとこ教えてもらえませんか。
いろいろしてるうちにVBAの問題な気がしてきました。 000.csvファイルに自動マクロでAという処理を覚えさせた後 001.csv〜030.csvファイルまで同様にAの処理をさせるように拡張したいのですが プログラムのどこをどういじれば拡張できますでしょうか。
>>803 MOUG.NetマクロとVBAの学習を1から簡単に教えてる。とりあえず全部の講座に目を通そう。
http://www.moug.net/tech/index.htm ところでcsvファイルは単にセル内のデータがテキスト形式で羅列されてるファイル。
書式やグラフやマクロなどのセルのデータ以外の情報や処理は覚えさせられない。
普通にxls形式で保存し、必要な処理が終わったらcsv形式でエクスポートしよう。
807 :
名無しさん@そうだ選挙にいこう :02/03/23 19:09
2軸上の折れ線と棒グラフでプレビューや表示を改ページにすると元に戻すときグラフが縮むのは何故?
808 :
名無しさん@そうだ選挙にいこう :02/03/23 20:18
ありがとうございました おかげさまで、なんとかうまくいきました それで、調子に乗ってもうひとつお伺いしたいのですが、 複数の折れ線グラフを、株価チャートに表示することは可能でしょうか 出来高をつかう方法ですと、折れ線グラフの系列1か2のいずれかを、取捨する必要があるみたいです できることなら、Graph1と2を直接かさねあわせることができれば申し分ないのですが、、、 無理を申してすみません エクセルつかいのみなさま、よろしくお願いしますm(__)m
ローソク+複数の折れ線ということですか? ローソク+ボリンジャーバンド(基本値、±σ、±2σ)のようなもののことかな。
あまり複雑なものは自作するよりpaxnetとかの方が便利だが
>>786 (´-`).。oO( [ウィンドウ]→[ウィンドウ枠の固定] )
>>786 812に補足
カーソル位置は、項目名のしたにしておくこと
816 :
名無しさん@そうだ選挙にいこう :02/03/25 12:49
>>807のモノデス。 質問仕方が悪かったんでしょうか? どなたか教えてください。 グラフエリアが縮んじゃうんですよ。こういうことってないですか?ちなみに系列が2つずつです。
817 :
ABCが123! :02/03/25 15:18
エクセルの一番上の行の記号が ABC〜 から 123〜 になっちゃって直らないんですけど! どうしれば直りますか?
>>817 [ツール]→[オプション]→[全般]
→「R1C1参照型式を使用する」をOFF
For N = 0 To 9 Step 1 00" + Trim(Str(N)) + ".csv Next N とまあこういったかんじで無事解決できました。
>>772 A1セルに文字列があるとして
=left(A1,5)
822 :
名無しさん@そうだ選挙にいこう :02/03/26 09:58
エクセルで1枚目のものを2枚目とか3枚目にリンクさせてるのですが、 それらを他のブックに切り外して集約したいのです。 リンクが切れてしまうのですが今ある数値を保存させることは出来ますか?
823 :
名無しさん@そうだ選挙にいこう :02/03/26 11:35
リンクが切れてしまっても構わなくて、数値だけ残したいのなら、 その範囲を選択してコピー、そのまま「形式を選択してペースト」で「文字/数値」。
824 :
名無しさん@そうだ選挙にいこう :02/03/26 11:48
シートが何百枚もあるのですが、個別にやらずにすむ方法はあるでしょうか?
826 :
名無しさん@そうだ選挙にいこう :02/03/26 12:29
ある時から突然シートをコピーしようとすると 「移動またはコピーする数式またはシートには、 移動またはコピー先のワークシートに すでにある名前'HTML_CTRL'が含まれています。 この名前を使用しますか?」 という警告が出てしまいます。 このとき「はい」を選ぶとそのままコピーされ、 いいえを選ぶとさらに選んだ名前の何か(何かわからない)が 新たに出来てしまい、こんどコピーするときにはそれも警告文と して出るようになってしまいます。 この定義されているらしい「名前」を消したいのですが どうすればいいのでしょうか? ちなみに「挿入」→「名前」のところをみても何も定義されていません。
どなたかVBAが分かる方、数式をお教えください(涙) 初心者でスイマセン。 やりたいのは、多数のブックがあり、それらは1枚目から2枚目や3枚目にリンクが貼ってあり、 ・シートの2枚目は複数のブックの2枚目をまとめをまとめて1つのブックに。 ・3枚目も2枚目のシートと同様に3枚目を抜き出して1つのブックに。 としたいのです。可能でしょうか?
>>827 可能。
てか、循環もありうる仕様であるように読めるけど…。
また、「から」と「に」の使い方がバラバラなのでは?
もっと判りやすく説明してヨ。
えーっと1枚目のシートに書いたものを2枚目と3枚目にリンクしてるブックが複数あります。 で、 複数のブックのそれぞれの2枚目のシートを集めて一つのブックにしたいのです。 大丈夫そうですか?
>>829 可能ですよー。マクロの処理の手順は、
1. 各ファイル名・ワークシート名を設定する。
2. 新しいブックを作成する。
3. 新しいブックにワークシートを追加する。
4. もとになるブックを1つ開く。
5. もとのブックの2枚目シートをまるごとコピーする。
6. 新しいブックのワークシートに貼り付ける。
7. もとのブックを閉じる。
8. 3〜7を、必要なだけ繰り返す。
( ´D`)ノ<こんなかんじれすね?
832 :
名無しさん@そうだ選挙にいこう :02/03/26 20:40
縦に2000年なら2000年の月曜日の日付をずらーと入力するにはどうすればいいですか? 2001年01月01日 2001年01月08日 ... 2001年12月31日
833 :
名無しさん@そうだ選挙にいこう :02/03/26 20:43
>>832 事故レス
2000年といっておきながら例は2001年だった。
834 :
名無しさん@そうだ選挙にいこう :02/03/26 20:44
831はマクロが書けないと思われる。仕様だけでは無理なのでは?
>>832 A1セルに月曜日の日付があるとして
=A1+7
これだけの話
A1のセルに月曜日の日付があるとして Sub 七日飛び() Dim i As Integer With ActiveSheet For i = 2 To (365 / 7) .Cells(i, 1).Value = .Cells(1, 1).Value + (i - 1) * 7 Next i End With End Sub あるいは Sub 七日飛び2() Dim i As Integer With ActiveSheet For i = 2 To (365 / 7) .Cells(i, 1).Value = "=A1+" & (i - 1) * 7 Next i End With End Sub
年月を入れたら 月〜金までの日付と曜日がずらー っていうのはどうでしょう。 ただいまvbaの本買って勉強中です。
>829 1.フォルダを1つ用意する。 2.新規ブックを用意して、標準モジュールに下記マクロをコピペ 3.用意したフォルダにテキトーな名前で保存する。(例 hoge.xls) 4.同じフォルダに処理したい複数のブックをコピーしておく。 5.hoge.xlsのみ開き、Testマクロを実行する。 Sub Test() Dim fs As FileSearch, openBook As Workbook Dim newBook1 As Workbook, newBook2 As Workbook On Error GoTo ERR Application.ScreenUpdating = False Set fs = Application.FileSearch fs.NewSearch fs.LookIn = ThisWorkbook.Path fs.FileName = "*.xls" If fs.Execute = 1 Then Exit Sub Set newBook1 = Workbooks.Add(xlWBATWorksheet) Set newBook2 = Workbooks.Add(xlWBATWorksheet) For i = 1 To fs.FoundFiles.Count If Dir(fs.FoundFiles(i)) <> ThisWorkbook.Name Then Set openBook = Workbooks.Open(fs.FoundFiles(i)) If openBook.Worksheets.Count > 2 Then openBook.Worksheets(2).Copy after:=newBook1.ActiveSheet With newBook1.ActiveSheet .Cells.Copy .Cells.Select .Cells.PasteSpecial (xlPasteValues) .Range("A1").Select End With openBook.Worksheets(3).Copy after:=newBook2.ActiveSheet With newBook2.ActiveSheet .Cells.Copy .Cells.Select .Cells.PasteSpecial (xlPasteValues) .Range("A1").Select End With End If Application.CutCopyMode = False openBook.Close End If Next i Application.DisplayAlerts = False newBook1.Worksheets(1).Delete: newBook2.Worksheets(1).Delete ERR: Application.DisplayAlerts = True Set openBook = Nothing: Set newBook1 = Nothing Set newBook2 = Nothing: Set fs = Nothing End Sub
>837 Sub Test2() Dim s, e, i As Integer s = Application.InputBox("yyyy/m/d でスタート日付を入れろや!", "ゴラァ") If Not IsDate(s) Then MsgBox "日付じゃねーぞ!なめてんのかゴラァ", _ vbCritical + vbOKOnly, "ゴラァ" Exit Sub End If s = DateValue(s) e = DateSerial(Year(s) + 1, Month(s), Day(s) - 1) i = 1 Do While s <= e Select Case WeekDay(s) Case 2 To 6 Range("A" & i) = Format(s, "yyyy/mm/dd") Range("B" & i) = Format(s, "aaaa") i = i + 1 End Select s = s + 1 Loop End Sub
エクセルママさん、仕様書なしさんありがとう御座いました。 手作業しかないと思ってたので感動です。 ちょっとマクロとか勉強していきます!!
841 :
くみちゃん840 :02/03/27 18:41
みなさん、こんばんわ 私ロト6を何ヶ月かに一回だけですが、大イベントとして まとめて何十通りか購入しているのです。 その際・・・その組み合わせを考えるだけでも一苦労です。 気がついたら同じものを買っていたり・・・・ そこで・・・ 自分で選んだ10個くらいの数字の中から、6個の数字を選び出す 組み合わせの全内容を計算、表示する式もしくは VBAの作り方教えていただけないでしょうか?お願いしますm(__)m
>>841 んー、ホントに全部列挙したいの?
10個全部違う数字の場合で
10*9*8*7*6*5 = 151,200通りになるんだけど。
>>842 ロト6の仕様にかんする私の理解が正しければ…
151,200 は (順列なので) ちがうとおもう。
組み合わせは 210 通りだと思う。
844 :
くみちゃん840 :02/03/27 19:58
>>842 えへへ・・・ そうだよね あはは
10個からというのはびっくりする数字なんですが
そこから、自分で抽出条件を加えて絞り込もっか・・・なんて考えてます
えへっ、じっさいすべて買える訳ではないのですが(^^ゞ
べんきょーの為です。ぜひ教えてくださいませんか?
845 :
くみちゃん840 :02/03/27 20:02
あっ そうです そうです 数字の種類ではなくて、数字のかかれた玉の 組み合わせですぅ 私の説明が悪かったですネ・・・ 教えてください〜m(__)m
>>839 ありがとうございました。出てくるメッセージが笑えました。
自分しか使わないのでこのままにしておきます。
本当にありがとうございました。
848 :
名無しさん@そうだ選挙にいこう :02/03/27 20:21
EXCELで作成した表を、オブジェクトもしくは図(gifなど)に変換することは可能でしょうか?
スマソ。カキコミスでしゅ。アイデアプロセッサレスのためのもの
851 :
名無しさん@そうだ選挙にいこう :02/03/27 20:47
>>850 htmlは、表が壊れからダメです。
他にイイ方法はありませんか?
>>851 図にしたい範囲を選択状態にして
Shiftキーを押しながら
編集>図のコピーを実行し>貼り付け
>>841 「組み合わせ」の方か...
こんな考え方でどうだろう?
A〜Jの文字から6個えらんで出力する
> Debug.Print strResult
この辺を適当に工夫してな。
Private Sub hoge()
Call strComb("ABCDEFGHIJ", "", 6)
End Sub
Private Sub strComb(ByRef strSource As String, _
ByRef strResult As String, _
ByRef counter As Long)
Dim i As Integer
If counter = 0 Then
Debug.Print strResult
Else
For i = 1 To Len(strSource)
Call strComb(Mid(strSource, i + 1), _
strResult & Mid(strSource, i, 1), _
counter - 1)
Next
End If
End Sub
856 :
名無しさん@そうだ選挙にいこう :02/03/28 02:29
858 :
名無しさん@そうだ選挙にいこう :02/03/28 09:09
知識のある方にご教授願いたいのですが、私はエクセル95を使っております。 今までは、エクセルを開いた状態で他のシートを開くと同一のエクセル内で 処理されていたのですが、昨日より別のエクセル起動するようになってしま いました。(タスクバーにエクセルが2つ存在する) 再インストールせずに元の状態に戻せますか? また、再インストールするとしたら、どのレベルから再インストールが必要 ですか? 上手く状態を表現できていないかも知れませんがご教授願います。
859 :
誰か教えてくれぇ :02/03/28 16:25
もしセルA1が**でセルB1が**ならセルC1に**と表示する というマクロをつくりたいのですが、**に入る数値がA1、B1、C1それぞれ 複数あります。C1にそのマクロを入力したいのですが、誰か教えてください。 あと、マクロの長さというか入力文字数には限りがあるのですか?
>>859 ちょっと意味わかんないから
**じゃなくて複数なら複数分具体的な例を挙げてみて。
>>859 てか、マクロはセル(C1とか)に書くんじゃないよぅ。 ( ´Д⊂ヽウエーン
しかも、何千行も書いてもいいんだよぅ。
おじさん、泣いちったよ。 助けると思って、ちょっとはヘルプを
読んでみそ。おながいします
862 :
516=532ですが :02/03/28 20:22
863 :
名無しさん@そうだ選挙にいこう :02/03/28 21:13
実際に試しで作ってみたのが =IF(AND(G127=0.8,H127=0.8),"-08",IF(AND(G127=0.8,H127=0.6),"-06" ,IF(AND(G127=0.8,H127=0.4),"-04",IF(AND(G127=0.6,H127=0.8),"-06" ,IF(AND(G127=0.6,H127=0.6),"-06")))))こんな感じです。 ↑ ↑ ↑ ここの数値の種類が複数あります。 分かりにくくてすみません。
864 :
859です :02/03/28 21:15
↑
>859 >861 下記ユーザー定義関数を標準モジュールにコピペ Function Hoge(A As Range, B As Range) As Variant Application.Volatile If IsNumeric(A.Cells(1, 1)) And IsNumeric(B.Cells(1, 1)) Then Hoge = (A.Cells(1, 1) + B.Cells(1, 1)) * 1.05 ElseIf A.Cells(1, 1) = "あ" And B.Cells(1, 1) = "げ" Then Hoge = "age" ElseIf A.Cells(1, 1) = "さ" And B.Cells(1, 1) = "げ" Then Hoge = "sage" ElseIf A.Cells(1, 1) = "こ" And B.Cells(1, 1) = "ら" Then Hoge = "ゴラァ" End If End Function セルC1に =Hoge(A1,B1) と入力 A1とB1が数字として評価出来る場合は (A1+B1)*1.05 の結果 A1が あ で B1が げ だと age A1が さ で B1が げ だと sage A1が こ で B1が ら だと ゴラァ
866 :
名無しさん@そうだ選挙にいこう :02/03/28 21:49
>862 条件によって文字の色を変えるのなら 条件付書式を使ったらいいと思うのですが、 なぜvlookupを使うのかちょっとわからない です。。。?
867 :
おみとろん命 :02/03/28 22:22
ボタンを押すとシートをコピーしそのブックの一番後ろに貼り付け、 なおかつシート名を次の月(02年04月)となるようにしたいです こんなマクロを教えていただけませんか? バージョンは97です よろしくお願いします
>867 表示 - ツールバー - フォームのボタンをシートに置き、マクロを割当てる。 選択しているシートのシート名が 02年03月 とかであること。 Sub Test() Dim copyWs As Worksheet, addWs As Worksheet, wsName On Error Resume Next ActiveCell.Activate Set copyWs = ActiveSheet wsName = DateValue(copyWs.Name & "1日") wsName = DateSerial(Year(wsName), Month(wsName) + 1, Day(wsName)) wsName = Format(wsName, "yy年mm月") Set addWs = Worksheets.Add(after:=Worksheets(Worksheets.Count)) addWs.Name = wsName copyWs.Cells.Copy addWs.Paste addWs.Range("A1").Select Application.CutCopyMode = 0 End Sub コピー部分は ActiveSheet.Copy after:=Worksheets(Worksheets.Count) の方が 簡単だが、使い続けると問題が発生するので使ってない。
>863 それはマクロじゃない。 普通の関数でネスト出来るのは7つまで。 下記のように条件分けすれば、多少増やせるけが、訳が解らなくなる。 =IF(G127=0.8,IF(H127=0.8,-0.8,IF(H127=0.6,-0.6,IF(H127=0.4,-0.4, IF(H127=0.2,-0.2,IF(H127=0.1,-0.1,0))))),IF(G127=0.6,IF(H127=0.8 ,-0.6,IF(H127=0.6,-0.6,IF(H127=0.4,-0.4,0))),IF(G127=0.4,IF(H127=0.8 ,-1.2,IF(H127=0.6,-1,IF(H127=0.4,-0.8,IF(H127=0.2,-0.6,IF(H127=0.5, -0.1,0))))),0)))
870 :
おみとろん命 :02/03/28 23:25
>>868 か、神様・・・
ありがとうございました
感謝します
>>868 Copyメソッドだとどういう問題が発生するのでしょうか?
>>870 せっかく書いちゃったので...貼っておきます。
Option Explicit
Sub Macro1()
Dim strNewSheetName As String
strNewSheetName = Format(DateAdd("m", 1, Date), "yy年mm月")
If isThisNameUsed(sheets, strNewSheetName) Then
MsgBox "シート名" & vbCrLf & strNewSheetName & vbCrLf & "はすでに存在します"
Else
sheets("Sheet1").Copy After:=sheets(sheets.Count)
sheets(sheets.Count).name = strNewSheetName
End If
End Sub
Function isThisNameUsed(ByRef sheets As sheets, ByRef newName As String) As Boolean
Dim s As Worksheet
Dim boolUsed As Boolean
boolUsed = False
For Each s In sheets
If s.name = newName Then
boolUsed = True
Exit For
End If
Next
isThisNameUsed = boolUsed
End Function
>> ByRef sheets As sheets うあ、ちょっとこれはアレだな...宇津山車...
>871 既知のバグなんでExcel97だけかもしれんけど。 Sub AAA() ActiveSheet.Copy after:=Worksheets(Worksheets.Count) End Sub これを繰り返すと28回くらいでエラーがでる。 理由はオブジェクト名 Sheet1 が Sheet11 となり、やがて Sheet111111111111111111111111111になってエラー
>>873 Excel97で実験すると...確かにオブジェクト名がおもしろいことになりますね。
Excel2000ではこの問題は解決しているようです。
(調子にのって1000個ほどコピーしてみましたが、特に問題は起きませんでした)
興味深いバグのご教示ありがとうございました。
875 :
名無しさん@そうだ選挙にいこう :02/03/29 00:52
97から2000にバージョンアップした時にもこのSheet111111111...てのに出会ったよ。
876 :
862ですが :02/03/29 10:48
>>866 さん
"一覧"シートから"出席確認表"シートや
"名簿"シート、"カルテ"シートにリンクさせてたいんですが・・・・。
とりあえず教えていただいた方法で試してみます。
もっと良い方法があればよろしくお願いします。
マウスでクリックしないで名前BOXをアクティブにする方法教えて!
878 :
859です :02/03/29 13:47
>>869 できました。ありがとう!!
ついでにおしえてもらいたのですが、
セルA1が0.2もしくわ0.3ならば というのはなんて打てばよいのでしょう?
全く初心者的な質問ですいません。
879 :
名無しさん@そうだ選挙にいこう :02/03/29 16:25
880 :
名無しさん@そうだ選挙にいこう :02/03/29 16:43
10桁ある数値の内の下4桁だけ取り出すにはどうやったらできますか? そのようなことができる関数があれば教えてください。
>>880 方法1
(;´д`).。oO( 数値を文字列に変換してから右4文字を抜き出す )
方法2
(;´д`).。oO( 壱萬で割った余りを求める(書式は「0000」) )
>876 ANDは知っててORは知らないのか? =IF(OR(A1=0.2,A1=0.3),"OK","NG")
>882 >878へのレスだった。
>877 名前ボックスのアクティブ化じゃないけど、F5又はCtrl+Gでジャンプはどうよ。
>880 =VALUE(RIGHT(A1,4))
877です。 解決ドモドモ
887 :
初心者でスマン :02/03/30 01:05
見積書を書きたいんです 製品コードを入力すれば製品名、規格、単価などを VLOOKUP関数を使用して入力できるようにはしてるんだけど そのVLOOKUP関数で指定されたデータをみんなで共有したいんだけど どうすれば良いのでしょうか? 簡単に言うとVLOOKUP関数の中身に他のBookのデータを参照出来るのか? ってことです。トンデモ質問なら御免くさい。
888 :
名無しさん@そうだ選挙にいこう :02/03/30 10:46
>882 知りませんでした。度々ありがとう
889 :
516=532ですが :02/03/30 14:02
セルA1の値が1又は2の時、セルB1の文字は青文字、 セルA1の値が3又は4の時、セルB1の文字は赤文字で表示 するにはどうしたら良いのでしょうか?
>889 B1を選んで条件付書式で 条件1 を 数式が =OR(A1=1,A1=2) にしてフォントを青 条件2 を 数式が =OR(A1=3,A1=4) にしてフォントを赤
891 :
名無しさん@そうだ選挙にいこう :02/03/30 15:36
ある表をつくってるのですが、一番左上のセルを斜め線で区切って左下に項目、右上に月って 書きたいのですが、セルのプロパティーで右寄せ上付けで月はできるし、項目の字を 左下付けにも出来るのですが、同時に書くにはどうすればいいでしょうか?
意味が不明でしたね。 項目\月 ←これを項目は左寄せ下付けで、月は右寄せ上付けで一つのセルに入れたいのですが 良い方法はあるでしょうか?
893 :
516=532=889ですが :02/03/30 15:50
>>890 さん
どうもありがとうございました。
教えていただいた方法で無事理想にピッタリの処理が出来ました。
890さん以外にもいろいろと協力していただいた皆さん
どうもありがとうございました。
これからもよろしくお願いします。
>>892 「月」と「項目」と記入したラベルを貼る付けるんじゃダメ?
>>894 早速の解答をありがとうございます。
それも考えたのですが
空白スペース 月[改行]
項目
でセルに2行入れる事で解決しました。どうもお騒がせしますた。
896 :
名無しさん@そうだ選挙にいこう :02/03/30 17:13
初めまして!まだまだexcel勉強中です^^;; 早速ですが質問させてください。 特定のセルに数値(例えば"1")を入力するだけでそれに対応した範囲(例えばA1..B5)が そのセル以下に貼り付けられるようにするにはどうしたらよいのでしょうか!? コピペする手間が省けると思うのでそれが出来れば便利なのですが・・・
897 :
ななしくん@うっ・・・ :02/03/30 17:25
質問です。 論理式で、【C4が「富士」を「含む」】ってやる場合、どうすればいいんですか? ワイルドカードは論理式で使えるんでしょうか?
>>897 =NOT(ISERROR(SEARCH("富士",C4)))
かな
>>896 そのワークシートのChangeイベントを拾って
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$C$6" Then
Select Case Target.Value
Case 1
Range("A1:B5").Copy Target.Offset(1, 0)
Case 2
' 2が入力されたときの処理
End Select
End If
End Sub
こんな感じ。
上はC6セルに数値を入力する場合ね。
>899 ありがとうございます^^ さっそくチャレンジしてみますね
901 :
名無しさん@そうだ選挙にいこう :02/03/30 23:23
EXCEL初心者です。 Excelで開いているドキュメントをマウスでドラッグしてたら いきおい余って、ツールバーの奥の方までつっこんでいってしまい、 マウスで一生懸命ドキュメントを元の箇所に戻そうとしても ドキュメントの青い場所(マウスでドラッグできる場所です) が全く見えないため、元の箇所に戻せません。 青い場所でドキュメントをドラッグする以外に、ドキュメントを 移動する方法ってありますか?
>901 ウィンドウ−整列−並べて表示
>>902 そんなのがあったんですね。
有難う。うまくいきました。
>899 今度は応用でsheet間で出来ないものかと思いチャレンジしたのですが爆死しました;_; 例えば・・・ Sheet3で特定のセルで入力した数値がSheet2のその数値に対応した範囲を拾ってSheet1にコピペする というやり方を教えてください・・・ うーん、頑張ったけどダメでした^^;;
905 :
改ページの移動? :02/03/31 13:08
恥を忍んで質問です。 表示 - 改ページプレビューで表示される、 改ページを示す点線を動かそうとしてのです が、マウスポインタを点線の位置へ持って いってもマウスポインタが⇔にならず、ドラッグ できません。 改ページの挿入はできるのですが、それを 移動することもできません。 改ページ位置を移動できるようにするには どうすれば良いのでしょうか?環境はWinXP, OfficeXPです。
>>905 XPは使ってないから解らないんだけど
改ページプレビューから操作できないって事なのかな?
もしかして標準ページに戻ってやってるとか・・・
>>904 Sheet3にこんな感じで。
Private Sub Worksheet_Change(ByVal Target As Range)
Dim s1 As Worksheet
Dim s2 As Worksheet
Set s1 = Worksheets("Sheet1")
Set s2 = Worksheets("Sheet2")
If Target.Address = "$C$6" Then
Select Case Target.Value
Case 1
s2.Range("A1:B5").Copy s1.Range("A1")
Case 2
' 2が入力されたときの処理
End Select
End If
End Sub
VBAのヘルプでRange、Worksheet、Workbookオブジェクト
あたりのプロパティ、メソッドを調べれ。
908 :
改ページの移動? :02/03/31 14:04
レスありがとうございます。 したいのは改ページ位置の移動です。 標準には戻っていません。おなじみ?のダイアログ である「マウスでドラッグすると改ページ位置を調節できます」 が出てくるにもかかわらず、点線をドラッグすることができま せん。 ページ設定や印刷範囲の設定を操作したせいなのでしょうか?
解決しました。 改ページ位置の移動ができなかったのは、 ツール - オプション - 編集の 「ドラッグ アンド ドロップ編集を行う」の チェックが外れていたためでした。 なんだかなぁ。
>907 ありがとうございます^^ 今度こそ解決できそうです。 自分で調べず教えて君もいけないのは分かっているのですが・・・ もう一つ質問なのですが画面上では罫線や網掛けを表示して 印刷時にはその部分の罫線や網掛けを印刷しない方法ってあるのでしょうか? どこかで見かけた記憶はあるのですが・・・
>>910 ファイル>ページ設定>シートタブで「簡易印刷」にチェックを入れる
913 :
名無しさん@そうだ選挙にいこう :02/04/01 09:03
セルに勤務時間などのデータを全角で入力してしまいました。 グラフ表示などをさせたいので半角等のデータに変えたいのですが、良い方法はないでしょうか? 1、”6時間30分勤務” → 6:30 2、”残業”、”早出”、”徹夜”等と入力しているものをグラフで表示させたい。 3、一つのセルに”8時出社 13時から外出” → 出社時間のセルに8:00、外勤のセルに13:00- どなたかよろしくお願いします。
914 :
名無しさん@そうだ選挙にいこう :02/04/01 12:01
>>913 そのデータって何件くらい?
件数少なかったら、手打ち勧める。
915 :
名無しさん@そうだ選挙にいこう :02/04/01 16:03
簡単質問ですみません。 たとえば 10.50分を10分30秒のように表示したいのですが どのようにしたらいいですか?
たびたびの質問への回答ありがとう御座います^^ なんとかかんとか理想のシートを組んだのですが・・・・ VBAを組み終わって試したところ・・・・ 「プロシージャが大きすぎます。」とエラーが発生;_; うーん、こればっかりは減量するしかないのでしょうか!? あと一歩だったのに・・・対策方法があればご教授ください
>>915 10:50と記入するようにして
そのセルを右クリック>セルの書式設定>表示形式タブ>ユーザー定義で
hh"分"mm"秒" あるいは h"分"mm"秒" と記入する
>>916 てか、どう「大きすぎます」なんだろう?
プロシージャ1個で何行くらいあるの?
長すぎたら、分割するっていうのが標準的な手筋
なんだけど、どう?
>917 お返事ありがとうございます。 しかしながら これで10.5と打ち込むと 12分0秒になってしまいます。 分の桁はそのままにおきたいのですが、(10分30秒という風に) どのようにするべきなんでしょう? 重ね重ねもうしわけありません。お願いいたします。
>916 2000行なんですよねー これじゃあ、いくらなんでも大きすぎますね^^; しかもcaseの繰り返しなので厨房な組み方です・・・・ 勉強しなきゃ・・・ 分割方法はどのようにして行うのでしょう!?
セルをかえなきゃだめみたいですね。 どうもすみませんでした。
a b c d e f 1 ○ ○ 2 ○ ○ 3 ○ ○ 4 ○ ○ 5 ○ ○ 一列目の丸だけ赤に 二列目の丸だけ青に・・・ という風にしたいのですがどんなマクロを組めばいいのでしょうか? 丸に入るのは不規則な文字列なので条件付書式では出来ないようです バージョンは97です
^^自己解決できました^^ ありがとうございました^^
>>920 case? 場合によっては不可避。
しかも、うまく使うと (゜д゜)ウマー
とりあえず、Func か Sub を Case の数だけ作って、
case 9 'Qちゃんが球のとき
subQちゃん()
case 10 '天使が舞い降りたとき
subTen()
… とかなんとか呼んでみ。
(´−`).。oO(このほうがバグも見つけやすいぜよ)
925 :
名無しさん@そうだ選挙にいこう :02/04/01 19:33
>>914 レスありがとうございます。
400件を超えるデータ数なので手打ちではきついです。
>924 アドバイスありがとうございます。 VBAはモロ初心者なので参考書を買ってきて勉強します^^;; #だいぶこのスレのアドバイスが参考になりました^^感謝 ところで、入力した数値がcaseにすぐに反映されないのはどうしてでしょうか? 例えば"1"とセルに入力するとすぐにそれに呼応されず もう一度そのセルにカーソルを戻してあげないとダメなのです^^; なので、数値を入力した後にもう一度カーソルをなぞっていかないといけないのは ちょっとわずらわしいです^^; これがセルに入力した時点で呼応出来ていれば完璧なのですが・・・
927 :
名無しさん@そうだ選挙にいこう :02/04/01 22:30
passwordが 1 の時の36桁DPB教えてください。
>922 色を変えたい文字がある、一番上のセルを選び実行 例でいったらA1を選んで実行、B2を選んで実行 Sub Test() Dim mySelection As Range, r As Range, Ar As Range Set Ar = ActiveCell Flg = Application.Dialogs(381).Show If Flg Then Application.ScreenUpdating = False Set mySelection = Range(Cells(Ar.Row, Ar.Column), _ Cells(65536, Ar.Column).End(xlUp)) For Each r In mySelection Ar.Copy If r.Text = Ar.Text Then r.PasteSpecial (xlPasteFormats) End If Next r End If Application.CutCopyMode = False End Sub
>913 データの状態が良く解らん。 規則性が無いと一括置換えは難しい。 例えば「6時間30分勤務」「8時間45分勤務」等のように 「時間」「分勤務」を全て含んでいるなら、 「分勤務」を置換えで置換え後の文字を入力しないで、置換え 「時間」を : で置換え
930 :
名無しさん@そうだ選挙にいこう :02/04/01 23:12
入力した数列をランダムにするにはどうしたらいいですか?
931 :
名無しさん@そうだ選挙にいこう :02/04/01 23:41
Select Caseで分岐させてるのですが、 条件のCase "チョコ*"みたいなワイルドカードは使えないみたいですね? 何か方法ないかなぁ…
>931 Sub test() Dim myStr, i As Byte myStr = Array("Aさん: しりとりです。「りんご」", _ "Aさん: ら...「らっぱ」", _ "Aさん: 「だちょう」") For i = 0 To UBound(myStr) MsgBox myStr(i) Select Case myStr(i) <> "" Case Is = myStr(i) Like "*りんご*" MsgBox "Bさん: 「ごりら」" Case Is = myStr(i) Like "*らっぱ*" MsgBox "Bさん: 「ぱんだ」" Case Is = myStr(i) Like "*だちょう*" MsgBox "Bさん: 「うどん」" End Select Next i MsgBox "Aさん: あんたの負け" End Sub
>930 A1〜A20に値が入っているとして、B1〜B20に =INT(RAND()*100) とか 入れて、B列で並び替え
>>931 s に文字列が入ってるとして、
Select Case True
Case s Like "チョコ*"
' チョコ* の処理
Case s Like "*キャンデー"
' *キャンデー の処理
935 :
エクセルボンバー :02/04/02 00:32
はじめまして。ゲームの改造コード計算にエクセルを使おうと思ったのですが、どうすれば16進数が使えるのか教えてください! 具体的に困ってる症状は次のとおりです。 ひとつのマスに16進数を入力しました。次のマスでそれに+4をしたいのですが、#VALUEと表示されます。 おそらく10進法にはAだのFだの英文字を使わないからでしょうけど…。 説明下手でごめんなさい、どなたかお願いします。
937 :
名無しさん@そうだ選挙にいこう :02/04/02 01:02
>>929 レスありがとうございます。
すべてに含まれているわけではないのですが、置き換えを5回ほど繰り返して
教えていただいた方法でできました。
どなたか残りの
2、”残業”、”早出”、”徹夜”等と入力しているものをグラフで表示させたい。
3、一つのセルに”8時出社 13時から外出” と書かれている→ 出社時間のセルに”8:00”、外勤のセルに”13:00-”
を教えてください。
>>938 (;´д`).。oO( ていうか )
ご自分が書いた質問を(2回も書いてるんだからさー)
何回も読み直してみそ。
「2、”残業”、”早出”、”徹夜”等と入力しているものをグラフで表示させたい。 」
これは要件の記述そのものが曖昧で不明。
入力している「もの」って、なによ?
「残業」「徹夜」などの文字列を、該当する日付けの位置に
出力すればいいのかな?
それとも、残業時間や徹夜時間(深夜残業?)も
グラフとして表示させたいのかな?
凡例に載せるだけで足りるのかな?
また、3番はすでに
>>929 さんが答えている内容に
含まれているのです (゚Д゚)ゴルァ
まず入力する段階で、気を使って欲しかったなぁ、おじさんは。
「表」計算ソフトなんだから、行と列が意味するものが何かを
自分で意識しながらドキュメントを書き起こさないとダメよ。
一つの升目に「8時出社 13時から外出」なんてしちゃうと、
そこから必要な項目を自動的に抽出しようと発想するなんて
「虫がよすぎる」ってみんなから評価されちゃうぞ。
10円持って駄菓子屋に入り、
「チロルなんてヤダ。ガーナチョコが欲すぃの!」なんてことを
店のおばぁちゃんに言ってるみたいなもんだ。
ま。確かに不確実な情報を元に答えを教えてというのも思考能力が不足していると思うが 1セルに記述してある文字数が固定されているなら3番はできないことも無い。 文字数が不定なら、入力しなおしたほうがいい。
941 :
名無しさん@そうだ選挙にいこう :02/04/02 11:27
エクセルの円グラフで、%とラベル数値と両方表示させたいのですが、可能ですか? %とラベルをひょうじさせて、テキストボックスで数値を入れていたのですが、 気が遠くなってきました…。 あと@@@個…。ウチュ
>>941 データとリンクした状態のラベルで、値と%を同時に表記するのは無理じゃないかな。
ラベルの中身を文字列として書き換えるならこんな感じでどうだろう。
ラベルを書き換えた後に、データを変更したら再実行する必要あるけど。
(例は、表示中のシート内のグラフのラベルを全部書き換える場合)
Sub refreshLabel()
Dim co As ChartObject
Dim p As Point
Dim txtLabel As String
For Each co In ActiveSheet.ChartObjects
For Each p In co.Chart.SeriesCollection(1).Points
p.HasDataLabel = True
p.DataLabel.Text = ""
p.ApplyDataLabels (xlDataLabelsShowValue)
txtLabel = p.DataLabel.Text & " ("
p.ApplyDataLabels (xlDataLabelsShowPercent)
txtLabel = txtLabel & p.DataLabel.Text & ")"
p.DataLabel.Text = txtLabel
Next
Next
End Sub
#なんかカコワルイ気がしてしゃないが
#もっとスマートな解法キボンヌヽ(´ー`)ノ
943 :
名無しさん@そうだ選挙にいこう :02/04/02 14:27
他のブックとのリンクを解除するには どうしたらよいのでしょうか。 開くたびに注意されて困っています。
944 :
PCインスト :02/04/02 15:09
>>922 条件付書式で出来ない?
=COUNTA($A1:A1)=1
なら赤
=COUNTA($A1:A1)=2
なら青
あとは複写
945 :
名無しさん@そうだ選挙にいこう :02/04/02 17:59
>941 >942 えとね、エクセル2002タンなら値と%同時に表示なんて 設定かえるだけでできるよ。2002タン買っちゃえ(にこり
946 :
サポーロ :02/04/03 00:55
947 :
サポーロ :02/04/03 01:09
(続き) VBAのことはまったくわからなかったんですが、とりあえず urlリンク先にあったプログラムリストのようなものを、 シート見出し右クリック→「コードの表示」で出てきた謎のウィンドウに コピペして試してみました。 するとどうだろう、B15に何らかの入力があったら隣のC15にタイムスタンプが! うまくいくじゃありませんか。やった! しかし、この方法だと、同じことを他の列では実現できないのでした。 VBAも何もわからん自分の能力では手も足も出ないのでありました。 そこで、賢者のみなさまにお聞きしたいのです。 オレの電波な文章で伝わるかどうか怪しいのですが、もしよいお知恵が ありましたら、伝授願います。 ※使用エキセルは、2002であります
>944 >922じゃないが、922の質問がなぜそれで出来るのか、マジ解らん。 1列目の指定した文字を赤に、2列目の指定した文字を青にって 意味だと思ったんだが... そもそも922の質問も良く理解できんけどね。
>>947 Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Columns.Count = 1 And Target(1).Value <> "" Then
With Target.Offset(0, 1)
Application.EnableEvents = False
.Value = Date
.NumberFormatLocal = "ge.m.d"
Application.EnableEvents = True
End With
End If
End Sub
>>947 B4〜B60とH4〜H60を監視したいならこうかね。
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target(1).Value <> "" Then
If (Target.Column = 2) Or (Target.Column = 8) Then
If (Target.Row >= 4) And (Target.Row <= 60) Then
With Target.Offset(0, 1)
Application.EnableEvents = False
.Value = Date
.NumberFormatLocal = "ge.m.d"
Application.EnableEvents = True
End With
End If
End If
End If
End Sub
>>949 >>950 マジありがとうございます。なんという速レスか…!
きっと賢者のみなさまにとって造作もないことなのでしょうが、
オレにとっちゃまるで魔法です
(数時間試行錯誤したことがものの数分で解決してる)
申し訳ないのですが、もうひとつワガママをよろしいでしょうか。
B4〜B60
H12〜H80
M20〜M100
というふうに監視したい場合は、IF文をどのようにすれば
よろしいのでしょうか。もしよろしければ、ご回答を下さると
激しくありがたいです。
952 :
名無しさん@そうだ選挙にいこう :02/04/03 03:17
>>941 性別 人数
男 9
女 10
おかま 1
という表があったとして、円グラフの横に、
男9人45%
女10人50%
おかま1人5%
のように表示させたいということですか?
それなら、このスレで教わったのだけど、
間に一列挿入して、
B2には =A2&C2&"人" と入れて下にコピーして
性別 性別人数人 人数
男 男9人 9
女 女10人 10
おかま おかま1人 1
という表にしてから、B列とC列で円グラフを作ればよい。
>>951 950のコード3行目
If (Target.Column = 2) Or (Target.Column = 8) Then
これの Target.Column = 2 というのはB列を表す。又4行目
If (Target.Row >= 4) And (Target.Row <= 60) Then
これの Target.Row >= 4 というのが4行目以上ということ
でいうところの
B4〜B60
H12〜H80
M20〜M100
を、表現するには
If (Target.Column = 2) AND _
(Target.Row >= 4) Or (Target.Row <= 60) Then
If (Target.Column = 8) AND _
(Target.Row >= 12) Or (Target.Row <= 80) Then
If (Target.Column = 13) AND _
(Target.Row >= 20) Or (Target.Row <= 100) Then
とする。
IF文が1つ増えているから End If を追加するのを忘れないこと。
すまん、上の Or は And に変えてくれ
>>953 それ全部ネストすると条件に一致するセルが無いような...
>>951 判定部分を外に追い出してみる。
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target(1).Value <> "" Then
If isIn(Target, 2, 4, 60) Or _
isIn(Target, 8, 12, 80) Or _
isIn(Target, 13, 20, 100) Then
With Target.Offset(0, 1)
Application.EnableEvents = False
.Value = Date
.NumberFormatLocal = "ge.m.d"
Application.EnableEvents = True
End With
End If
End If
End Sub
Private Function isIn(ByRef rng As Range, _
ByVal col As Long, _
ByVal rowmin As Long, _
ByVal rowmax As Long) As Boolean
Dim boolRtn As Boolean
boolRtn = False
With rng
If .Column = col Then
If (.Row >= rowmin) And (.Row <= rowmax) Then
boolRtn = True
End If
End If
End With
isIn = boolRtn
End Function
956 :
名無しさん@そうだ選挙にいこう :02/04/03 13:14
>955 Intersctを使うと特定のセルかどうかの判定がらくちんだよ(にこり。 Set nyanko = Range("B4:B60,H12:H80,M20:M100") If Application.Intersect(nyanko, Target) Is Nothing Then Exit Sub Target.Offset(, 1) = Format(Now(), "m月d日h時mm分だよお!")
957 :
名無しさん@そうだ選挙にいこう :02/04/03 15:02
958 :
PCインスト :02/04/03 15:26
>>948 ん?おいらはセルの左に一個もなければ赤文字で、
一個あれば青文字と解釈したんだけど違うの?
ちがってたらゴメソ
959 :
名無しさん@そうだ選挙にいこう :02/04/03 18:02
>>662 さん、
お返事が遅くなり、すみませんでした。
できました。ありがとうございました。
おお、そんな便利なメソッドがヽ(´▽`)ノ。 Rangeオブジェクトのメソッドで使えるのがないか、一所懸命探してますた。
バイトの超過時間をExcelに入力して合計を出したいのですが、 時間型のセルを 1:00 3:00 2:00 ・ ・ と入力していって、最後の行に合計の式を入れると、多分24時間 越えているからだと思うんですけど、 3:40 などと表示されてしまいます(27:40と予想)。これを回避する術はないのでしょうか。
962 :
戦う宮崎民 :02/04/03 21:29
すんません、sageちゃった。
963 :
名無しさん@そうだ選挙にいこう :02/04/03 21:34
>961 セルの書式設定を[h]:mmにすれば24時間こえても大丈夫だよ(にこり。
>963サン グッド。出来ました。ありがとー。 関係ないけど塾行ってきます。デハ。
965 :
名無しさん@そうだ選挙にいこう :02/04/03 22:45
セルに入力するデータをコンボボックスなどで選択して入力する方法はないでしょうか? 禁則処理じゃなくてマウスのクリックだけでデータが入るようにしたいのです。
>>965 表示→ツールバー→フォーム→コンボボックス。
あとはVBAなりでなんとか。
>965 入力規則で入力値の種類をリストにし、元データに カンマで区切って入れるか、リストのセル範囲を指定 a,b,c
968 :
名無しさん@そうだ選挙にいこう :02/04/04 00:28
皆さんどもです。
>>967 この方法で入力した値を他のセルにコピー出来ないでしょうか?
具体的にはA1とB1にリストを作りデータを選択した後、すぐ下に新しい行を挿入し
A1とB1で入力したデータをコピーしたいのです。
常に一番後で入力したデータをA2に置いて下に行くほど古いデータになるようにしたいのです。
こんなことは出来ないでしょうか?
>>966 VBAは使えないので勉強してからチャレンジします。
969 :
名無しさん@そうだ選挙にいこう :02/04/04 00:59
複数のセルの文字の最初にある同じ文字を挿入したいんですけど、 まとめて出来る方法はありますか? 具体的には「!」という文字をセルA1からA100の各セル の頭に挿入したいんですけど。 例: !abcd !efgh !ijkl !mnop
970 :
名無しさん@そうだ選挙にいこう :02/04/04 03:13
>>969 B1に
="!"&A1
と入力してB100までコピー
>>969 B以下にはもともと英字が入ってるんじゃなくて?
俺はそう読んだけど。
VBA使えば簡単ですけど。
972 :
名無しさん@そうだ選挙にいこう :02/04/04 13:16
質問です。 Excel2000で同一シート上で同じ関数を使ったセル群をコピーして使用してます。 行数の少ないうちは大丈夫なのですが、530行ぐらいで下のバーに再計算と表示され消えなくなります。 そうなると何も変更を加えなくとも閉じる時に保存のチェックが入ります。 処理速度に関しては計算方法を手動にすることで解決できたのですが、何故再計算と表示されるのか?その原因が知りたいです。 宜しくお願いします。
>>972 適当だけど、
ツール>オプション>計算方法タブの計算方法で
「手動」で「保存前に再計算」にチェックが入ってるとか?
974 :
名無しさん@そうだ選挙にいこう :02/04/04 14:43
975 :
名無しさん@そうだ選挙にいこう :02/04/04 21:27
質問です。 月々の当番表をエクセルで作りたいのですが、メンバーが約10人、 しかも希望の日がバラバラです。 セルに一々名前を入れていく面倒を簡略化したいと思ってます。 例えば、 1:鈴木 2:佐藤 3:小林・・・ というように番号に名前を割り当てて、「2」を入力すると「佐藤」と 出てくるようなやり方はあるでしょうか? 名前リストと当番表のシートが分かれても良いです。(当然分かれるんでしょうかね?) 経験豊富な方々、ご助言宜しくお願いします。
>975 A1 に 1 B1 に =VLOOKUP(A1,G1:H1,2,0) G1:G3に数字、H1:H3に名前 G H 1 鈴木 2 佐藤 3 小林 意味はヘルプを嫁。
>976 B1 に =VLOOKUP(A1,G1:H3,2,0) の間違いだな。
>>932 >>934 お返事遅くなってしまいました・・・。
変数を使って、Likeを使用すればよかったのですね。
ActiveCell.value = "チョコ*"みたいにしてました。
おかげでうまくいきました!ありがとうございました。
山田屋 中西屋 1リンゴ 450 650 2ブドウ 750 610 3ミカン 850 260 4スモモ 300 220 商品の配列は同じだが価格の違う店が二件あります。 リンゴからスモモまでをコンボボックスに入れ客に選択させたい。 (山田屋か中西屋かはチェックボックスで事前に聞いておくことにします) もし山田屋をチェックして、コンボからミカンを選んだら、850円 もし中西屋をチェックして、コンボからミカンを選んだら、260円 こういう風にするにはどうしたらいいですか?
980 :
名無しさん@そうだ嫁にいこう :02/04/05 08:15
>979 VLOOKUP関数は知ってる?そしたらね、りんごって書いてあるセルが A2だとするとね、山田屋さんのお値段は 「=VLOOKUP(判定セルの番地,A1:C5,2(2列目の2),FALSE)」だよね? それで中西屋さんは3列目じゃない?問題は「2列目か3列目かを可変 にすれば解決」って事になるよね。だからチェックボックスをセルに リンクさせると「0か1か」が表示されるでしょ。そしたらそれを足して あげる式にすればよいよね。 「=VLOOKUP(判定セルの番地,A1:C5,2 + チェックボックスのリンクせる番地,FALSE)」 これでもんだいのこたえになってるかなあ(にこり
>>975 (;´д`).。oO( オフコンかよ! )
記念age
>>980 ありがとう。できました。
一昨日エクセルを始めたばかりですが、このスレは本当に役に立ちます。
984 :
名無しさん@そうだ選挙にいこう :02/04/05 16:57
毎日売り上げ日報に金額を入力するのですが、 毎日その日の金額を同じセルに入れるだけで その月の累計金額が出るようにできますか?? 例えば 4/1 100,000 (A1) 4/2 200,000 だとすると、4月の累計金額は300,000 (B1) A1に毎日数字を入れるとB1の累計金額が更新される という感じなのですが・・・ ちなみに一日ごとに別名で保存します。
>>984 (;´д`).。oO( .mdb ファイルにテーブルとクエリーを作っておく )
っていうのが定説なんだろうけど…
>>984 B1に=SUM(A1:A31)を入れておけばいいんじゃないの?
こんな簡単な話じゃないのか?
外してる?
>>984 やりたいことは、
1.当日の売り上げをA1セルに入力すると、B1に当月の当日までの
累計を表示したい。
2.1日ごとに1つのBookとして名前を変えて保存している。
ということか?
ぱっと思いつく方法としてだが...、
「1日ごとに1Book保存」を、「1か月分で1Book保存でかつ
1〜31日分のSheetを用意する」というふうに変更して、
B1に=SUM(Sheet1!A1+Sheet2!A1+....Sheet31!A1)
とか。
必ず、1日ごとにBookを分けるなら、VBAでやるぐらいしか
思いつかんなぁ。
988 :
名無しさん@そうだ選挙にいこう :02/04/05 23:59
新規ワークシートに、データを入れてプレビューしようとすると 印刷枚数が 0 になっている為、 数値は1から32767の範囲でなければなりません。 この数値の範囲で入力し直し、もう一度おこなってください。 とエラー表示されます。 なので、 ファイル → 印刷 → 部数1入力 → プレビュー でプレビュー画面を出すんですが、毎回面倒くさいです。 印刷部数の設定する方法を誰か教えてください。
989 :
名無しさん@そうだ選挙にいこう :02/04/06 07:19
インターネットで通販サイトしています。 そこで受注管理について下記のことを質問させて頂きます。 1)エクセルでサーバーからメールを取得するにはどうすればいいのですか? 2)入金確認や発送確認のメールを一斉配信したいのですが、その場合どうしたらよいのですか? (基本的な署名設定や定型文も含む) ※エクセルやアクセスの受注管理ソフトを使ってみたのですが、どれも帯に短し襷に流し、です。 よろしければお教えください。 その他、便利な機能があればお教えください。 受注ソフトが完成しましたら、領収証を発行してくださる方に限り、50000円を目処に謝礼をお支払い致します。 (複数の方の場合は、その金額内で配当) メールアドレスはいきなり会社のはあれですので、レスが着いて、まずはプロバイダーのを晒します。 そして、最終的に教えて頂いて、受注ソフトが完成した時に、メールをお送りします。 なお、謝礼支払い時の為、連絡先として暫定的にフリーのメアドでも構いませんが、トリップは最初からつけてください。
メールと一緒に取得したい主な項目(商品名や金額等)は追って説明します。 なお、すでに顧客名簿はエクセルで簡単ですが作成済みです。 要するに、そこへ注文書をメールで取得し、売上履歴やは発送確認・履歴等を管理したいのです。 もう、注文数が増えると、手動コピペはしんどくて。。。
991 :
名無しさん@そうだ選挙にいこう :02/04/06 08:50
991
992
993
994
995
996
997
998
999
1000 :
1000 :02/04/06 09:28
age
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。