Excelに関する質問は、ここで!
/)_/) ( ・分かる人はできるだけ回答して下さいませ。
< ゚ _・゚> .。oO( ・回答がなくてもキレないで。催促は程々に。
ノ) / | ( ・自己解決したらその解決手段を他の人の参考の為に書いてね。
\(_,,,_,,,)
▼━ 質問のしかた ━━━━━━━━━━━━━━━━━━━━
★質問するときは環境や条件はきちんと書いてね。情報後出しはダメ。
★要望は具体例や図を使って明確かつ具体的に。
★質問前に
>>2-20 あたりの注意書きやQ&Aも読もう。
▼━質問テンプレ (出来れば使ってね) ━━━━━━━━━━━━
【1 OSの種類 .】 Windows**
【2 Excelのバージョン 】 Excel**
【3 VBAが使えるか .】 はい・いいえ
【4 VBAでの回答の可否】 可・否
※4は、VBAはわからないけどコード書いてくれるならVBAでもいいって場合は「可」
VBAを使うのは避けたいって場合は「否」にしましょう。
「VBAって何?」って場合はとりあえず「否」に。よくわからないけど使ってみたいってなら
「可」にして、
>>10-15 あたりの解説を参考に使ってみよう。
・前スレ
Excel総合相談所 35
http://pc8.2ch.net/test/read.cgi/bsoft/1119886079/
= FAQ: 基本 =
Q:こんな関数ありませんか?
A:「関数の挿入」にある検索機能や、ヘルプの検索を利用しましょう。
Q:数式がエラーを返すんですけど
A:関数をネストせず、数式を分解してみてください。
どの関数がエラーになっているのか解れば、その関数の参照先や、
ヘルプなどを見て大抵は簡単に解決できます。
Q:計算結果やセルの値によって自動で書式を変更したいんですが
A:条件付き書式を利用してください。
数値比較で文字色のみの指定なら表示形式でもできます。
Q:計算結果やセルの値によって表示形式を変えたいのですが
A:表示形式のユーザー設定で複数条件の表示形式を指定できます。
基本形式は「正の数;負の数;0の場合;文字の場合」です。(;は半角で)
又は「[>=70]70以上の場合;[>=50]50以上の場合;50未満の場合;文字の場合」というような指定も出来ます。
書式記号などに関することはヘルプを参照しましょう。
Q:計算結果が自動で更新されなくなったんですが、どうすれば直せますか
A:Excel(2002?)の不都合で、計算方法が手動になってしまうことがあるようです。
ツール > オプション > 計算方法
で、計算方法を自動にすることで元にもどります。
参考URL:
ttp://support.microsoft.com/default.aspx?scid=kb;ja;817716
= FAQ: 列の表示について = Q:列名がA,B,C,D,Eではなく、1,2,3,4,5になってしまいました。 アルファベットに戻すにはどうしたらいいですか? A:ツールメニュー:「オプション」 -「全般」タグで 『R1C1 参照形式を使用する(C)』のチェックを外せば直ります。 Q:列を256個(IV列)よりたくさん広げることはできませんか? A:エクセルのシートは65536行×256列が仕様上の上限です。 シートを分けるとか、行と列を入れ替えるとか、データの方をまとめるとか、 列数を増やさない方向で工夫するしかありません。 Q:ひとつのブックにシートは何枚作成出来ますか? A:物理メモリ容量やシートの内容に依存します。 = FAQ: 印刷プレビュー = Q:印刷プレビューではセル内に収まっていた文字が 実際に印刷してみるとはみ出してしまうのですが、 何とかなりませんか? A:「印刷プレビューと印刷結果が一致しない」のは 昔からのExcelの弱点で、どうにもなりません。 セルの幅や高さに余裕を持たせるか、 書式設定で「縮小して全体を表示する」にチェックを入れましょう。 = FAQ: マクロの”削除” = Q:マクロを削除したのに、ファイルを開くたびにセキュリティの確認が出ます。 A:モジュールの解放が必要。 【モジュールの解放方法】Alt+F11→Ctrl+R→Module1を右クリック→解放
= FAQ: 条件によって表示を変更するには? = Q:セルの内容を判断して、表示を変えたい A: IF関数を使います。 =if(条件,条件が成立した場合,成立しなかった場合) 例1:基本 セルA1が1の場合○、それ以外の場合×を表示 =IF(A1=1,"○","×") 例2:if文の中にif文 A1が、1の場合○、2の場合△、それ以外×。 =IF(A1=1,"○",IF(A1=2,"△","×")) 例3:ANDやOR活用 A1が、4〜6の場合は、普通と表示 =IF(AND(A1>3,A1<7),"普通","少ないか多い") 例4:計算も出来る A1が10までなら、A1を10倍して表示、それ以外なら2を引く。 =IF(A1<11,A1*10,A1-2) 例5:対象が空欄なら表示も空欄にする A1が空欄なら結果は何も表示しない、それ以外ならA1から2を引く。 =IF(A1="","",A1-2) =IF(ISBLANK(A1),"",A1-2) 詳しくはヘルプを参照しましょう。
= FAQ: グラフについて = Q1:データの空白部分があって、そこで折れ線が切れてしまいます。 繋げたいのですが如何したらいいでしょうか? A1:グラフを選択>ツール>オプション>グラフ>空白セルのプロット「補間してプロットする」にチェック Q2:棒グラフに重ねて、折れ線グラフを表示するにはどうしたらいいのでしょうか? A2:最初、すべてのデータを棒グラフで作成。 次に、折れ線で表わしたいデータ系列のどこかを、グラフ上で右クリック サブメニュー>グラフの種類>折れ線>OK Q3:ある系列だけ、縦軸を別にしたいです。 A3:その系列のどこかを、グラフ上で右クリック データ系列の書式設定>軸>使用する軸「第2軸」にチェック>OK = FAQ: 入力した値が変わる? = Q:セルに入力した値が勝手に変わってしまうのですが 入力したままの形で表示させるにはどうしたらいいですか? A:数字でよくあるケース(先頭のゼロが消えてしまう、日付として解釈されてしまう) 入力する時、先頭にアポストロフィ(')をつけるか、 該当するセルで右クリック−「セルの書式設定」−「表示形式」で「文字列」を選択。 文字列ではなく数値として扱いたいときは 「セルの書式設定」−「表示形式」で「ユーザー定義」を選択し、工夫する。 A:文字でよくあるケース(i⇒I、teh⇒the、cna→can など) ツール→オートコレクト→入力中にオートコレクト の該当する箇所を削除。
= FAQ: 行列の入れ替え = Q:エクセルで作った表が横方向に多くなってきたので 行と列を入れ替えたいのですが。 A:コピーして、適当なセルで右クリック。 形式を選択して貼り付け→行列を入れ替える。 = FAQ: 参照するセルをセルの値で指定する = Q:A1に「5」とか「6」とか指定する値を変えたら B1の関数で「C5」とか「C6」とか参照先が変わるようにできませんか? A:INDIRECT関数を使ってみましょう。 詳しくはヘルプで「INDIRECT」を検索 = FAQ: ブラウザの変更 = Q:Excelでアドレスをクリックした時に開くブラウザをIEからSleipnirなどに変更したい。 A:スレ違いです。 開きたいブラウザの設定画面でそのブラウザを通常使うブラウザに指定してください。 (ブラウザからの設定だけではきちんと設定出来ない場合もあります) = FAQ: セル内での改行 = Q:セル内で改行したいんですがどうすればいいでしょうか A:改行したい位置でAltを押しながらEnterを押せばセル内改行できます。
= FAQ:時刻の入力 = Q:時刻をテンキーで入力するとき:を入力するのが面倒なのですが、 なにか良い方法はありませんか? A:「 ..」や「.」を「:」に置き換える方法をお試しください 1) オートコレクトで..を:に置き換える →自動で置換されるので手間は少ないが..を使う他の入力にも影響する 2) 「時..分」で入力しておいて、後から「編集 > 置換」で範囲指定で一括置換する →置換に一手間掛かるが、他への影響は無い (「時.分」だと分の1桁目が0の場合狂ってしまう) 3) VBAのWorksheet_Changeイベントで置換する →置換する範囲を指定すれば他への影響もなく置換も自動、入力も.ひとつでOK 参考コード(入力は「時.分」) Private Sub Worksheet_Change(ByVal Target As Range) Dim buf As Variant Application.EnableEvents = False buf = Split(Target.Value, ".") Target.Value = buf(0) & ":" & Left(buf(1) & "0", 2) Application.EnableEvents = True End Sub = FAQ:シート名やブック名の書きだし = Q:シート名(ブック名)をセルに書き出したいのですが、どうすればよいですか? A:シート名 =MID(CELL("filename",A1),FIND("]",CELL("filename",A1))+1,31) ブック名 =MID(CELL("filename",A1),FIND("[",CELL("filename",A1))+1,FIND("]",CELL("filename",A1))-FIND("[",CELL("filename",A1))-1)
★VBAでの回答をもらったり、Webからサンプルコードを拾ったけど、 使い方がわからないって場合はここを参考に。 Step1 VisualBasicEditorの起動 メニューより、[ツール → マクロ → VisualBasicEditor]と辿ってください。 Step2-a コードを貼る マクロはその内容によって、置く場所が決まっています。 大抵は回答者が指定してくれたり、サンプルの中にコメントとして書いてあったりするのでそれに従いましょう。 指定がない物は基本的に「Private Sub Worksheet_」で始まる物はシートオブジェクトに、 「Private Sub Workbook_」で始まる物はブックオブジェクトに、それ以外は基本的に標準モジュールに置いてください。 (ツリーの該当部分をダブルクリックして、表示されたコードウィンドウにコードを張り付けます) ├VBAProject (hoge.xls) ←括弧内がブック名、以下がひとつのプロジェクトになります |├Microsoft Excel Object ||├Sheet1 (Sheet1) ←シートオブジェクト(左側がオブジェクト名で、右側の括弧内がシート名です) ||├Sheet2 (Sheet2) ||└ThisWorkbook ←ブックオブジェクト |└標準モジュール | └Module1 ←標準モジュール(※) └VBAProject (Personal.xls) ←個人用マクロブック ├Microsoft Excel Object |├Sheet1 (Sheet1) |└ThisWorkbook ←個人用マクロブックのブックオブジェクト └標準モジュール └Module1 ←個人用マクロブックの標準モジュール ※ 標準モジュールを追加するには、追加したいプロジェクトツリー上で右クリックし、 メニューから[挿入 → 標準モジュール]を選択してください。
Step2-b ボタンに登録する。 通常、イベントで動かすマクロ以外は、マクロの一覧から選択して実行しますが、 頻繁に使う場合や、他の人が操作する場合はシート上のボタンを押して実行できるようにすると便利です。 まず、メニューから[表示 → ツールバー → フォーム]と辿ってフォームツールバーを出し、 ボタンアイコンを押して、適当な場所にボタンを作ります。 ボタンを作ると自動的に[マクロの登録]というダイアログが立ち上がるので、 (立ち上がらない場合はボタンを右クリックして[マクロの登録]を選択) [新規作成]を押して表示されたコードウィンドウのカーソル位置にコードを張り付けます。 既存のマクロを登録する場合は、[マクロの登録]で一覧から選択して、[OK]を押してください。 Step3 マクロの実行 ボタンに登録したものは、ボタンを押せば実行されます。 イベントで動かすものは、所定操作をした時に自動で実行されます。 それ以外はメニューから[ツール → マクロ → マクロ]と辿って表示されたマクロの一覧から選択して実行します。 Step4 トラブルが起きたら トラブルを自己解決出来ない場合は、 ・エラーが出る条件 (どうやってもエラーが出る、〜をしたときにエラーが出る、等) ・エラーメッセージ (ダイアログ上でCtrl+Cを押せばメッセージをコピー出来ます) ・エラーが出る位置 (エラーダイアログ上で[デバッグ]を選択すると、エラー位置がハイライトされます) などを報告しましょう。 また、期待通りの動作をしない場合も、条件や想定上の結果と実際の結果の内容など詳しく書きましょう。
★ Excelで出来ないこと、仕様上の制限 (括弧内は代用法) ▼環境・書式 ・ 列数を256列以上、行数を65536行以上に増やす ・ 条件付き書式を3つ以上設定する (文字色だけなら、入力規則でも3つ設定可能。それ以外はVBA) ・ 行の高さを0.25きざみ以下の単位で指定する ・ 複数シートを選択して入力規則やシートの保護を設定する (VBA) ・ セル内の文字を○で囲む、一部のみ2段にする (オートシェイプ、オブジェクト) ▼数式・関数 ・ セルの書式情報を関数式で取得する (ユーザー定義関数) ・ 関数式でセルの選択状態を取得する (VBA) ・ セルの値でパスを補完して、開いてないブックのセルを参照する (VBA) ・ 入力したセルの値を書き換える (VBA) ・ 範囲を引数にしての文字列連結 (ユーザー定義関数) ▼VBA ・ExecuteExcel4Macroの参照で空セルと0値を区別する ・セルの値や変数値で直接変数名を指定する
終わり。 間違い、抜けがあったら指摘よろしく。
14 :
名無しさん@そうだ選挙にいこう :2005/07/18(月) 21:05:48
乙
15 :
座敷荒氏 :2005/07/18(月) 21:49:52
初めて質問させていただきます。 【1 OSの種類 .】 Windows2000 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 「スタート時刻」列と「ターン時刻」列・「休憩時刻」列・「ゴール時刻」列の3列に それぞれ時刻が入力されていて、さらに「判定」列が空欄になっています。 スタートした時刻からターン・休憩・ゴールしたした時刻が10分以下なら 判定に○、10分以上かかった場合は×が「判定」列に入力されるようにしたいのですが 方法がみつかりません。教えていただけますでしょうか? 可能であれば3列のうち、空白or「-」があっても 他の列の値で判定するようにしたいのですが; よろしくおねがいします。
>>15 とりあえず表を書いてみようぜ。
A B C D E
1スタート時刻 ターン時刻 休憩時刻 ゴール時刻 判定
2
ってことでいいのかな?
と、ここで一つ疑問なんだけど、休憩は時刻じゃなくて時間じゃないの?
時刻なら休憩開始と休憩終了が必要なはずだよね。
で、スタートからゴールまでの時間-休憩時間=10分以下か否かを判定したいなら
その式を条件にして
>>6 を参考にIF関数使えばいいだけの話だけど。
それともスタートからターンまで、ターンから休憩開始まで、とそれぞれが10分以下だったら○にしたいのかな?
どちらにしても
>>15 の情報だけだと、「IF関数使って」くらいしか言えることは無いかな。
17 :
座敷荒氏 :2005/07/18(月) 22:30:34
お返事ありがとうございます。 やはりIF関数でできるんですね。 本を読んでいると一度減数した値入力させる列を 用意しなくてはいけないような書かれ方がされていて; 「休憩時刻」列には休憩に入った始まりの時間が入力されています。 16さんが書いて下さった表のE列には ・B-A<=0:10且つC-A<=0:10且つD-A<=0:10であれば○、違ったら×を入れたい。 ・可能であれば、BCD列のどれかが「-」や「不明」でも残りの列の時刻で判定したい。 ということでした。 ならスタートからゴールまでの時間が10分以下なら○でいいんじゃないかとも 思ったんですけど、それじゃあダメな場合も考えられるとの事で・・・; 今日のお昼から考えてて才能ないなと(/_<。)
テンプレの項目、勝手にいじりやがって。
余計に鬱陶しくなったし、検索キーワードは質問者の知りたいことを推察する手がかりになることもあるんだがな。
でも、
>>1 乙カレー。
>>17 =IF(AND(
IF(NOT(ISNUMBER(B1)),TRUE,B1-A1<=TIME(0,10,0)),
IF(NOT(ISNUMBER(C1)),TRUE,C1-A1<=TIME(0,10,0)),
IF(NOT(ISNUMBER(D1)),TRUE,D1-A1<=TIME(0,10,0))),
"○","×")
Bが数値(時刻)以外 or B-A<=0:10 且つ
Cが数値(時刻)以外 or C-A<=0:10 且つ
Dが数値(時刻)以外 or D-A<=0:10
なら○、どれかが当てはまらなければ×
条件そのまま書くとこんなもんか。でも
=IF(MAX(B1:D1)-A1<=TIME(0,10,0),"○","×")
でいいような気がする。MAX関数は空セルや文字は無視するから
B〜Dで一番大きな時刻-Aの時刻<=0:10なら○
>>18 ゴメン。本スレで意見聞こうかとも思ったけど
そういうふいんきじゃなかったので独断で突っ走ってしまった。
今は反省してる。
20 :
座敷荒氏 :2005/07/18(月) 23:02:21
うわ、IF関数について調べてる間にお答えを頂けてしまった。 19さん、どうもありがとうございます。 頂いたお答えと16さんのヒントで自分なりに 勉強して使わせていただきます。 いま試していて、ターン時刻だけのIF関数はできたところでした♪ ただ、自分の中に消化しないと意味ないと思うので参考にさせていただきます。 16さん、19さん、それから教えてくれようとした方々、 どうもありがとうございました。
21 :
名無しさん@そうだ選挙にいこう :2005/07/18(月) 23:14:10
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2002 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 グラフを書いて普通は系列1とか系列2となるところに、その線に対応する名前を入れたのですが そこで、その名前に斜体と普通のフォントを混ぜたいのですが、フォント変更を一部にかけることができません。 例えば AAA(←まで普通のフォント)BBB(ここは斜体)みたいな感じで。 どうしたら直りますか?
グラフの機能としては無理だろうから、 そういうオブジェクトを作ってグラフの上に貼れば?
23 :
名無しさん@そうだ選挙にいこう :2005/07/19(火) 00:00:53
Private Sub Workbook_BeforeSave _ (ByVal SaveAsUI As Boolean, Cancel As Boolean) Cancel = True End Sub WinXPエクセル2003(実際に運用するのはWin2000エクセル2000) ワークブックに上書き保存できないように上記のマクロを Thisworkbookに記録したんですが、マクロを入力した時点で 上書き保存できなくなってしまうために、マクロそのものが 保存されません。 良い方法は無いでしょうか?
うーん、興味深い質問だ w
25 :
23 :2005/07/19(火) 00:06:56
>>24 要するに、あらかじめ作成されたワークシート上にデータを入力して
いくんですが、そのシートに上書き保存させないようにしたいんです。
(入力されたデータは、すぐに紙に印刷するので保存しなくて良い)
それさえできるのならば23の方法でなくてもいいんですが。
マクロを無効にして開いて、それを保存した後で開きなおせばいいんじゃね?
>>26 それができたら書き換えができてしまうわけだな、、、
29 :
23 :2005/07/19(火) 00:13:21
>>26 26のやり方でやってみたところ、なんとかうまくいったみたいです。
みなさん、お騒がせしました。
Application.EnableEvents = False を実行してから上書きしてもいいな。 逆に言えばマクロで上書き禁止にしてる以上、 イベントを止めるか、マクロを無効にするかしたら上書き出来ちゃうんだけど。
単純に ファイル属性を「読み取り専用」にすればいいんじゃね?
WindowsXPでのExcelについての質問です。 ひとつのセル内に文章と関数を同時に書くことは可能でしょうか? 可能であればお教え頂きたいです。 何か文字を打つと=から始まる関数が関数として認識されなくなってしまうのです。 隣のセルに書けばいいって話なんですが多分できるだろうと思って書き込みました。 よろしくお願いします。
>>32 こういうことか?
A B C
1 10 20 ="A1とB1の合計は "&A1+B1&" です。"
これだとC1は「A1とB1の合計は 30 です。」になる。
34 :
23 :2005/07/19(火) 19:47:15
>>31 その方法で試してみたんですが、上書き保存しようとすると
いちいちダイアログボックスが開くので使いづらくなります。
>>26 の方法で行くつもりです。
複数のブックを開いている状態などでの動作確認をしてからですが。
35 :
名無しさん@そうだ選挙にいこう :2005/07/19(火) 22:51:29
IF関数で質問します。 ある計算式の答えが整数の場合はA、それ以外(少数)に なったらB、と返すにはそのように書けばいいのでしょうか? 整数を指す記述と少数を指す記述がどうにもわかりません。 いろいろと調べてみたのですが・・・。
>>35 数式の答えがA1に入っているとすると
=IF(MOD(A1,1)=0,A,B)
INT(A1)=A1 TRUNC(A1)=A1 なんてのもあるな。 ただ、A,BってのがAパターン、Bパターンってことならそれでいいが、 A,Bという文字を返すなら ,"A","B") ね。
お前ら「セル番号」は分かったのか?
39 :
35 :2005/07/19(火) 23:24:58
36,37さん どうもありがとうございました。 仕事で必要だったので助かりました。 早速明日試してみます。
前スレの843ですが、私の説明+知識不足で申し訳ないです。 要するに A1 B1 C1 D1 E1 A2 B2 C2 D2 E2 A3 B3 C3 D3 E3 A4 B4 C4 D4 E4 を A1 B1 C1 D1 E1 A2 B2 C2 D2 E2 A3 B3 C3 D3 E3 A4 B4 C4 D4 E4 A5 B5 C5 D5 E5 A6 B& C6 D6 E6 にしたかったのです。ただ、返事がないと思って自力で 全て空白を挿入しました。どうもすいません。
>>33 おおおおお!出来ました!!
どうもありがとうございます!!!!
="文章"&数式&"文章"
にすればいいみたいですね、ホントにどうも有り難うございました。
>>40 お前オタクの割にはそんなことも知らんのか。
43 :
n0wio :2005/07/20(水) 10:55:17
How to Excelの本でおすすめをオシエテ。スレ違いか!?
45 :
n0wio :2005/07/20(水) 11:55:23
↑ありがとぉm(_ _)m
46 :
名無しさん@そうだ選挙にいこう :2005/07/20(水) 14:51:55
【1 OSの種類 .】 WindowsXP PRO SP2 【2 Excelのバージョン 】 Excel2003 ローカルネットワーク上で共有しています。 ファイルを保存するとファイル名1 (Administrator v1) というファイルが出来るのですが、これはなんなのでしょうか?
47 :
名無しさん@そうだ選挙にいこう :2005/07/20(水) 17:27:03
どこを調べても見つけられなかったので質問します。 複数のシート間で同じ書式で表を作っているのですが、複数のシート間の同じセル にある数値の合計を出したいと考えています。ただ、既存の複数シートの合計を出すのは 出来るのですが、VBを使いボタンを押すと日付欄に入力した日付がそのままシート名になり、 コピーされる様に作った為、事前にシート名を計算にいれられないのです。シート名に関係 なく、すべてのシートの同座標のセルの合計を取るにはどうしたらいいでしょうか? バージョンはエクセル2003です。よろしくお願いします(`・ω・´)
>>47 Worksheets.Countでシート数を調べて、
Worksheets(i).Range("hoge").ValueをForでまわして加算。
対象が全シートなら、いちいちCount取らなくても、 Worksheetsコレクションに対してループ回せば済む話。
XPでExcel(バージョン分かりません…)使ってます 特定のセルだけ入力不可能にさせる事は可能でしょうか? 私も初心者ですが使ってもらう人はもっと超初心者なもので、、、 関数で制御してる部分は弄って欲しくないので是非ともお願いします
>>50 セルのロックとシートの保護
使い方は「ロック 保護」とかでヘルプ探してみそ。
>>53 今時「みそ」って言わないと思ったので指摘してみました。
55 :
名無しさん@そうだ選挙にいこう :2005/07/20(水) 21:07:05
ちょっと教えてください。 a2〜a9まで、A B C D E F G と入ってます。 例えば、A B C D D E F と D D がダブってることを a1に調べる関数を入れたいんですが、何かありませんか?
「連続したら」なのか、「同じ文字が2つあったら」なのかで式が違うが、どっち?
がめつい乞食は貰いが少ない
59 :
名無しさん@そうだ選挙にいこう :2005/07/20(水) 23:14:03
>>56 さん
ちょっと席はずしていたもので、遅くなりました。
同じ文字です。 宜しくお願いいたします。
>>59 =SUM((COUNTIF(INDIRECT("A2:A9"),A2:A9)>1)*1)=0
配列数式なのでCtrl+Shift+Enterね。
重複が無ければTRUE、あればFALSE
>>51 有り難うございます。
ばっちりしっかり出来ました。すっきりしました。
どうも有り難うございました。
ずっと入力不可とか禁止とかで検索してて見つからなくて困ってました。
「ロック」ですよね、今思えば。恥ずかしい・・・(苦笑)
62 :
名無しさん@そうだ選挙にいこう :2005/07/21(木) 01:22:28
もしかして、Windowsの質問なのかもしれませんが。。 家じゃ、FEPにATOK使っていて、Excel上でShift+SPACEで「行選択」に なるのですが、会社でMS-IME環境だと、Shift+SPACEで「半角スペース」が 入力されてしまいます。 MS-IME環境でも、Excelのショートカットキー優先で、「行選択」させるには どこの設定を変えれば良いでしょうか? よろしくおながいします。
こっちではATOKでもMS-IMEでも IMEがONだとスペース入力、IMEがOFFだと行選択になる。 つーことはIMEの種類もExcelの設定も関係ないな。 これはExcelに限らずShiftを修飾子とするショートカットキーの一般的な仕様だね。
セルに半角英数で[myu]と入れてenterを押すと [u]が消えて[my]にどうしてもなってしまうのですが これは仕様なのでしょうか。
>>64 仕様といえば仕様です(初期設定)
ツール>オートコレクトのオプションで、
「入力中に自動修正する」のチェックを外すか、または
その下にある一覧から myu → my の項を削除する
と直ります。
>>62 ATOKの12だけど、ONでもOFFでも行選択出来てるから、
ATOKのせいかもしれないですね。
最近のATOKってShift+Spaceで、全角スペースと半角スペースを、
現在の入力モードとは入れ替えて入力できるんじゃなかったっけ?
その影響かもしれないね
>>65 オートコレクト機能の仕業だとは知りませんでした。
ありがとうございました。
68 :
名無しさん@そうだ選挙にいこう :2005/07/21(木) 15:17:43
Excel2000です 例えばBook1のsheet1 a1=あいうえお sheet2のa1には =sheet1!a1 Book2のsheet1 a1=かきくけこ と入力されているとして、 Book1のsheet2をBook2にコピーした際に a1にかきくけこ と入力されるにはどうしたらよいでしょうか。 そのままコピーすると式の値が =[Book1]sheet1!a1 となり、上手くいきません。 よろしくお願いします。
69 :
66 :2005/07/21(木) 15:20:13
すみません、MS-IMEのことでしたね。 見当違いなレスしてました、首吊ってきます。
エクセル2000って XPに対応していますか? XP入れてエクセルインストールしようとしたら、エラー 1933と出てしまいました。
> Microsoft Windows R 95(Internet Explorer 4.01 Service Pack 1 以上が必要。 > Internet Explorer 5.01 以上を推奨)または Microsoft Windows 98 以上(Internet Explorer 5.01 以上を推奨)または > Microsoft Windows NT R Workstation 4.0 Service Pack 3 以上(Internet Explorer 4.01 Service Pack 1 以上が必要。 > Internet Explorer 5.01 以上を推奨) > または > Microsoft Windows 2000 Professional 以上 > *Internet Explorer 5.01 は、本製品に収録されています ということで、XPは「Microsoft Windows 2000 Professional 以上」に該当するので対応してるよ。 周りでもXPでExcel(Office)2000使ってる奴も結構いるし。 メーカーPCならメーカーに、それ以外ならMSに問い合わせてみれば?
72 :
名無しさん@そうだ選挙にいこう :2005/07/21(木) 22:12:36
>>60 さん
遅れましたが、ありがとうございました。
勉強になりました。
73 :
名無しさん@そうだ選挙にいこう :2005/07/21(木) 22:17:43
同じExcelファイルを、同じヴァージョンのExcelで印刷しようとすると 他のPCだと1枚で収まるのに、自分のPCだと2枚になってしまう。 自分のExcelの設定を1枚で納まる他のPCのようにするにはどうすればよいですか? つまり、他のPCと同じページ範囲で見たいのですが。 ただし、 ・[印刷プレビュー]→[設定]→[ページ]→[次のページ数に合わせて印刷] ・[印刷プレビュー]→[設定]→[余白]で調節 ・[印刷プレビュー]→[改ページプレビュー] といった。対象ファイルの設定を変えたいわけではありません。
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel97 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 1 2 3 4 … 1X Y Z N … (X Y Z Nはそれぞれバラバラな数値) 2X Y Z N … 3X Y Z N … 4X Y Z N … というシートをあらかじめ作っておき、となりに別のシートを作って、 ○ 1□ 2□ 3□ 4□ ○に1と入れると下の□にはXが、2と入れると□にYがそれぞれ表示される表を作りたいのですが どうすればいいのでしょうか? 2枚目のシートのBD以降のセルには=□*3とか入れて表を作りたいのですが。
75 :
名無しさん@そうだ選挙にいこう :2005/07/21(木) 22:31:20
age忘れました
>>74 VLOOKUP関数で出来る。
詳しくはヘルプ参照。
77 :
名無しさん@そうだ選挙にいこう :2005/07/21(木) 22:56:29
エクセルだと65000くらいまでしか、行が表示されないんですが、レジストリか何かいじったらこの数を変更できるのでしょうか?
>>76 VLOOKUPでなくてHLOOKUPの方が近いかと思いましたが
無事出来ました!ありがとうございました。
Excel2002を使用しています。 Sheet1のA1に関数を記入し、 A2の値とSheet2!A1:B500の値でVLOOKUPを使いたいのですが、 マッチングに使えるのが右3文字だけなので、 RIGHTを併用すればいいのかと思い、 =VLOOKUP(A2,RIGHT(\'Sheet2\'!A1:B500,3),2,FALSE) このように記述したのですがうまくいきません。 RIGHT関数に範囲指定が使えないのだと思うのですが、 どうすればいいのか・・・どうかお願いします。
その式一つだけだったら、ctrl + shift + enterで配列数式にすればいい。 下にも同じような式が入るのであれば右3文字を取り出した作業列を作って、INDEXとMATCHを使うことになる。
XP SP2で Office 2000のExcelを使っています。 ソニー銀行では取引履歴がCSV形式でダウンロードできるように なっているのですが、ダウンロードを実行するボタンには javascriptが設定されていて「対象をファイルに保存」ができません。 普通にクリックするとブラウザ内にExcelワークシートが表示されますが、 コピペ以外で保存する方法が分かりません…(^^; できれば、ブラウザでExcelファイルを開くとき、ブラウザ内ではなく Excelを起動してそこで開くようにしたいんですが、そういう設定は 可能でしょうか?
>>83 Excelではなく、Windowsのファイルタイプの設定で出来る。
ってことでスレ違いでした。
>>84 そうでしたか。
Adobe Readerだと環境設定で動作を変更できるので
同じようなものがあるのかと思いまして…。
すみませんが、どのように設定すればよいか
教えて頂けませんか?
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2000 関数がたくさん記入してあるワークシートを使用していて 行を足すため行コピーしコピーした行を挿入させていると 「再計算」の表示が出てしまいます。 ファイルを閉じても無くならず一度エクセルを終了させ もう一度立ち上げ直しています。 なぜ「再計算」の表示が出てしまうのか、色々見ましたが はっきりわからず、皆さんに伺いたいのですが、 ヨロシクお願いします。
>>86 そのたくさん入ってる関数が、挿入後、実際に再計算されて
いるから。
通常は計算量が少ないので「再表示」の表示が出ないだけ。
何度も出るのが嫌なら、ツール>オプション>計算方法で、
計算方法を「自動」から「手動」にしておく。
そうすれば、自分で「F9」キーを押して再計算させるまで、
データをいじってもその表示は出ない。
レスありがとうございます。 自動から手動へ変更し、行コピー挿入してみても 「再計算」は出てしまいます。F9押す前に 一般的に再計算が終われば消えますが、 このシートだけなぜそうなるのか? 他にもチェックした方が良さそうな所ありましたら ご指摘下さい。よろしくお願いします。
DateAdd関数のようなものはExcelにありますか?
>>89 Excelにって言われても、Excel_VBA関数のことか
Excel_Worksheet関数のことかわからないが、
VBAにはそのままDateAddという関数があるし
Worksheet関数でもいくつかを組み合わせることで、
VBAのDateAdd関数を同じようなことは出来る。あとは
>>3 の一番上。
>>88 すまん。2000ではその状態でも「再計算」の表示は出るみたいね。
本を調べてみたらこんなこと書いてあった。
>手動計算に切り替えた後で、ワークシートに対して再計算の
>要因となるような変更を加えると、ステータスバーには「再計算」
>と表示されます。ここで実際に再計算を行うには「F9」キー。
だからその応答で正しく動いてるってことだと思う。
手元の2002では出ないので勘違いした。申し訳ない。
92 :
83 :2005/07/22(金) 15:47:26
>>91 有り難うございます。本でも調べて頂いて。
>>86 です
ワークシートに対して再計算の要因となるような変更を
知らないうちに加えているのが原因。
行のコピーとコピーした行の挿入がその原因と
なっているようですね。
その後再計算表示は終わらず、エクセル本体を閉じるまで
表示され続けてしまうのです。
すいませんその本の題名教えて頂けますか。
よろしくお願いします。
94 :
91 :2005/07/22(金) 16:25:41
>>93 「Microsoft Excel2000オフィシャルマニュアル」
日経BPソフトプレス、4800円。
仕事場にたまたま合ったから見られたけど、
あまり個人で買うような本じゃないですよ。
1999年初版の古い本だし。
でもExcel2000の本なら似たようなコトは
書いてあるんじゃないかな。
>>92 だからスレ違いだって。
ファイルタイプの設定程度も自分で調べられないなら
PC初心者板でも逝って聞いてこい。
96 :
83 :2005/07/22(金) 19:03:07
セル番号って何ですか?
97:あぼーん [あぼーん] :あぼーん
>>99 あんた!「ぼうや」って呼ばれて異常反応した子だね
>100 ?
102 :
名無しさん@そうだ選挙にいこう :2005/07/23(土) 01:06:01
【1 OSの種類 .】 Windows** 【2 Excelのバージョン 】 Excel** 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 現在、他ソフトで作成した図面(地図)をWMFファイルにしてEXCELで作った出力用の雛形 に貼り付けています。 その図面上にシェイプを使って○を書いたり、赤線を引いたりしています。 作業していて、○のシェイプを移動させようとしてクリックして選択すると、間違って背景の図面が 選択された状態になり、意図しない図面が移動されてしまったりします。 間違って移動してしまった場合はアンドゥして元に戻りますが、何かと不便です。 他の作図ソフトでいうオブジェクトをロックする機能をEXCELでするにはどうすればいいでしょうか。 VBAでも構いませんのでよろしくお願いします。
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2002 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 あるファイルをテキストとして開いて 部分的に置換するマクロを作ろうとしています。 ただのテキスト置換なのですが秀丸などはだめと言うことで エクセル上でファイル数分連続処理させようとしています。 ところがこのファイルがうまく開けません。そのまま開くと字化けします。 一番先頭に<?xml version="1.0" encoding="utf-8" ?>とかかれています。 xmlとして開くとまったく違ったレイアウトでセルに配置されてしまいました。 別のマシンではxmlでは構文エラーで怒られました。 そのため、単純にテキストとして扱いたいのですが、UTF-8のファイルを字化けせず開き保存することができるでしょうか。 よろしくお願いします。
ポイントをセンチ表示にできませんかねぇ?
できません。 Excelではなく三四郎ならできますが。
B5ノートに合わせにくいけどがんばるしかないのか
がんばるしかない
【1 OSの種類 .】 WindowsNT(金のない職場なんで・・・) 【2 Excelのバージョン 】 Excel97 【3 VBAが使えるか .】 少し 【4 VBAでの回答の可否】 可 Excelファイルを開かずに保存オプションの 読み取りパスワード設定をすることは可能ですか? ダメなら一回ファイル開いて設定して保存しますが 可能かどうか、もし可能ならどんなコードかご教示ください。
109 :
名無しさん@そうだ選挙にいこう :2005/07/24(日) 01:03:00
お願いします。 全く別のExcelを複数開いた状態で、右上の×をクリックする形である1つのExcelを閉じると、開いている全てのExcelを閉じようとしてしまいます。これは設定を変える事ができるのでしょうか? よろしくお願いしますm(_ _)m
ExcelからODBC接続でDBからデータを取得する いいサンプルはないでしょうか。
>>108 不可能
VBA多少使えるなら、マクロの記録で
開く、パス設定、保存、閉じる
を取ればいいし、複数ファイルに一括してやりたいなら
Dir関数でフォルダ内の全てのファイルを順次処理することも出来るでしょ。
>>109 うちのはそうならないけど。@WinXPsp1a Excel2002sp3
複数のExcel立ち上げてる場合は一つを×ボタンで終了させても他はそのまま。
本当に複数起動させてるの?複数開いてるのはExcelではなくブックで、
Excel自体は一つしか立ち上げてないんじゃないの?
タスクマネージャでEXCEL.EXEが2個以上あるかどうかを確かめて、もう一度やってみな。
それでもダメなら、知らん。
>>113 どうしたの、ボウヤ?
誤爆?.....なら、いい子だから元スレに返ろうね
質問者?.....なら、いい子だから
>>2 にある通り名前に最初のレス番入れようね
>>114 常駐しすぎ。他にやることないんだろうな。
素敵な自演ですね
>>118 常駐しすぎ。他にやることないんだろうな。
>>118 どう読んだら自演に見えるのでしょうか。
夏ですね
>>122 常駐しすぎ。他にやることないんだろうな。
>>124 おー、ずっと俺一人で書いてたのに援軍が!!
>>126 常駐しすぎ。他にやることないんだろうな。
>>129 必死すぎw
そろそろ飽きてきたんだけど。
三連カキコやってた彼が一番必死だったということで終結しました。 みなさん、お疲れさまでした。 ↓以下、負け惜しみをお楽しみください。
【 Excelのバージョン 】 Excel2000 【 VBAでの回答の可否】 可 あるセルの数字が、元の値を保持したまま百万以上の部分だけ表示されるようにしたい。 縛り1:四捨五入不可。⇒書式設定「♯,,」は× 縛り2:間接表示不可。⇒ROUNDDOWN、INT、LEN+LEFT等関数× Web検索では(上記条件を踏まえると)「不可能」という回答しかありませんでした。 2chの皆様よろしくお願いします。
age!
>>133 表示形式で 「#Ctrl+J######」
書式設定で「折り返して全体を表示する」
これで
10000000
が
10
000000
と表示されるようになる。
あとは1段目だけ表示されるように行の高さを設定すればOK
>135 うお、目からウロコ!ありがとー
137 :
名無しさん@そうだ選挙にいこう :2005/07/24(日) 13:04:34
>>102 をお願いします。
シートの保護でオブジェクトをロックするとすべてのオートシェープがロックされてしまいます。
138 :
名無しさん@そうだ選挙にいこう :2005/07/24(日) 13:45:51
Shiftを押しながら図形を選択すると複数の図形をまとめて選択することができるので、 固定させたい図形をすべて選択した状態で 図形ツールバー > "図形の調整" > "図形の結合" だったかな? 満喫からなんだけどエクセルがないから検証できないや。 大筋はあってると思うけど誰か訂正して著
139 :
名無しさん@そうだ選挙にいこう :2005/07/24(日) 14:55:29
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 貴乃花専用しおり ,r=〜^ヾ_,,r-=- 、 /;;;;;;;;;;;;;;;;;;;;;;ヽ;;;;;;;;;;;;ゝ /;;;;;;;;;;;;;;;;;;;;;;;ノノハ;;;;;;;;;;;;;;i i;;;;;;;;;;;;;;;;;;彳===ヽ;;;;;;ル !;;;;;;;;;;;;;;イ::. / \ |;;;ノ ゝ;;;;;;;|:::: (●) ,(●) |シ 从从/ \ , 、_! 、 / ノ 从从 i ー==-' i l ノ从ヽ._!_⌒_!_/ 今日はここまで痩せた ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
140 :
名無しさん@そうだ選挙にいこう :2005/07/24(日) 15:18:15
お願いします。 ソフトウェアのスレの方で 「複数のファイルの中から、テキストやエクセルなどに書き出された ファイル名を元に検索し、必要なファイルだけを移動(またはコピー)する」 っていうソフトありますか? って聞いたら 「エクセル」って言われました。 エクセルでこういうことが可能なんでしょうか? もし可能なら、もう少し詳しく教えて貰えますか?
>>140 VBAつかえば出来るよ
というか、VBA使わないと出来ない
自分で書けないならもう少し詳しい条件指定しないと
「がんがれ」くらいしか言えないな
ファイル名はどこに書かれてるのか、どこからどういう条件で検索するのか
サブフォルダ以下も検索するなら移動先でファイル名が重複したらどうするのか
とか、きちんと仕様を固めれば神がコード書いてくれるかもしれない
でもわざわざExcel使わなくてもVBSとかで充分処理できそうな感じだね
VBSの場合、またスレ違いになっちゃうけど
Excelでやりたいならきちんと条件書いて気長に待ってみな
142 :
名無しさん@そうだ選挙にいこう :2005/07/24(日) 16:54:45
143 :
140 :2005/07/24(日) 18:02:23
>>141 有難う御座います。
でも、自分では書けないんで、書いて貰えると嬉しいんですけど。
VBSってのも、今、初めて聞きましたし。
でも、出来るなら、何でもいいです。
詳細な仕様ってなことなんですけど、
1.ファイル名は自分で書き出すんで、何処にでも書けます。
2.検索条件は、その書き出したファイル名と同じ名前です。
3.サブフォルダは無く、検索するのは一つのフォルダのみです。
4.検索、移動後、フォルダに無かったファイル名だけをリスト化することは出来ますか?
可能ならば、それもお願いします。
こんな感じで宜しいでしょうか?
それでは、神様お願いします。
>>143 神様じゃないけどこんなもんでどうかな?
Sub MoveFile()
Dim FindFolder As String, MoveAsFolder As String, myFilePath As String
Dim i As Long, j As Long
FindFolder = Range("C1").Value
MoveAsFolder = Range("C2").Value
For i = 1 To Cells(65536, 1).End(xlUp).Row
myFilepath = FindFolder & "\" & Cells(i, 1).Value
If Dir(myFilepath) = "" Then
j = j + 1
Cells(j, 2).Value = Cells(i, 1).Value
Else
Name myFilepath As Replace(myFilepath, FindFolder, MoveAsFolder)
End If
Next i
End Sub
A | B | C
1| ファイル名1 検索するフォルダのパス
2| ファイル名2 移動先フォルダのパス
3| ファイル名3
>>10-11 を参考にシートオブジェクトか標準モジュールに貼って実行。
実行するとA列に書いたファイルが検索対象フォルダ内にあれば移動、
無ければB列にそのファイル名を列挙。
ファイル名は拡張子まで書いてないと動かないので注意。
145 :
名無しさん@そうだ選挙にいこう :2005/07/24(日) 18:59:41
>>6 の例二のようなIF関数は7つまでしか一気に出来ないみたいですが、何とかして50個出来る方法はないでしょうか?
>>145 ・配列数式にする
・ユーザー定義関数を使う
お好きな方をどうぞ
因みにここで条件を50個ズラズラ書かれても困るので
ヘルプでも読んでがんばりましょう
ここの過去ログを固めうpしてくれる人いないですか?
>>147 居ないです
だって、にくちゃんねるやみみずんでほとんど全部揃うから
149 :
140 :2005/07/24(日) 19:34:09
>>143 有難う御座います。
希望通りに動きました。
厚かましいんですけど、もう一つ、条件を加えてもいいでしょうか?
今、A列に同名のファイルが複数あった場合には
そのファイルを移動させても、
残りの名前をB列に表示するようになっています。
(同名ファイルが3つあった場合、2つがB列に表示されます)
ファイルを移動させた場合は、同名のファイル名を
B列に表示しないようにすることは出来るでしょうか?
また、B列に表示する時、同名のファイルは1つだけにすることは
出来ますか?
よろしくお願いします。
150 :
140 :2005/07/24(日) 19:36:33
>>112 お礼が遅くなりましたがありがとうございます。
現在はDir関数でフォルダ内の全てのファイルに
開く、パス設定、保存、閉じるを順次処理させてます。
Application.ScreenUpdating = Falseもしてますが
「開く」「閉じる」の処理を省けるなら
もっとスマートなコードになるのにと思い
可能不可能を確認させていただいた次第です。
現状のままでよいとわかり満足しております。
ありがとうございました。
>>149 つまり移動対象ファイルリストにはファイル名が重複してる場合もあるってことかな?
それならこれでどうでしょうか?
j = j + 1
Cells(j, 2).Value = Cells(i, 1).Value
↓
If Dir(MoveAsFolder & "\" & Cells(i, 1).Value) = "" Then
j = j + 1
Cells(j, 2).Value = Cells(i, 1).Value
End If
153 :
145 :2005/07/24(日) 20:07:34
>>146 ありがとうございます。
もう一つ質問なのですが、1なら”あ”、2なら”い”、3なら”う”…と、出す方法、他にありませんか?
154 :
140 :2005/07/24(日) 20:16:42
>>152 有難う御座いました。
マクロ使うの初めてなんで、かなり手間取ってますが
希望通りのものを作って頂いたみたいです。
ホントに助かります。
ちなみに、書いて頂いたものって、VBAをちょっと勉強したくらいでは
難しいでしょうか?
ちょっと興味が湧いてきたんで。
>>153 =CHAR(A1+9248)
でA1が1なら"ぁ"、2なら"あ"、3なら"ぃ"、4なら"い"
順番は「ぁあぃいぅうぇえぉおかがきぎくぐけげこごさざしじすずせぜそぞただ」って感じになってる。
A1に=CHAR(9248+ROW())、B1に=9248+ROW()って入れてオートフィルで下方へコピーすれば
どのコードで何が返るかわかるでしょ。
>>154 俺自身がVBAをちょっと勉強しただけのド素人なんですが。
これくらいの処理は、勘が良ければ1日で書けるようになりますよ。
>>153 リストを別に作ってvlookup関数使えば?
157 :
名無しさん@そうだ選挙にいこう :2005/07/24(日) 20:51:17
【OS】WindowsXP 【Ver】エクセル2003 質問させてください。 エクセル上に地図を貼り付け、その上に何点かポイントを置き そこにマウスポインタを合わせるとその点の詳細画像が表示される というようなデータベースを作りたいのですが、エクセルで可能でしょうか? ホームページ作成ではjavaスクリプトで出来るのですが エクセル上でまとめるのが理想です。 やり方が分かる方いらっしゃいましたら教えてください。 自分で色々調べたりやったりしてみたのですが出来ませんでした。
158 :
145 :2005/07/24(日) 21:24:45
>>157 画像をイメージオブジェクトとして挿入し、
MouseMoveイベントでマウスが指定座標に来たら
用意した詳細画像のオブジェクトを表示するとか。
Image1が地図、Image2が詳細画像だとするとこんな感じかな。
Private Sub Image1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
If X > 100 And X < 120 And Y > 100 And Y < 120 Then
Image2.Visible = True
Else
Image2.Visible = False
End If
End Sub
ただ、MouseMoveイベントはCPU食うから、
MouseDownイベントを使ってクリックさせるようにした方がいいと思う。
160 :
140 :2005/07/24(日) 21:47:08
>>155 そうなんですか。
明日、本屋にでも行ってちょっと調べてみます。
有難う御座いました。
161 :
157 :2005/07/24(日) 22:06:49
>>159 ありがとうございます。
さっそく明日実践してみたいと思います。
162 :
名無しさん@そうだ選挙にいこう :2005/07/25(月) 11:42:22
お尋ねします。下記の様な表があります。縦軸は日にちで 一つのセルに複数の文字列が、"、"で区切られて入っています。 Aさん 夜勤 日勤 日勤、夜勤 ってな表があってこの中から夜勤の回数を知りたい場合、 COUTIF関数を使って条件を"夜勤”で設定したのですが 1セルに夜勤と入っているものしかカウントしません。 日勤、夜勤はカウントされない様なのですがなんかいい智恵ありますか?
163 :
名無しさん@そうだ選挙にいこう :2005/07/25(月) 12:01:25
164 :
162 :2005/07/25(月) 13:00:08
>>163 うへー、即レスありがとうございました!できました。
あんた、頭世過ぎ!ってか俺がばかななのか、、、長い間悩んだ疑問が解決しました。
ありがとうございました!
まあ、ワイルドカードは基本だろ
166 :
名無しさん@そうだ選挙にいこう :2005/07/25(月) 22:08:53
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2002 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 グラフ作成についての質問です 通常棒グラフの起点軸は 0 から始まり、数字が増えていきますが、 逆は出来るのでしょうか? 例 起点軸 15 にして 数字が減るほど棒が伸びるようにしたいんです。 わかりにくくてすいませんご回答をお願いいたします。
俺に分からないことってある?
>>166 とりあえず棒グラフ作ってから
軸の書式設定... 〜 目盛
で「軸を反転する」ON & 「項目軸との交点」に15を指定
お好みに応じて「最小値」「最大値」も適宜指定
Windows2000に最初から含まれているADOのバージョンを 知りたいのですが、どこに載ってますでしょうか。
>170 君、だれ?
174 :
名無しさん@そうだ選挙にいこう :2005/07/25(月) 23:27:50
175 :
名無しさん@そうだ選挙にいこう :2005/07/25(月) 23:37:26
ある連続した行がグループとされていて、行の所に@とかAとあって、そこをクリックするとグループを表示、非表示と切り替えられる。 こんな設定が為されたファイルがあったのですが、どのような方法でやるのでしょうか?よろしくお願いしますm(_ _)m
>>175 アウトラインですね。たぶん。
データ>集計をやれば自動的に作られますし、
手動で作るならデータ>グループとアウトラインの設定>グループ化
177 :
名無しさん@そうだ選挙にいこう :2005/07/26(火) 00:28:19
>>176 初心者的な質問にも関わらず、質問に応えて頂きありがとうございました|∵|/
俺に分からないことってある?
179 :
名無しさん@そうだ選挙にいこう :2005/07/26(火) 09:42:26
181 :
悩める関数男 :2005/07/26(火) 11:10:17
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2002 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 (導入法が分かれば可) 同一ブック内での2つのシート間での連携についてお聞きいたします。 シート1には各列に“氏名”、“住所”、“電話”、“年齢”が入力されています。 シート2は印刷用の文書テンプレートが作成してあり、 シート1の項目があちこちに配置してある状況です。 シート2の“名前”のセルでリスト表示(シート1の名前リスト)から一つの名前を選択します。 ここまでは出来たのですが・・・、 名前選択と同時にシート2の住所、電話、年齢も対応する物が自動入力出来ないかと・・・。 lookup関数も使ってみましたが、各列のデータが昇順でないと出来ないようです。 御教授頂けると幸いです。
【1 OSの種類 .】 Windows2000 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 A1セルに入力された日時とA2セルに入力された日時を 比較し、20分以上差がある場合はA3セルに「×」と 表示させたいのですが、どのようにすればできますでしょうか。 よろしくお願い致します。
>>181 VLOOKUP関数の第四引数を0、又はFALSEに
この意味についてはヘルプのVLOOKUPの項目を見てね。
>>182 >>6 とヘルプを参考に、IF関数とTIME関数で式を組んでみよう。
日付を跨る場合はちょっと複雑になるけど、同一日付なら簡単だから。
>>183 すいません。日付はまたがるんです。でもやってみます。
185 :
悩める関数男 :2005/07/26(火) 11:29:16
183 どうもありがとうございます。 ヘルプ見ながら努力してみます。 182 練習に取り組んでみましたが、 A3セルに、 =IF(MINUTE(A2−A1)>=20,”×”,””) では駄目ですか?
>>183 なんでTIMEなんだ?
DATEVALUEとTIMEVALUEとTEXTじゃないの?
>>185 ありがとうございます。MINUTEっていう関数があるんですね。
助かりました。
188 :
悩める関数男 :2005/07/26(火) 11:42:17
>183 出来ました!有難う! でも、対象セルが空欄の場合にゼロが入力されてしまいます・・・。 ゼロ出さずに空欄は空欄で表示したいのですが・・・。 度々お手数お掛けいたします。
>>188 >>6 を参考にIF関数使う手もあるけど、
表示形式のユーザー定義で「0;-0;;@」とかやった方が楽かも。
これの意味は
>>3 参照
ただしコレだと参照先が空欄ではなく0の時も、結果は空欄になってしまうので
それがマズい場合はIF関数で。
>>186 =IF(B1-A1>=TIME(0,20,0),"×","")
と思ったんだけど、日付跨りは関係なかったね。
まあ、MINUTEの方が良さげなので
>>185 の式でいいと思うけど。
【1 OSの種類 .】 Windows2000 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 同一book内のシートを参照するのは =しーとname!セル場所 でやればできるのですが 上記のしーとnameを別のセルの入力に対応させることはできるのでしょうか? (a1にシート名称を入力、a2にa1で入れたシートの参照を表示)
【1 OSの種類 .】 Windows2000 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 若干 【4 VBAでの回答の可否】 可 VBAから、Excelで開いていないEXCELファイルの中の指定したシートの 指定したセルの値を取ってくることは可能でしょうか。 できればExcelを新たに起動しないで実現したいです。 よろしくお願いします。
【1 OSの種類 .】 Windowsxp 【2 Excelのバージョン 】 Excel 2000 【3 VBAが使えるか .】 ? 【4 VBAでの回答の可否】 否 家計簿をつけています。 A B スーパー 1000 薬局 2000 スーパー 1500 とつけていき、最終的に 「スーパーの合計は〜〜円」「薬局の合計は〜〜円」とつけたいと思っています。IF式でつけると式が長くなってしまいます。 COUNTかな、とおもったのですが、どうも違うようで。やはりIF式で長くずらずらっと書くしか方法はないのでしょうか? 関数のヒントだけでもお願いします。
194 :
193 :2005/07/26(火) 15:27:56
あぁ、SUMIFでいいのか、、_| ̄|○ スレ汚し失礼しました ツッテキマス
196 :
悩める関数男 :2005/07/26(火) 17:08:45
>>189 了解。
IF使って見ます。
御丁寧に有難うございます。
一番上の列と一番下の列を固定するにはどうしたらいいんでしょうか?
198 :
166 :2005/07/26(火) 17:47:15
>>169 様
遅レス申し訳ございません
おかげさまでレポートが提出できました
ありがとうございました
感謝!!
>>192 ありがとうございます。
ご紹介頂いたリンク先に書いてあるExecuteExcel4Macroを試してみたのですが、
例えば時刻が入力されているセルの値を取得した場合、セルが未入力の場合と
「0:00」が入力されている場合のどちらも「0」が返ってきてしまう。
これをうまく区別する方法はないでしょうか。
>>200 すいませんでした。ありがとうございます。
202 :
199 :2005/07/26(火) 20:39:04
Excelを開かずに値を取得するのは諦めて、該当ファイルをオープンしてから 値を取得しようと思うのですが、Excelを新たに起動したことをなるべく ユーザに見えないようにするいい方法はないでしょうか。 最小化状態で起動できればなんとか目的は果たせそうですが・・ よろしくお願い致します。
【1 OSの種類 .】 Windows2000 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 マクロからサードパーティのCOM Addinで追加された機能を呼び出すことは可能でしょうか? 可能でしたらやりかたを教えてください。よろしくお願いします。
>>202 Application.ScreenUpdating = False
208 :
190 :2005/07/27(水) 03:04:45
>195 教えていただきありがとうございます いろいろ試行しましたが エラーがでたり、自分にはダメでした
メニューを弄っているうちに、オブジェクトの挿入をしてしまい、 カレンダーを挿入してしまいました。 選択して消去することもできず、移動もできず…。 オブジェクト、削除などでヘルプを見てもわかりませんでした。 どなたか削除する方法をお教えください。
ふりがなを表示・非表示すると 行の高さが自動的に調整されますが 一度でも行の高さをマニュアルで調整 した場合、高さが一定になってしまいます。 自動的に調整するにはどうすればいいので しょうか?
214 :
名無しさん@そうだ選挙にいこう :2005/07/27(水) 17:47:37 BE:61353582-
ここであっているのかどうかわかりませんが、間違いならば誘導お願いします。 【1 OSの種類 .】 WindowsXP SP2 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 メールで送られて来た画像付きのエクセルファイルのデータが、壊れてる時がたまにあります。 サーバー側で問題なのか、エクセルのVerによっての問題なのかわからなかったので、 ここで質問させて頂きました。 Ver違いで壊れる事はあるのでしょうか?
Excel95以前ので作ったファイルなら、verの問題かもしれない。 97以降なら単純なデータ破損だろうな。
216 :
209 :2005/07/27(水) 21:16:58
>>210 ありがとうございました。解決しました。
俺最近スキル上がったよ。どんどん質問して。
10%以下を表示したいのですが、0になってしまいます。 どうすれば表示できるのか教えて下さい。
>>218 「0.1」とか「0.01」とかってことですか?
220 :
名無しさん@そうだ選挙にいこう :2005/07/27(水) 23:38:09
ハイパーリンクとマクロってどちらが重くなりますか? ひとつのブックにシートが30枚あるとして、 そのうち29枚は、それぞれパターン別の発注書になっています。 残り1枚は、それら29枚のパターンの一覧表を作成しています。 パターン一覧表からあるパターンを選択すると、そのパターンのシートに移動するように したいのですが、移動の手段として、ハイパーリンクにするのと、 マクロを登録したボタンを配置してボタンをクリックするとそのシートに移動するようにした のとでは、どちらが重くないのでしょうか? 自分で両方試してみたのですが、どちらも上書き保存にすごく時間がかかりました。 実際のところはどうなのでしょうか?一般的な意見でいいので教えて下さい。
> 実際のところはどうなのでしょうか? 状況に因るとしか言いようが無いな。 全ての条件においてどちらかが必ず軽くなるというものではないので ご自分の環境で軽かった方を選べばよろし。
>>220 どちらでもあんまり大差ない希ガス
目次なしでも上書き保存にすごく時間がかかるのでは。
223 :
名無しさん@そうだ選挙にいこう :2005/07/28(木) 00:41:42
>>221 ,222
レスありがとうございます。
シート枚数が多いから仕方ないですかね。
あまり変わらないないようなので、マクロを登録したボタン方式にします。
どうもありがとうございました。
>>219 1〜9%を表示させたいのです。
切り捨てられているのでしょうか?
>>224 普通に書式をパーセントスタイル(表示形式=パーセンテージ)に
設定すれば、218のような現象は起きませんが?
少なくとも手元の2002では再現できない。
excelファイルを開こうとしたら『表示形式が追加できません』と出て、ファイルが開けないのですが、どうしたら開けるのでしょうか?お助け下さいexcel2000です。
>>223 データがフロッピーやMOだとソレが原因で遅くなりますよね。
HDDに置けるなら、置いた方がいいんだけど。
なのでウチは3人、3台のPCで同じエクセルデータを扱うので
一台のHDDに格納してソレを共有してます。媒体も要らないしね。
229 :
ヘルプ!! :2005/07/28(木) 11:00:37
ROMってる暇なくてごめん!エクセルで画像を挿入できなくなった。ファイルから挿入するとファイル名の欄が透明になっててエラーで弾かれる。対処法教えてください。お願いします!PCはXP
とりあえずPC再起動 直らなければMSのサポートへ
>>227 ありがとう(^▽^)携帯からなので、帰宅後見てみます。
232 :
名無しさん@そうだ選挙にいこう :2005/07/28(木) 11:49:14
マトリクスの計算をやっているのですが Sub 掛け算() Dim a(4, 4) As Integer, b(4, 4) As Integer m = 4 n = 4 For i = 1 To m For j = 1 To n a(i, j) = Cells(i + 2, j) Next j Next i For i = 1 To m For j = 1 To n b(i, j) = Cells(i + 2, 5 + j) Next j Next i For i = 1 To m For j = 1 To n Cells(i + 2, 10 + j) = a(j, i) * b(i, j) Next j Next i End Sub 最後の答えの部分を4×4ではなく列の総和を出して1×4にしたいのですが どのようなやり方をすればよいのでしょうか? OSはXPです
最後の5行を Dim buf As Integer For j = 1 To n buf = 0 For i = 1 To m buf = buf + a(j, i) * b(i, j) Next i Cells(3, 10 + j) = buf Next j つーか、配列使わないで直接結果だせば? 配列使うにしても、ループ回さず一括してセル範囲の値を配列に入れられるし。 それと配列だけでなく変数や定数も宣言しようぜ。 Dim i As Long, j As Long Const m As Byte = 4, n As Byte = 4
234 :
名無しさん@そうだ選挙にいこう :2005/07/28(木) 13:03:33
再起動駄目でした…早急に直したい場合どうすればいいの?MSサポート意味ないっス
235 :
ヘルプ!! :2005/07/28(木) 13:05:17
再起動駄目でした…早急に直したい場合どうすればいいの?MSサポート意味なかったです
236 :
232 :2005/07/28(木) 13:15:47
1234 10 14 18 22 2345 3456 4567 とあった場合 という風にしたいのです。 こちらの言いたい事がうまく伝わってなかったみたいですね・・・説明不足ですいません
238 :
232 :2005/07/28(木) 13:42:45
2×2でやってみます。このプログラムだと 1,2 1,2 12 1,2 × 1,2 = 24 という風になるのですが 1,2 1,2 36 1,2 × 1,2 = という風に答えの数値を出力する時に列の数値を足した状態で出したいと考えているのです。 =SumPrducct を使うのかと思ったのですがうまくいかなかったので質問してみたのですが
>>238 それなら
>>233 でいいじゃん。
それともVBAじゃなくてワークシート関数でやりたいってこと?
> ★要望は具体例や図を使って明確かつ具体的に。
> =SumPrducct > を使うのかと思ったのですがうまくいかなかったので質問してみたのですが そりゃ、そんな関数無いからうまくいかなくて当然だな SumPrducct関数ではなく SumProduct関数使えよ
241 :
232 :2005/07/28(木) 14:09:21
>>233 さん
申し訳ありません。そのやり方で正しかったです
>>240 そうでしたね。
SumProductのつもりで書いたのですがuがcになってしましました
ご迷惑おかけしました。ありがとうございます
242 :
名無しさん@そうだ選挙にいこう :2005/07/28(木) 18:25:54
【1 OSの種類 .】 WindowsXPhome sp2 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 誠に初歩的な質問でアレなんですけど >12の ・ 入力したセルの値を書き換える (VBA) に該当するかもしれませんが 「リンクで文字列を作った後でそれを通常の文字列に変換することは出来るでしょうか?」 わかりにくいと思いますので具体的に言いますと A1のセルには 相談所 と書いてあると仮定します B1のセルに =A1 と記述してあるので当然B1のセルにも 相談所 と表示されるのですが B1のセルにはリンクではなく、文字列で 相談所 と書きたいんです 「じゃあ最初っから相談所って書けばいいだけじゃねえかボケ」と仰るのは当然ですが、すで に100項目以上をリンク形式で作ってしまったため、今から気合で文字列に書き直すのには 勇気がいって、何か良い方法はないものかと思い相談させていただいた次第です。 印刷するならいいんですが、データで渡した方がいいことに気づき、絶望的な気持ちになっ ています。
>>242 A1をコピーする。
B1に「値」だけ貼り付ける。
以上。
2000なら「形式を選択して貼り付け」経由で「値」ですか。
>>243 出来ました。
我ながら恥ずかしいぐらいなんとも初歩的な質問で大変お手数をおかけいたしました。
誠にありがとうございます。
245 :
名無しさん@そうだ選挙にいこう :2005/07/29(金) 15:42:58
【mac os x10.4】 Windows** 【Exel v.x 】 Excel** 【3 VBAが使えるか いいえ .】 【4 VBAでの回答の可否】 可・否 初心者です、どなたかご教授下さい。 タテ(行)順に入力されているデータをヨコ(列)順に並べ替えるにはどうすれば 一番早く処理できますか? 手作業では、この作業を大量の書類に対して行わなければいけないので 気が遠くなってしまいます。 どなたか簡単に出来る方法がありましたらお教えくださいませ。 よろしくお願いします。
247 :
名無しさん@そうだ選挙にいこう :2005/07/29(金) 16:16:44
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 円グラフの中心に、円を表示させその中に値の合計を表示させる にはどうすればよいでしょうか。
248 :
名無しさん@そうだ選挙にいこう :2005/07/29(金) 16:52:34
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 偏差値と順位を求めたんですけど、偏差値と順位にずれが生じて しまったんですけど、なぜかわかりますか? よろしくおねがいします。
> なぜかわかりますか? 使い方間違ってるから...だと思う なんにしても情報がなければこれ以上は答えられないな
>>215 ありがとうございます。
いじくる順番を間違えていたようです。
>>247 円グラフではなくドーナツグラフを使い、値の合計はグラフの中心に
テキストボックスを置いて、そこに合計値のセルをリンクさせる。
(グラフの中心をクリックして、その状態で数式バーに「=D10」のように
入力すればいい)
252 :
247 :2005/07/29(金) 17:47:11
>>251 ありがとうございます。できました。
そういう機能があるわけではないのね…
ちょっと面倒だけどやって見ます。
253 :
名無しさん@そうだ選挙にいこう :2005/07/29(金) 23:42:52
初めてマクロを組んでみようと思って今奮闘してるのですが基本的な以下のことがわからなくて 困っておりますどなたかご教授お願いします <(_ _)> シート1にコマンドボタンを配置してそのボタンを押すとUserForm1が出てくるようにし UserForm1にあるコマンドボタンをおすとUserForm1が閉じるようにしたいのですが シートのコードに Private Sub CommandButton1_Click() Load UserForm1 End Sub とコードを書いてもうまくいきません>< どなたか教えていただけませんでしょうか。
254 :
253 :2005/07/29(金) 23:46:00
肝心なバージョン書き忘れました VBのバージョンは6.0です エクセルのバージョンはXPです よろしくおねがいします <(_ _)>
255 :
名無しさん@そうだ選挙にいこう :2005/07/30(土) 00:08:08
お聞きします。 Excel2000で、入力用のダイアログボックスを作成したのですが、 ユーザーフォームに入力したデータをセルに転記する部分のマクロで、 ユーザーフォームのテキストボックスに入力したテキストをセルに転記するのは Range("Database").Cells(insertRow, 1) = Textbox.Text という記述で出来たんですけど、チェックボックスとオプションボタンで、それぞれ 「チェックがONならセルに(陽性)と記入、OFFならセルは空白のまま」 というプログラムはどのように記述したらよいでしょうか? どうかご教授お願いします。
256 :
253 :2005/07/30(土) 00:25:05
調べ方が悪かったみたいです 根気良く調べてみたらできました 開くときは Load UserForm1 ではなく UserForm1.show にするんですね^^; お騒がせしてすみませんでした <(_ _)>
257 :
名無しさん@そうだ選挙にいこう :2005/07/30(土) 02:13:39
エクセルで1〜100のA〜Fを横にすべて結合したいんですが、まとめて結合する方法とかってあります?
>>257 とりあえずA列の1〜100を結合し、あとはオートフィルを使う。
>>259 円グラフの円を囲んでいる外接四角形のどこかでクリックすると、
四隅にポイントの付いたグレーの四角形が出る。
その四隅の部分をポイントすると斜め矢印が出るので、それを外に
引っ張ると、円だけが大きくなるよ。
261 :
259 :2005/07/30(土) 08:08:22
>>260 オーできたできた! Thanx!
こんな所に隠しオブジェクト(?)があるとは、知らなかったよ。
別に隠しじゃないけどね。 単に棒や線グラフとかだと、プロットエリアのうち、データオブジェクト以外が占める割合が多いけど 円グラフだとコレが少なくて端に寄ってるので知らないとちょっと解りづらいってだけでしょ。 プロットエリアという概念を知ってれば、円グラフでも瞬時にどうすればいいかわかるはず。 棒線グラフでも、グラフの位置やサイズを変更する方法を知らないってなら単なる知識不足だが プロットエリアを知っていて、円グラフのプロットエリア選択方法が解らないってのはちょっと頭弱すぎかも。
>>253 Load ステートメント
オブジェクトを読み込みますが、表示はしません。
ヘルプにこう書いてあるじゃん
Userform1.Show だろ
264 :
263 :2005/07/30(土) 08:42:56
と書いたら既に解決してたみたいでスマソ。
>>263 256 名前:253 [sage] 投稿日:2005/07/30(土) 00:25:05
調べ方が悪かったみたいです
根気良く調べてみたらできました
開くときは Load UserForm1 ではなく UserForm1.show にするんですね^^;
お騒がせしてすみませんでした <(_ _)>
>>256 にこう書いてあるじゃん
既に自己解決してるだろ
と書いたら既に気付いて謝ってたみたいでスマソ。
266 :
255 :2005/07/30(土) 10:00:37
スルーされちゃいそうなのでもう一度お聞きします。 Excel2000で、入力用のダイアログボックスを作成したのですが、 ユーザーフォームに入力したデータをセルに転記する部分のマクロで、 ユーザーフォームのテキストボックスに入力したテキストをセルに転記するのは Range("Database").Cells(insertRow, 1) = Textbox.Text という記述で出来たんですけど、チェックボックスとオプションボタンで、それぞれ 「チェックがONならセルに(陽性)と記入、OFFならセルは空白のまま」 というプログラムはどのように記述したらよいでしょうか? どうかご教授お願いします。
>>262 はいはい、アンタはエライんだね。
つーか… 氏ね厨房!
>>255 ,
>>266 セルに文字を入れる部分は出来てるとのことなのであとは条件判断ですね。
大きく分けてふたつの方法があります。
ひとつは条件によって入力処理実行の有無を分ける方法。
If CheckBox1.Value Then
Range().Value = "文字列"
End If
もうひとつは条件によって入力値を変更する方法。
Range().Value = IIf(CheckBox1.Value, "文字列", "")
前者はチェックがOFFなら処理を行わないので、空欄なら空欄のまま、
既に何か入力されていてもそのままになります
後者はチェックがOFFならセルを空にする(""を代入する)処理です。
前者の方法で、セルを空にすることも出来ますし、それを1行で書くことも出来ます。
If CheckBox1.Value Then Range().Value = "文字列" Else Range().ClearContents
逆に後者の方法で、チェックが無い場合にセルの値を保持することも出来ます。
Range().Value = IIf(CheckBox1.Value, "文字列", Range().Value)
チェックボックス1とオプションボタン1の両方がチェックされてるときに入力を行いたいなら
Andで条件を繋げればいいし、それぞれのチェック状況で処理を振り分けたければ
Select Case True
Case CheckBox1.Value And OptionButton1.Value
Range().Value = "CheckBox1 と Option1 がチェックされています"
Case CheckBox1.Value
Range().Value = "CheckBox1 がチェックされています"
Case OptionButton1.Value
Range().Value = "Option1 がチェックされています"
Case Else
Range().ClearContents
End Select
という感じで。(オプションボタンは正確には「チェック」ではなく「選択」ですが。
270 :
名無しさん@そうだ選挙にいこう :2005/07/30(土) 17:15:36
ひとつのブックにシートが複数まいあるのですが、それらのシートにはすべて保護を かけてあります。 それらの、シートの保護・解除を一発で行えるマクロを教えてください。 シートの枚数は変動します。 宜しくお願いします。
>>270 Sub 全てのシートを保護()
Dim WsObj As Worksheet
For Each WsObj In Worksheets
WsObj.Protect
Next WsObj
End Sub
Sub 全てのシートの保護を解除()
Dim WsObj As Worksheet
For Each WsObj In Worksheets
WsObj.Unprotect
Next WsObj
End Sub
「このシートのすべてのユーザーに許可する操作」
にあるオプションの設定については、ご自分でご指定ください。
VBAヘルプを「Protect」で検索すれば、オプションの指定方法は詳しく書いてあります。
又は、マクロの記録で好みのオプションでの保護を記録させ、
その引数のみを引っ張ってきてもいいですが。
ActiveSheet.Protect 〜〜〜, 〜〜〜 _
〜〜〜, 〜〜〜
という感じで記録されると思うので、「ActiveSheet.Protect」以下を
上記コードの「WsObj.Protect」の後ろにコピペすればOKです。
272 :
名無しさん@そうだ選挙にいこう :2005/07/30(土) 17:59:39
>>271 どうも親切にありがとうございました!!
早速使わせていただきます!!
273 :
名無しさん@そうだ選挙にいこう :2005/07/30(土) 20:06:28
すいません。 折れ線グラフでムーアの法則を表すグラフを作りたいんですが、 横軸に時間、縦軸に周波数でさらに各サンプルにCPU名を表示させたいのですが、 こういうのって標準ではできないんでしょうか? ちなみにEXCEL2000を使ってます。
>>273 > 各サンプルに
サンプルって何ですか?
Excelのグラフの構成要素に"サンプル"なんて用語はありませんけど。
> CPU名を表示させたいのですが
どういう風に表示させたいのか知らんが、
グラフの標準機能として表示させられなくても、
Excelの標準機能でオブジェクトをグラフの上に置くことによって、
いくらでも対応可能。
275 :
255=256 :2005/07/30(土) 20:40:47
hoge ◆hoge//WRxY さま、丁寧なレス本当にありがとうございました^^ 心から感謝です^^
>>274 サンプルも知らんのに回答しようとでしゃばる奴がいるとは・・・
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 質問させていただきます。グラフを書いたときにY軸ラベルに文字が入りきらなくて困っています。 ラベルのサイズを変更する方法を教えていただけますでしょうか?VBAでなければ解決しない というのであれば、それでも結構です。よろしくお願いします。
278 :
名無しさん@そうだ選挙にいこう :2005/07/30(土) 23:22:19
>>277 わざわざVBAなんか使わないでもラベルのサイズなんて簡単に変更できるでそ・・・
てきとーに色々いじってごらんよ・・・
>>278 いろいろやってみたけどわかりません
グラフエリアみたいに簡単にはサイズ変更できないのですか?
>>280 書式の設定ですか?ラベルのサイズはどうしても変更できません
パワポに貼ってから編集して何とかなりましたが、方法を知っておきたいですね
▼━質問 ━━━━━━━━━━━━ 【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 質問させてください。マクロでひとつのブックに存在する 全てのシートの書式を一括して変更しようとしています。 ただ、各シートの名前には年月が入っており(「H17-06○○支店」みたいに) 「新しいマクロの記録」という動きを記録するマクロですと毎月編集して H17-07とかH17-08のように変更していかなければなりません。 よい解決方法はないでしょうか?ご教示いただければと思います。
283 :
282 :2005/07/31(日) 04:26:38
すみません。 解決しました。お騒がせしました。。
>>281 軸ラベルやグラフタイトルは、他の要素(たとえばプロットエリアや凡例、
グラフエリアなど)と違って、四隅のハンドル(■)をドラッグして大きさを
変えるというわけにはいきません。
でもラベル用の文字を入力すれば、その文字数に応じて勝手に領域が
広がってくれますので、そもそも「Y軸ラベルに文字が入りきらない」という
現象自体が、なんで起こっているのかわからないのですが?
軸ラベルをクリックして選択→入力したい位置にカーソルを置いて
もう一度クリック→文字を追加入力
で、文字数は増やせます。かなりの文字数が入りますよ。
(2002で確認。たぶん2003でも同じ)
289 :
282 :2005/07/31(日) 11:12:00
▼━質問 ━━━━━━━━━━━━ 【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 質問させてください。マクロでひとつのブックに存在する 全てのシートの特定の部分をコピー(D27:U70)し、 その後で新規に作った1枚のシートにコピーした 全ての部分を順番に貼り付けようとしてます。 グループ化して一括でコピー&貼り付けしようと すると貼り付けるときにエラーになってしまいます。 よい解決方法はないでしょうか?ご教示いただければと思います。
>>289 ご教示いただければと思います。ってことは、ご教示して
もらえなくても仕方ないとも思ってるってことね。
>>289 空シートを作って末尾(一番右)に置き、以下のマクロを実行
Dim i As Long
For i = 1 To Worksheets.Count - 1
Worksheets(Worksheets.Count).Range(Cells(i * 44 - 43, 1).Address, Cells(i * 44, 18).Address).Value = _
Worksheets(i).Range("D27:U70").Value
Next i
結果は、末尾に追加した空シートの内容が下図のようになるはず。
空シートを末尾に置かないと、末尾のシートのデータが書き換えられるので注意。
@、Aはシートの番号(シートタブの左から順に1,2,3…)です。
A | B | C 〜 Q | R | S
1 | @-D27 @-U27
2 |
〜
43|
44|@-D70 @-U70
45|A-D27 A-U27
46|
>>291 hogeさん、できました!
本当にありがとうございました。
293 :
名無しさん@そうだ選挙にいこう :2005/07/31(日) 17:08:28
グラフを作った後で 凡例の中の文字を変えることは出来ますか? 簡単なことですみません。
>>293 凡例の文字に対応しているセルの中身を書き換えればいいです。
295 :
293 :2005/07/31(日) 17:36:50
>>294 早速のアドバイスありがとうございます。
凡例に対応しているセル自体が、完成品の表の一部になっている場合、
凡例元のセルを書き換えたくないのですが、なんとかならないでしょうか?
つまり凡例元のセルを触らずに、凡例そのものを書き換える方法はないでしょうか?
>>295 あれは全体で1つのオブジェクトなので、無理じゃないの?
どうしても変えたければ、凡例を削除して
代わりにテキストボックスを配置し、好きなように書けばいいのでは?
297 :
293 :2005/07/31(日) 17:59:11
>>296 なるほど、ありがとうございました。またお願いします。
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 2002 【3 VBAが使えるか .】 少し(今勉強中です) 【4 VBAでの回答の可否】 可(ぜひとも>< ) A4というセルにabcde0731.txtという文字列(ファイル名なのですがね^^;)がはいっていたとした場合 そのA4の文字列がこちらの指定と同じかをチェックしたいのですがマクロの組み方がわかりません ※abcdeのあとの0731は固定ではありません ただしチェックのときは4桁の数字が入ってればOKとします。 If Range("A4").Formula = abcde(4桁数字が入ってること).txt then a = 1 Else a = 0 End If (4桁数字が入ってること)の部分をどうすればいいのかがわかりません、数字じゃなくても4文字の文字列が 入ってるという判断でもOKです。 どなたかこういう不特定の文字数のあってる文字列が入ってるかを判別するときの方法を教えていただけません でしょうか よろしくお願いします <(_ _)>
299 :
298 :2005/07/31(日) 18:14:36
上げ忘れました すみません<(_ _)>
>>298 つまり、セルの値が
「"abcde" 数字4桁 ".txt"」だったら変数aに1を代入、
違っていればaに0を代入って事でしょうか?
それなら
a = 0 - ("abcde031.txt" Like "abcde####.txt")
というかんじで。処理を振り分けたいなら
If Range("A4").Value Like "abcde####.txt"t then
Else
End If
= ではなくLike演算子を使うと、ワイルドカードを拡張したような指定が出来ます。
数字以外の文字でも1を返したいなら"abcde????.txt"です。
詳しくは「Like」でVBAヘルプを検索してみてください。
もっと複雑な指定がしたい場合は正規表現も使えます。
301 :
298 :2005/07/31(日) 19:20:55
>>300 >「"abcde" 数字4桁 ".txt"」だったら変数aに1を代入、
>違っていればaに0を代入って事でしょうか?
まさにそのとおりです 説明が下手で申し訳ありませんでした^^;
Link演算子というのを使えばいいのですか!初めてその演算子知りました^^;
300さんが書いてくれた内容でできそうです
さっそくLink演算子について調べてやってみます
300さんありがとうございます <(_ _)>
L i n k じゃなくて L i k e な
303 :
298 :2005/07/31(日) 19:50:22
Link演算子というのを使えばいいのですか! あ!Likeでした^^;
(´-`).。oO( この子、どうしたんだろう… )
>>304 それは「私にもわかりませんorz」と言う意味だな?
SUMIF関数を使って在庫管理しています。 ところが同じ商品名で違う商品という厄介なものが出てきまして 今関数とにらめっこしてる状態です^^; =SUMIF(範囲を商品一覧,商品,合計範囲を入荷出荷した数)として まあ普通に使ってやっているのですが・・・どうすればいいでしょうか。 AND関数も使えないし、複数のセルを範囲として指定することは不可能でしょうか? 日本語下手ですいませんがよろしくお願いします
>>308 > 複数のセルを範囲として指定することは不可能でしょうか?
配列数式で可能。
具体的なシート内容が書かれてないので、具体的な式はご自分で調べましょう。
配列数式というやつを調べてみたのですが すごい難しいですね。。出来そうだというのはわかりましたが・・・ 頑張ってみますがかなり難しそうなので こちらに具体的なシートを書きに来るかもしれません(汗 すいません(苦笑
312 :
名無しさん@そうだ選挙にいこう :2005/08/01(月) 21:27:47
区別したら・・・・
>>313 お前、
>>304 と同じ奴だな。
こんな時間経って、その程度のレスしか出来んのかこの池沼!
消防は、おとなしく宿題でもしてな。
近似曲線(累乗近似)と直線の交点を求めるには、どうすればいいんですか?
それを求めるための数学知識があれば、Excelで解くのはわけないと思うが。 数学知識からして欠如してるなら、Excel関係ない問題なのでスレ違い。
318 :
名無しさん@そうだ選挙にいこう :2005/08/02(火) 09:16:04
これで回答が付く確率は0になったわけか... ご愁傷様 (-人-)
>>318 説明できない言い訳ができてよかったな、カスw
>>315 累乗近似の近似曲線を追加する際、「オプション」タブを選んで、
「グラフに数式を表示する」にチェックを入れます。
これでグラフ上に、その近似曲線を表す数式が表示されます。
後はその数式に、求めたい直線の値を入れて交点を計算してください。
>>321 キモいスレだなw
根暗人間の巣窟スレだなw
323 :
263 :2005/08/02(火) 10:54:04
324 :
名無しさん@そうだ選挙にいこう :2005/08/02(火) 17:31:55
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 かなり既出な気がするのですが、イマイチ見つからなかったので質問します。 ブックAとブックBという2つのブックがあり、ブックA上のシート(Sheet1)をブックBに コピーしたい。 ただし、Sheet1には他シート(ブックA上の"Sheet2")への参照数式が入っています。 普通にコピーすると、「=[ブックA.xls]Sheet2!A1」のように、他ブック参照が付加 されてしまいます。この他ブック参照を付けずにコピーしたいのです。 ちなみに、コピー先のブックBには、ブックAと同じSheet2が既に存在します。 どうすればいいでしょうか。
325 :
名無しさん@そうだ選挙にいこう :2005/08/02(火) 17:35:13
取引先 商品 A商店 あ B商店 い A商店 う D商店 え という感じのデーターの中から「あ」「い」「う」「え」の全ての商品を 買っているお店を探す方法はありますか?
>>324 1、ブックBで〔編集〕-〔リンクの設定〕でリンクの編集ダイアログボックスを表示
2、リンク元がブックAになっているモノを選択して〔リンク元の変更〕
3、ブックBでOK
すれば、ブックBの"Sheet2"になると思います。
>>324 置換機能を使ってブック名を一括消去もできますよ。
検索に [ブックA.xls] を入れて、置換後の文字列を空にすればOKです。
一括置換やリンクの設定はシート全体に対して処理されるのでブックAへの参照を残したい部分もあるなら、
1. 置換機能を使って = をシート内で使われていない適当な文字(##とか)に置換
2. シートをコピー
3. コピー先で、置換した文字を = に戻す。
とすることで、コピーによるブック参照の付加は起こりません。
>>325 VBA可ですか?
取引先がA列2行目から、商品名がB列2行目から、
結果はC列2行目以降に返すってならコード書きますけど。
FAQかとは思うのですが、探し出せなかったので・・・ 1-1と入力すると、1月1日と変換するのをやめたいのですが、どうしたらいいか分かりません お願いします
>>329 ありがとうございました
探したんですけど、見逃していたようです
332 :
名無しさん@そうだ選挙にいこう :2005/08/02(火) 23:28:18
【1 OSの種類 .】 Windows 98 SE 【2 Excelのバージョン 】 Excel 2000 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 やりたいことは、 シート"data"から1列300行、シート"eval"から1列300行を持ってきて、例えば data!b3 * eval!b3 + data!b4 * eval!b4 ... としてその答えを求めようとしてます。 問題の式は =MMULT(TRANSPOSE(OFFSET(data!$A$3,0,E$1,300,1)),OFFSET(eval!$A$3,0,$A4,300,1)) * MMULT(A,B) =行列A と 行列B の積 * TRANSPOSE(A) =行列A の行と列を入れ換える(転置) * OFFSET(基準の場所,縦にずらす数,横にずらす数,取り出す行数,取り出す列数) しかし、結果は#VALUE!となってしまいます。 (ヘルプを見た所、行列が不正、みたいな感じ?) (OFFSET単体が正常に動いてるのかどう確認するのかわからない) どこがいけないのでしょうか。
333 :
名無しさん@そうだ選挙にいこう :2005/08/02(火) 23:36:46
データベースにデータを取り込む為にEXCELで※1や※2の機能を持った定型フォームまたは定型表 を作りたいのですがどういう機能・関数とか方法を使えばいいのでしょうか? ※1.20項目と20行からなる入力表で20×20以外の他の部分には入力出来ないようにしたい。 ※2.数値限定セルと文字列限定セルを作り数値限定セルには文字は入力出来ないようにしたい。 ※1に関してはパスワードを設定すれば可能なのですが他人に入力して貰うのでパスワードを 設定しないで保護をしたいのですが方法がよくわかりません。
>>332 ひょっとして、数式を入力するとき「Enter」ではなく、
「Ctrl」+「Shift」+「Enter」とやればうまく行かないかな?
335 :
名無しさん@そうだ選挙にいこう :2005/08/02(火) 23:53:21
>>327 いまいちVBAよくわからんとすけど
やっぱあという事は関数では無理とですね
>>332 その式を見ると別のことがやりたいのかも知れないけど、
「data!b3 * eval!b3 + data!b4 * eval!b4 ...data!b302 * eval!b302」を出すなら
=SUMPRODUCT(data!B3:B302*eval!B3:B302)
で出せますよ。
>>333 ※1 20*20の範囲だけロックを解除してシートの保護
※2 入力規則
>>335 325さんですか?
作業セルを使えば関数でも出せますよ。
A | B | C | D | E | F | G | H | I
1| 取引先 商品 あ い う え
2| A商店 あ A商店 @→ A B
3| B商店 い B商店 ↓ ↓ ↓
4| A商店 う C商店
5| D商店 え D商店
@{=SUM(($A$2:$A$100=$C2)*($B$2:$B$100=D$1))>0}
A=IF(D2*E2*F2*G2=1,C2,"")
これでH列に全商品購入してる取引先の名前が出ると思います。
又は
@=MATCH($C2&D$1,$H$2:$H$100,0)
A=A2&B2
B=IF(ISERROR(SUM(D2:G2)),"",C2)
でもいいかな。たぶん後者の方が遙かに軽いです。
式はデータ量に合わせて補完してください。作業セルは非表示にしてもOKです。
もっと良い方法があるような気もしますが…
337 :
名無しさん@そうだ選挙にいこう :2005/08/03(水) 03:45:59
お聞きしたいのですが、excelでA4サイズ等の用紙に5mm×5mmのマスを入れたもの(表?)をつくる事は 可能なのでしょうか?表を応用してマス一辺が5mmという正確な表を作り、製図に使いたいので、 可能でしたらどうやってするのか教えて下さい。
>337 不可能 CADでも使え
>>337 Excelは、お絵かきツールではないのよ。
中高年に多いんだが、何でもかんでもExcelでやろうとする香具師大杉
例えば、送付状とか報告書とか、普通Wordで作るべき物をすべてExcelでやる。
おそらく、必死で覚えた唯一のアプリなんだろうな(w
340 :
名無しさん@そうだ選挙にいこう :2005/08/03(水) 04:41:31
>>338 CADもってます。CAD使えれば一番早いんだけど、CAD入れてるPCはプリンタに繋がってないし、
コードもないし、ドライバもないし・・・FDに移してプリンタに繋がってるPCで立ち上げてもCADいれてないからか
文字化けしちゃうから、excelでできるかなときいてみました
341 :
名無しさん@そうだ選挙にいこう :2005/08/03(水) 06:50:59
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 例えば、A〜Eまでのセル内の数値の合計をFに出して、 そのA〜Eまでのセルの中で、1以上数値が含まれているセルの個数で割り、 その答えをGに出す。 みたいな計算をしたいのですが、数式がわかりません・・・。 がんばって調べたのですが、馬鹿なので結局わかりませんでした・・・(;;
>>341 ・合計はSUM関数
F1=SUM(A1:E1)
・条件を満たすセルの数を返すにはCOUNTIF関数
1以上数値が含まれているセルの個数=COUNTIF(A1:E1,">=1")
GI=F1/COUNTIF(A1:E1,">=1")
>>340 ARCADやDJ!などフリーのCADもあるので、プリンタに繋いでるPCに入れてみては?
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 combobox で配列のリスト表示しているデータを選択した後 combobox内に配列データごと表示する方法を教えてください よろしくお願いします
>>343 日本語でよろしく
どういう状態から何をしたときにどういうふうにしたいのか
脳内完結ではなく第三者にもわかるようにきちんと説明しよう
というか
> combobox内に配列データごと表示する方法
が、ComboBoxに配列内の全データを一括して割り当てたいってことなら無理
標準のComboBoxはループ回さずに配列内の全データを
アイテムとして追加することはできないから
345 :
名無しさん@そうだ選挙にいこう :2005/08/03(水) 11:43:50
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 大量の報告書をエクセルファイル10個ほどに分散させて作成しています。 (1ファイルに10シートくらい、1シートには複数ページ入っている) 現在のファイルは、報告書のページ順になっていません(作業の関係上)。 現在の作業ファイルを並べ替えずに、新しいエクセルファイルなどから作業ファイルをリンク呼び出しして 報告書順にプリントアウトする、という事はムリでしょうか・・・?
>>345 ・10個の報告書を全て開いておく
・ブック名シート名をドロップダウンリストに全て列挙しておく
・リストでひとつずつ選択しながら印刷していく
なら可能だけど、上記の条件を満たせないならVBA使わないと無理だろうな
347 :
名無しさん@そうだ選挙にいこう :2005/08/03(水) 13:12:40
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 自分で作ることはできません 【4 VBAでの回答の可否】 可 あるソフトからエクスポートしたExcelファイルのデータで 『0001』と数字が文字列形式で出力されてしまいます。 これを0を省いた『1』という数値形式に一括変換する方法はありますか?
>>347 条件によっては置換で出来る場合もあるけど、マクロの方が汎用性があるかな。
Sub 数字文字列を数値に変換()
Dim R As Range
For Each R In ActiveSheet.UsedRange
If IsNumeric(R.Value) Then
R.NumberFormatLocal = "G/標準"
R.Value = R.Value
End If
Next R
End Sub
349 :
347 :2005/08/03(水) 17:23:42
>>348 hoge ◆hoge//WRxY さんありがとうございます!
気持ちがいいくらいに一括で変換できました!
本当に助かりました!
350 :
333 :2005/08/03(水) 20:47:01
>>336 hogeさん、回答ありがとうございます。
>※1 20*20の範囲だけロックを解除してシートの保護
この方法は知っていたのですが毎回パスワードを入力しないと入力出来ません。
パスワードを入力しないで入力出来るようには出来ませんか?
> ※2 入力規則
こちらはうまくいきました。(^^)v
351 :
345 :2005/08/04(木) 10:16:22
>>346 ありがとうございます。
やっぱりVBAか・・・・構文がいまいち分からないので、改造は出来るけど自分で新規に作れないのです(´;ω;`)
他にVBA分かる人も職場にあまり居ないので、作ってもメンテが出来ない・・・
VBA使わない方向で出来る限り省力化を考えてみます。すみませんでした。本当にありがとう。
352 :
名無しさん@そうだ選挙にいこう :2005/08/04(木) 10:58:35
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 少しだけ 【4 VBAでの回答の可否】 できれば否 質問させてください。 1月、2月、3月…と12ヶ月分のを作り商品ごとの売り上げを入力したとします。 そして最後に「年間集計」というシートを作りました。 シート「年間集計」のセルA1に「3」と入力したら3月分の売り上げが、 「4」と入力したら4月分の売り上げが「年間集計」のシートに 表示されるようにしたいのですが関数にシートの参照を 「年間集計」のA1から引っ張るコトは可能でしょうか? いい方法が思いつかず今は 「=IF(A1=1,'1月'!C1,IF(A1=2,'2月'!C1,IF(A1=3,'3月'!C1…」といった感じでIF関数で強引に組んでいるのですが すごく無駄が多い気がして仕方ありません。 IF関数の上限によりいくつかに分けないといけないコトもあり… 例えば「='A1'!C1」のような感じでシートの参照をセルA1から引用するコトは可能なのでしょうか? ちなみに「='A1'!C1」ではダメでした… もしわかる方いましたら教えてください。よろしくお願いします。 本当に説明が下手ですみません。
354 :
名無しさん@そうだ選挙にいこう :2005/08/04(木) 11:30:15
355 :
名無しさん@そうだ選挙にいこう :2005/08/04(木) 11:34:08
>>352 年間集計は別シートなんだよね?
VLOOKUP関数を使えばいいよ。
356 :
352 :2005/08/04(木) 12:06:36
2ちゃんビューア入れてないので
>>8 が読めない…今Jane Doeの設定と格闘中です…
会社の回線の串のせいだ…
>>354 具体的に言うとHPのアクセスログを取っていてその検索語句の数値です。
>>355 VLOOKUPでも12個のシートの切り替えはどうしたらよいのでしょうか?
もしよかったら
>>8 = FAQ: 参照するセルをセルの値で指定する =
を転載してもらえないですか?申し訳ないです…
= FAQ: 参照するセルをセルの値で指定する = Q:A1に「5」とか「6」とか指定する値を変えたら B1の関数で「C5」とか「C6」とか参照先が変わるようにできませんか? A:INDIRECT関数を使ってみましょう。 詳しくはヘルプで「INDIRECT」を検索
358 :
352 :2005/08/04(木) 12:30:25
>>357 サンクス!!!
これってセル以外にシートにも使えるのかなぁ?
試してきます!
シート名どころか、ブック名にも使える。 ただ、開いてないブックは参照出来ないけど。 つーか結構シート名をセルの値でって質問多いから 次スレテンプレでINDIRECT関数がシート名にも使えること 付け加えといてくれ>>次スレ立てる人
360 :
352 :2005/08/04(木) 12:50:24
質問いいですか。 エクセルで作った文書をフロッピーに保存してから, そのあとずっとフロッピーを入れなくても読みに行こうとガーガーガーとなります。 フロッピーを読みに行かないようにする設定ってあるのですか?
362 :
:2005/08/04(木) 17:52:39
363 :
名無しさん@そうだ選挙にいこう :2005/08/04(木) 19:29:09
あの、システム日付から時間を取り出して、ラベルに定期的に表示させることは出来ますか? 環境は Windows2000 Excel2000 VB 可 です。宜しくお願いします。
>>363 ラベルというとユーザーフォームですか?
それなら
Sub 時刻表示()
If Not UserForm1.Visible Then Exit Sub
UserForm1.Label1.Caption = Format(Time, "h:mm")
Application.OnTime Now + TimeSerial(0, 1, 0), "時刻表示"
End Sub
と言う感じで再帰的に処理させれば良いのでは?
コレだと初回実行から1分単位で時刻を更新するけど、10秒単位なら
TimeSerial(0, 1, 0) → TimeSerial(0, 0, 10) って感じで。
初回にそのまま呼ぶといきなりループが切れるので、2秒くらい遅延してくれ
Application.OnTime Now + TimeSerial(0, 0, 2), "時刻表示"
1分単位で、システムの00秒に更新したければ、初回の実行で
Application.OnTime Date + TimeSerial(Hour(Time), Minute(Time) + 1, 0), "時刻表示"
って感じで呼べばいいと思うよ。
あとはFormatの表示形式やユーザフォーム名やラベル名は適当に書き換えて。
TimeSerialではなくTimeValue使ってもいいし。
365 :
名無しさん@そうだ選挙にいこう :2005/08/05(金) 12:00:23
【1 OSの種類 .】 WindowsXP【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 少しだけ 【4 VBAでの回答の可否】 できれば否 質問させてください。例えば月ごとの売り上げの管理で 3月の売り上げがリンゴが1500円、ミカンが1200円、イチゴが700円 4月の売り上げがミカンが2000円、スイカが1000円、メロンが4500円 5月の売り上げがリンゴが2000円、柿が3000円 のように売り上げがあったものだけが入力されているとき 年間のトータルの売り上げを メロン4500円、リンゴ3500円、ミカン3200円、柿3000円、スイカ1000円、イチゴ700円 といった形で並び替えを使わずに売り上げの高かった物から自動的に表示されるようにしたいのです。 やはりVBAを使わないと無理でしょうか? 商品名が固定で無いためVlOOKUPやSUMIFでも検索値をどうしたらよいか、 合計金額が出ても並び替えをどうすればいいかで悩んでいます。 できれば、VBAや並び替えは使わずに関数だけで出したいと思っているのですが可能でしょうか?
> 商品名が固定で無いため VBAでも無理 商品名は固定するか属性を付けるかデータベースを作るかしないと 合計なんて出せるわけない 津軽〜円、女峰〜円、新高〜円、アムス〜円、明宝〜円、千秋〜円 コサック〜円、世界一〜円、次郎柿〜円、アンデス〜円、豊水〜円 なんてデータがあって、「りんごの売り上げ合計を出せ」なんて言われたら、 人間だって予備知識(データベース)や分類表(属性)がなかったら出せないだろ まあ、この程度ならほとんどの人が特に調べなくても既にある予備知識の範囲で答えられるだろうけど Excelには果物の分類の知識(データ)なんて全く無いんだから まずは各項目の合計が出せるように元データを調整しろ あとは作業セルを使えば関数のみで並べ替えは出来るから
367 :
365 :2005/08/05(金) 12:35:46
>>366 3月、4月、5月の項目からダブらないように商品名を表示するような方法はないですか?
特に分類は必要ではなくリンゴ、ミカン、イチゴ、スイカ、メロン、柿とダブらずに表示されればよいのですが。
無理そうなら気が遠くなる作業だけどなんとか元データを整理してみます。
関数での並び替えは何の関数になりますか?
> 3月、4月、5月の項目からダブらないように商品名を表示するような方法はないですか? 実際のデータ状態を見て、具体的にどういうふうにしたいのかを聞かないとなんとも言えない > 関数での並び替えは何の関数になりますか? 数値評価関数と検索関数 やり方はいろいろある
369 :
365 :2005/08/05(金) 13:06:40
並び替えはなんとかLARGE関数とVLOOKUPで自己解決しました。 ただ、同じ数値の時、VLOOKUPが役に立ちません… 何かいい方法ないですかねぇ…。 引き続き365の統計でいいアイディアあったらよろしくお願いします…。 オシエテクンですいません。
ROW関数も評価に入れる 金額と言うことは整数なので、どこかの列に 金額+ROW()/1000 とかを入れてその列で評価すれば、金額が同じ3000でも、 10行目の3000は3000.01に、20行目の3000は3000.02になるので数値重複は起こらない データが100行以下なら/100でいいし、1000〜9999なら/10000にすればよろし VBA使わないとこういう面倒なことが必要になるけど仕方ないな
371 :
365 :2005/08/05(金) 13:26:52
具体的には A B C D E F G H ------------------------------------------------------------------------------------------- 1 |3月 |4月 |5月 | |TOTAL | 2 | | | | | | 3 |リンゴ | 1500円 |ミカン | 2000円 |リンゴ |2000 |〜|メロン |4500 4 |ミカン | 1200円 |スイカ | 1000円 |柿 |3000 | |リンゴ |3500 5 |イチゴ | 700円 |メロン | 4500円 | | | |ミカン |3200 6 | |柿 |3000 7 | |スイカ |1000 8 | |イチゴ |700 といった形でG列には3月〜5月までの果物名を、H列にはその果物ごとの合計金額を表示させたいのです。 まずは3〜5月分の果物の種類をG列にダブらないように表示させたいのです。
372 :
365 :2005/08/05(金) 13:27:43
あ…失敗した…orz
373 :
365 :2005/08/05(金) 13:40:24
今度こそ… 具体的には A B C D E F G H ------------------------------------------------------------------------------------------- 1 |3月 |4月 |5月 | |TOTAL | 2 | | | | | | | | 3 |リンゴ | 1500円 |ミカン | 2000円 |リンゴ |2000 |〜 |メロン |4500 4 |ミカン | 1200円 |スイカ | 1000円 |柿 |3000 | |リンゴ |3500 5 |イチゴ | 700円 |メロン | 4500円 | | | |ミカン |3200 6 | |柿 |3000 7 | |スイカ |1000 8 | |イチゴ |700 といった形でG列には3月〜5月までの果物名を、H列にはその果物ごとの合計金額を表示させたいのです。 まずは3〜5月分の果物の種類をG列にダブらないように表示させたいのです。
374 :
365 :2005/08/05(金) 13:42:31
もうだめだ…orz これで誰か理解できたらお願いします…。
G3に =VLOOKUP(LARGE(I$3:I$9,ROW()-2),I$3:J$9,2,0) H3に =INT(LARGE(I$3:I$9,ROW()-2)) I3に =SUMIF(A$3:A$5,J3,B$3:B$5)+SUMIF(C$3:C$5,J3,D$3:D$5)+SUMIF(E$3:E$4,J3,F$3:F$4)+ROW()/100 J3以下に リンゴ、ミカン、イチゴ、ミカン、スイカ、メロン、柿 (順はどうでもいいので全品名を挙げる) G3:I3を選択して9行目(Jの最終行)までオートフィルでコピー I〜J列を非表示にする 今後のことを考えるとデータを横ではなく縦に繋げた方がいいと思うが
376 :
365 :2005/08/05(金) 14:06:25
>>375 ありがとーございます!!!
ちなみに「J3以下にリンゴ、ミカン、イチゴ、ミカン、スイカ、メロン、柿
(順はどうでもいいので全品名を挙げる)」
ここはやっぱり手作業しかないですかね?
実際にやろうとしてるデータがすごい膨大なので…
ないようなら手作業でがんばります。
>>376 K3に
=IF(COUNTIF(OFFSET(A$3,0,0,ROW()-2,1),A3)=1,A3,"")
って入れて、A列の一番下の行と同じ位置までオートフィル
歯抜けでデータが表示されるので、K列全体を選択してコピー
形式を選択して張り付け→値
K行を降順ソート
これでK列にA行の品名が重複無しで抽出できるので結果をJ列に移動
以後C列、E列と同じように作業して、最後にJ列でも同じように作業し
そのときK列に抽出されたデータが「A,C,E列から重複しないように抽出したデータ」になる
並べ替え使ってるけど、元データが並べ替えられなければいいんでしょ
378 :
365 :2005/08/05(金) 15:31:23
>>377 ありがとーございました!!
これでできました!!
コード 名称 100 ハンバーガー 201 フライドポテト 306 コーラ ↑ 上記のような表を作ってvlookupで 100 と入力するだけで、「ハンバーガー」と表示できるのはできました。 そこで、発展させてセットものも表示できるようにしたいのですが、なかなかよい方法が思いつきません。 100S というコードの内容をハンバーガー、フライドポテト、コーラのセットとして定義して、 100S と入力するだけで 100S ハンバーガーセット 100 ハンバーガー 201 フライドポテト 306 コーラ 100 という感じで表示させてたいのですが、なにかいい方法ないでしょうか、助けて
>>379 「ハンバーガー、フライドポテト、コーラ 100」を100Sに関連付ければいいだけでしょ。
コード セットコード 名称
100S ハンバーガーセット
100 100S1 ハンバーガー
201 100S2 フライドポテト
306 100S3 コーラ 100
として、Sで終わるコードの場合は右側のコードで拾う。
今までは「=VLOOKUP(入力セル,〜」としてたんだろうが、
今度はそれに加えて「=VLOOKUP(入力セル&"1",〜」でも検索に掛ける。
数式は一番品種が多いセットに合わせて用意し、使わないものは論理式でNullを返すようにする。
又は下記のようにしてもよし。とにかくセット名とコードが関連付けされてなければどうにもならないが
逆に関連付けさえしてしまえば、簡単に拾うことが出来る。あとは自分でがんがれ。
コード 名称 セット内容1 内容2 内容2
100S ハンバーガーセット 100 201 306
100 ハンバーガー
201 フライドポテト
306 コーラ 100
>>380 大変参考になりました。
ありがとうございます。
やってみます。
エクセルを使用してリストを作りたいのですがどのようにすればいいでしょうか? やりたいことは、A1に支店名をリストから選択するとB1のセルにはその支店に対応したリストから選択できるようにしたいのです。 A B C ・・・・ E F 1 △支店 (△に対応したリスト) 支店名 リスト 2 ×支店 (×に対応したリスト) △支店 佐藤 3 ■支店 (■に対応したリスト) ◎支店 後藤 ・ ・ ■支店 川上 ・ ・ △支店 田丸 ・ ・ ■支店 坂上 ・ ・ ×支店 神野 のような感じです。EとFの列がリストになります。つまりA1に△支店が入力されるとEFのリストから△支店のフィルターをかけ 抽出されたリストをB1のリストに対応させたいのです。 Accessを使えば抽出クエリで作成可能なのですがそのPCにはエクセルしか使用できませんのでよろしくお願いします。
>>382 E列をソートして、G列にE&Fを書き出して、
あとは「Excel リスト 連動」でググれ
まあソート無しで出来ないことも無いが
【1 OSの種類 .】 Windows xp sp2 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 エクセルの散布図で名称を座標に表示させるには どうしたらよいでしょうか? 【例】 y | | ・モナー | | ------------x 座標は作れるのですが、そこに表示できるのは 座標値しかできませんでした。方法がありましたら お教えください。
386 :
名無しさん@そうだ選挙にいこう :2005/08/06(土) 14:40:33
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2002 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 すみません。教えてください。 右クリックのメニューがコピーと張り付けしか出て来ません。 前のPCでは書式設定とか切り取りとかいろいろあったんだけど。 どこかで設定変更できるんでしょうか。 超初心者ですみません。
>>384 その座標が独立した系列になっているのなら、
グラフエリアをクリック→グラフウィザード→「次へ」で2/4へ→
「系列」タブを選択→「系列」にある一覧から名前を入れたい
座標に相当するものをクリック→「名前」欄に「="モナー"」
これでできると思う。
座標の出し方が俺の考えと違っているのならわかりません。
>>387 の書き忘れ。
座標を示すデータ系列を選択し、
「データ系列の書式設定」→「データラベル」タブ→系列名にチェック
ってのをやっとかないと「モナー」は表示されないかもしれない。
亀レスですが
>>383 さんできました♪ありがとうございました
A B C 1 100 50 1 40 50 1 10 50 2 10 15 2 20 15 上のような表で、c列に、a列の数が同じのものの平均値を返したいのですが、どういう風にしたらよいでしょうか?
>>390 その範囲がA1:C5にあると仮定して、C1セルに次の数式を入力
=SUMIF($A$1:$A$5,A1,$B$1:$B$5)/COUNTIF($A$1:$A$5,A1)
後はC1からC5までオートフィルでコピー。
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 少しだけ 【4 VBAでの回答の可否】 可 ブックA、ブックBがあります。 ブックAは既存でして、月別データが各シート(例えば「2004.1」〜「2004.12」)に作成 されています。 ブックBの”A1”に「2004」、”A2”セルに「5」を入力しコマンドボタンを押した場合に ブックAの「2004.5」というシートを開く事は可能でしょうか?
「シートを開く」という概念は無いが 「ブックを開いてシートをアクティブにする」なら可能。 マクロの記録で取れるので、シート名の部分だけセルの値を代入するようにすればいい。
>>393 そうですね、シートをアクティブにするということでした。
ありがとうございます。
上手く動きました。
てっきりシート名を指定する場合「文字列」に直す必要があるのかと思って
セルの値を変換していました。
1つのセルに数値を入れたら計算してくれるにはどのような計算式をたてればいいのでしょうか? どうか教えてください。
>>395 説明が不十分で何がしたいのか理解できないが、仮にA1セルに何も入力されていない場合は
計算セルも空白で、A1セルに入力された時だけ計算セルに計算結果を表示させたいならば、
>>6 の例5
って人大杉か。 >例5:対象が空欄なら表示も空欄にする > A1が空欄なら結果は何も表示しない、それ以外ならA1から2を引く。 > =IF(A1="","",A1-2) > =IF(ISBLANK(A1),"",A1-2)
表示形式について質問があります。 小数点以下の数字の色を変えるにはどうすればいいでしょう? ひゃくにじゅうろくてんよん の よん 以下のみ赤字などで表記したいです。 複数セルを使わないと無理でしょうか? よろしくお願いします。 マクロなしExcel2000です。
書式として変更するなら、セル内の小数点以下を選択して色を変えればいいけど それを自動でやりたいならVBA使わないと無理 表示形式には一部の色を変える機能はたしか無い。 または自分でも言ってるように複数セル使うかだな。
>>399 わかりました。
あっさりあきらめて、文字デカ化で、みずらさを解消します。
ありがとうございました。
みずらい→× みづらい→○
あ!
小数点が見辛いってなら、非Pフォントにするだけでも結構改善されるよ MS Pゴシック → MS ゴシック
405 :
名無しさん@そうだ選挙にいこう :2005/08/07(日) 18:49:09
質問ですすいません。 あるセルに入力してenterで確定すると同時に印刷されるようにするには 何をどうすればよいでしょう?exel2000です。 したいことは Aのセルに入力しenter → Bのセルに移動 → Bのセルに入力しenter → Cのセルに移動 → Cのセルに入力しenterと同時にすぐ印刷 → Aのセルに移動 という 三箇所に入力して印刷し、また三箇所を書き換えて印刷という作業を したいのです。入力とenterだけで素早くできないかなあと・・・ アクティブセルの移動はctrlを押しながら選択 → 名前の定義 位しか方法は無いみたいだし。他にありますかね? 何かヒントを!師匠!
>>405 セルの横移動はTABキーかオプション設定で出来る。
ABC以外をロックしてシートの保護を掛ければ、Enterで下でも横でも斜めでも隣以外でも飛べる。
印刷は「印刷...」ではなく「印刷(プリンタ名)」の方を使えばすぐに印刷できる。
それ以上のことをやりたいならVBA使うしかない。
ピボッドグラフレポートについて質問させて下さい。 ウィザードを使ってCSVデータからグラフまで作ったとします。 グラフは「縦軸:売上」「横軸:集計月&商品」の縦棒グラフです。 このうち、とある商品だけ売上額が極端に少ないので、第二軸を設定しました。 その後、抽出項目選択?のチェックボックス付コンボでxx月のチェックONを外すと、第二軸の 設定が無くなって元の一軸グラフに戻ってしまいます。 「第二軸設定→保存→再度開く→抽出項目選択設定」でも第二軸の設定が消えてし まいます。 これを解消するにはどうすればよいでしょうか? ピボッドグラフのデフォルトが一軸の縦棒グラフですが、項目選択後はかならずデフォルトに 戻ってしまうのは回避不可でしょうか?
408 :
名無しさん@そうだ選挙にいこう :2005/08/08(月) 11:34:05
矢印ボタンでセルが移動せずページが 移動するようになっちゃったんですけど 元に戻すにはどうしたらいいですかね?
411 :
名無しさん@そうだ選挙にいこう :2005/08/08(月) 14:04:24
質問させてください。WinXP EXCEL2003 VBAはできれば不可で。 A列にキャベツ、レタス、きゅうり B列に人参、キャベツ、トマト、ごぼう C列に大根、きゅうり とあり、そして今後D列、E列にもリストが増えていくとします。 F列にキャベツ、レタス、きゅうり、トマト、ごぼう、大根… という感じでダブりを排除しリストの一覧を作るコトは可能でしょうか? A〜E列の行数は不特定で、ダブりがあり、今後入力されていくD列、E列も参照されるようにする。 並び順はどんな順番でもOKです。 関数のみで可能でしょうか?よろしくお願いします。
>>411 作業セルを使えば可能ですが、結構面倒ですよ。
まずは各行のデータをどこでもいいので1行に全て書き出してください。
各行のデータがセル区切りなら単純な参照式です。
各行のデータが
>>411 で書いたように「、」区切りなら、文字列操作関数で切り出します。
この時点では書き出した行には空欄があっても重複があっても構わないので、とにかく全データを書き出します。
次に
>>377 の数式を応用して、書き出したデータの下の行にCOLUMN関数で列番号(@)と
更にその下の行に重複無しのデータ(A)を書き出します。
最後にHLOOKUP関数、SMALL関数、COLUMN関数で空白を埋めたデータをF列に書き出します。
=HLOOKUP(SMALL(@の範囲,COLUMN()),@とAの範囲,2,0)
ワークシート関数は、関数式を入れたセルのみに1つの値しか返せないので、(配列数式を除く
こういった返す結果が不定なものは苦手なんですけどね。
こういう場合は、あらかじめ多めの数式を入力しておいて論理式で非表示にしておくしか無いです。(
>>6 参照
データが多いなら、作業範囲に行ではなく列を使っても構いません。
こっちの方が視覚的にはわかりやすいと思うけど、最初の参照式がちょっと面倒かも。
VBAならセル区切りだとしても「、」区切りだとしても結構簡単に出来ますが、
こっちでコード書くよと言ってもVBAはイヤだってならがんばってください。
すいません、大きな勘違いしてました。 横に書いてあったけど、データは列なのね。 まあそれでもやり方は変わらないですけど。
414 :
名無しさん@そうだ選挙にいこう :2005/08/08(月) 16:20:11
2003を使ってます。 改ペ−ジプレビュウについてです。 1ペ−ジの印刷範囲を変更してもなかなか思ったとおりに いかないと思い、元にもどしたいのですが、いったん、改ペ−ジプレビュー で設定してしまうと、青線を動かす以外では、最初の印刷範囲をしめした 点線にはなりません。 どうすれば、最初の(改ぺージプレビューでいじる前)印刷範囲に 戻るのでしょうか?
意味がよくわからんが、倍率を100にすればいいんじゃね?
416 :
411 :2005/08/08(月) 16:39:06
>>412 ご返答ありがとうございます。
すいません…
>>377 が2ちゃんビューアが会社のネットワークの環境で入れられず見れません…
もしよかったら
>>377 を転載してもらえないでしょうか…
417 :
名無しさん@そうだ選挙にいこう :2005/08/08(月) 16:52:15
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 質問です! [A.xls]というファイルでマクロを登録したとします。 これを [B.xls]というファイルに変更した後にマクロを実行すると エラーになってしまいます。 デバックボタンを押して確認してみると Windows("A.xls").Activate となってるところで止まっていたので、 Windows("B.xls").Activate と変更すると動くようになりました。 ファイル名を変更しても修正しなくてもいい うまい方法はありませんか?
>>416 >>377 の数式は
> =IF(COUNTIF(OFFSET(A$3,0,0,ROW()-2,1),A3)=1,A3,"")
です。私が書いたものではありませんが、これで重複無しのデータを抽出出来ます。
>>412 で書いた
> 書き出したデータの下の行にCOLUMN関数で列番号(@)と
は
ROW()で行番号を書き出し、
> =HLOOKUP(SMALL(@の範囲,COLUMN()),@とAの範囲,2,0)
は
=VLOOKUP(SMALL(@の範囲,ROW()),@とAの範囲,2,0)
にしてください。
簡単なので参考までにVBAコードも書いておきます。
よかったら使ってみてください。(会社だとマクロを禁止してるのかもしれませんが
Sub データ抽出()
Dim hoge As New Collection, i As Long, j As Long
On Error Resume Next
For i = 1 To 5
For j = 1 To Cells(65536, i).End(xlUp).Row
hoge.Add Cells(j, i).Value, Cells(j, i).Value
Next j
Next i
For i = 1 To hoge.Count
Cells(i, 6).Value = hoge(i)
Next i
End Sub
>>417 そのまま直すと
Windows("B.xls").Activate
↓
Windows(ThisWorkbook.Name).Activate
だけど、
ThisWorkbook.Activate
でも良いのでは?
420 :
417 :2005/08/08(月) 17:08:58
>>419 おおお!なりました!!
ありがとうございますm(_ _ )m
421 :
411 :2005/08/08(月) 17:37:52
教えて頂いたとおり関数を埋め込んでみました。しかし、歯抜けの状態になってしまいます。 CN列が最終的にデータが出るはずの列です。 CK列に全てのデータを、 CL列にはROW関数での行数を =ROW(CK6) CM列には =IF(COUNTIF(OFFSET(CK$6,0,0,ROW()-5,1),CK6)=1,CK6,"") CN列には =VLOOKUP(SMALL($CL$6:$CL$168,ROW()),$CL$6:$CM$168,2,0) データは全て6行目から始めています。何か間違いがあるようでしたらご指南お願いします。
>>421 CL列の値はCM列に値が返ってる行のみ表示させます。
CM列と同じ数式を使ってもいいですが、
CL6=IF(CM6<>"",ROW(),"")
の方がいいでしょうね。
それとCN行も6行目から始めるのなら、最初の行の数式は
「ROW()」→「ROW()-5」又は「ROW()」→「ROW(A1)」にしないとダメです。
423 :
411 :2005/08/08(月) 18:04:31
>>422 で…できました!!!ありがとうございます!!!
まだなぜこれでできるのか理解できてませんが
今から解析してみたいと思います!
>>422 さん、本当にありがとうございました!!!!
>>414 改ページプレビュー画面のまま、
適当なセルを右クリックして「すべての改ページを解除」
すいません、誰か教えてください。 Excelのフォントの色や背景色を変更しても画面上に反映されなくなってしまいました。 プレビューでは変更されているのですが…。 テキスト表示も、文節確定前(Enterキーを押すまで)は変更したフォントの色が 出ているのですが、確定の瞬間黒になってしまいます。 再インストールしかないでしょうか? ワードパッドではこの現象が起きないのでディスプレイドライバが原因ではないと思います。
427 :
sage :2005/08/08(月) 21:37:15
現在時刻と誕生日との差分(秒単位で)を表示する方法を 教えてください お願いします。ヘルプを観るとDATEDIFを使えばよさそうなのですが 満日数とかで秒単位に使えないのかなという気になってしまいます。 誕生日の時間は0時0分0秒とします。
>>427 日の差の後に現在時刻を加えて表示ではだめなの?
>>428 誕生日が0時ちょうどならそれでいいよな。お前頭良いな。
つーかNOW()-DATE(誕生年,月,日)でいいんとちゃう?
431 :
sage :2005/08/08(月) 22:18:32
>428 ありがとうございます それでやってみようと思います 誕生日を任意の時間にしたときの方法も あれば教えてくださいね >430 その方法ではよくわからない数字が表示されました。おそらく年の部分だと
シリアル値だろ yy-mm/dd-h:mm:ss とかに直して見ろよ
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2002 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 新入社員です。エクセルに関して上司から質問されました。 100店舗(1店舗につき1sheet×100枚)のシートから、 店舗名と売上高の数字を抽出して、1つのブックで 一覧表を作成したいのですが、 一つ一つコピペしていくには手間がかかりすぎる。 簡単に行う方法があれば教えてください。 (手持ちのデータ)A店〜DZ店のうち1sheet A店 15年度 16年度 17年度 1月 20 50 40 ・ ・ 12月 20 25 80 売上高 600 500 700 (求める最終形) 売上高 15年度 16年度 17年度 店名 A店 600 500 700 B店 250 100 345 C店 167 200 456 ・ ・ ・ DZ店 123 345 466
Sheet1〜Sheet100とかSheetA〜SheetCVとか シート名に計算で出せる規則性があるなら、 INDIRECT内にシート名を返す計算式を入れて参照するだけ Sheet1〜Sheet100ならINDIRECT("Sheet"&ROW(A1))とか SheetA〜SheetCVならCHARとかMODとか使って そういった計算で出せる規則性が無いなら、まずはどこかの列にシート名を全て書き出せ 最終的にはその列は非表示にしても問題ない あとはINDIRECTでそのシート名を参照すればよろし
>>433 正規化してDBに移行したほうが良さそうな内容ですね
438 :
名無しさん@そうだ選挙にいこう :2005/08/09(火) 11:49:37
並び替えで863 865 950 951はきちんと大きい順、あるいは 小さい順に並び替えられます。 でも、863−1 865 950−1 951 となると 並び替えがきちんとできません。 なぜですか? 2003を使ってます
>>438 863-1 は文字列
865 は値として扱われるので、
まずは値の表示を統一する事が必要と思います。
表示形式を #0"-"0 とすれば 8631 が 863-1 と表示されます。
ただコレだと 865 の表示には対応できませんが。
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 VBAの記述で選択範囲(Range)を分割して配列に収めたいのですが、 簡単な記述法はないでしょうか。 選択範囲をSelectionとして、 Selection.Addressはたとえば、"R17C13,R25C9:R34C11,C16,R40"として、 これを(Cells(17,13),Range(Cells(25,9),Cells(34,11)),Columns(16),Rows(40)) 上記のように分割して配列に収めたいんです。 よろしくお願いします。
範囲はVariant型にでもぶち込めば 勝手に二次元配列になるぞ つーか、要望はもう少しまとめてから質問に来ようね。
442 :
名無しさん@そうだ選挙にいこう :2005/08/09(火) 15:19:17
>>441 いやそういうことじゃなくて、、、
ちょっと書きかたが悪かったみたいなんで、あきらめます。
諦めたらそこで試合終了ですよ
まあ、質問の仕方というか文章表現力が足り無すぎるからな 何を望んでるのかを文字のみで他人に伝える努力をするより 自分で調べた方が早いだろ
447 :
433 :2005/08/09(火) 19:52:08
433です。仕事終わりまして、 無事完成することができました。 437さんのサンプルは、、本当に感激です。 今後も質問する機会があるやもしれませんが、 よろしくお願いします。
さすが印刷屋って感じに小綺麗に纏まってたな。
>>440 そんなもの配列に格納して何やりたいんだ?
For Each a In Selection.Areasで回せばすむ話じゃないのかい?
450 :
名無しさん@そうだ選挙にいこう :2005/08/09(火) 21:45:41
もしかしたら簡単? A B C D E F 1 梨 柿 桃 苺 瓜 2 青森 20 15 10 9 15 3 山形 30 24 12 15 7 4 山梨 40 15 7 10 12 5 長野 10 30 12 8 20 このような表で、果物ごとの生産量1位の県を表示させる方法はないですか? 最大値そのものを表示させるのは簡単なんですが… lookup系では無理みたいだし、offset系でも、max関数で出した値の 該当セルのアドレスとかを取り出す方法がないと無理みたいなんですが…
>>450 INDEXとMATCHとMAXを使えば簡単だろ?
梨なら
=INDEX(A1:A5,MATCH(MAX(B2:B5),B2:B5,0))
でいいんじゃないのか?
452 :
451 :2005/08/09(火) 21:54:13
上は間違いだったな。 同じデータがある場合に困るか。 オートフィルタとかフィルタオプションだな。
作業セルを使えば、MAXが複数あっても出せますよ。
>>450 B6:B9を選択して
=IF(B2:B5=MAX(B2:B5),ROW($A2:$A5),"")
を入力し、Ctrl+Shift+Enter
B10に
=IF(ISERROR(SMALL(B$6:B$9,ROW($A1))),"",INDEX($A$1:$A$5,SMALL(B$6:B$9,ROW($A1))))
を入力して下方へフィルコピー
あとは上の式を入れた行を非表示にすればいい。MAXの値が複数あっても全て結果を返すはず。
横方向にもフィルコピーできるようにしてあるので、後は適当に参照範囲を書き換えてくれ。
MAX2つまでくらいなら、作業セル無しで返せないこともないけど、たぶん上記下の式の倍以上の長さの式になるし。
オートフィルタで問題ないならそれが一番簡単ですけどね。
454 :
名無しさん@そうだ選挙にいこう :2005/08/09(火) 23:26:13
?? ?? ???? ???? ?????????????? ????????????????? ????????????????? ????????????????? ????????????????? ??????????????? ???????????? ??????????????? ????????????????? ????????????????? これを見ると今年の受験に落ちます。 これを今から1時間以内に3回他スレにコピペすれば100%、受かります。 貼らないと 落 ち ま す
455 :
名無しさん@そうだ選挙にいこう :2005/08/10(水) 00:21:32
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2002 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 質問です A1:A50のセルに適当な数値が入っているとします その中から例えば100以上300以下の数値を抜き出して、その平均を出すには どういう関数を使えばいいですか?
>>455 =(SUMIF(A1:A50,"<=300",A1:A50)-SUMIF(A1:A50,"<100",A1:A50))/(COUNTIF(A1:A50,"<=300")-COUNTIF(A1:A50,"<100"))
AVERAGEIFというのはないから、SUMIF/COUNTIF とする。
○以上△以下の合計や個数は、△以下の分−○未満の分 で求める。
457 :
450 :2005/08/10(水) 06:36:40
サンキュー >>hoge やっぱり簡単じゃないね。 マクロで一旦並べ替えてLOOKUP検索 → 書出し → 次の列へと いう処理をしなければいかんのかと思った。 (実際は200×5000くらいの表でTOP5とか表示させるんで多分重すぎ) この手の需要は結構あると思うんで、 LOOKUPで配列の並べ替えが不要にするか VLOOKUPで検索値を(範囲より−方向で)指定できるようにして欲しいな。
458 :
名無しさん@そうだ選挙にいこう :2005/08/10(水) 10:05:06
>>456 ありがとうです
うわ〜、難しいな・・・
>>458 式は長ったるしいが、最後の1行を読めば
やってることはごく簡単だって解るだろ。
計算方法も計算理論も算数の域を出ていない。
いや、こんなこと書くと456が気分を害するかもしれないけど
決して456のレベルが低いって意味じゃないからね。
ただ、関数や式の内容さえ理解できれば算数レベルの問題だってだけで。
なんて優しいスレなんだここは……
このスレはホント、スキルアップできます。感謝、感謝(−人−)
462 :
名無しさん@そうだ選挙にいこう :2005/08/10(水) 15:42:14
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2002 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 仕事でExcelを使い日報を作成していますが、終了させる時に自動でその日付(今日なら日報_20050810.xls)を付加して保存する事ができませんか
463 :
名無しさん@そうだ選挙にいこう :2005/08/10(水) 15:45:22
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2002 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 仕事でExcelを使い、日報をつけています。 日報をつけ終わり終了する時に、自動で今日の日付をファイル名に付加して保存するような事はできないでしょうか? 今日なら 日報_20050810.xls のような感じです。 ググり方が悪いのか、事例が見つかりません。近い方法でもいいのでご存知の方いらっしゃればご教示願います。
>>457 確かにデータがそれだけあるとこの方法は重いですね。
結果を書き出す位置(例えば5001〜5005行目とか)や、
5位と同じ値が複数あった場合どうするかなどの仕様を固めてくれればマクロ書いてみてもいいですけど。
というかオートフィルタで簡単にトップ5を表示させられるので、それでいいような気もしますが。
関数については細かい不満がある場合、MSに要望出すよりユーザー定義関数を作っちゃうのが一般的ですからね。
特に既存の主要関数の仕様がユーザーの要望で変更されることはまず無いでしょう。
>>463 Private Sub Workbook_BeforeClose(Cancel As Boolean)
If ThisWorkbook.Name = "日報_" & Format(Date, "yyyymmdd") & ".xls" Then
ThisWorkbook.Save
Else
ThisWorkbook.SaveAs ThisWorkbook.Path & "\日報_" & Format(Date, "yyyymmdd") & ".xls"
End If
End Sub
こんな感じですか?
「今日の日付を付加した名前」が現在のブック名と同じなら上書き保存、違えば新たな日付名で保存。
置き場は「ThisWorkbook」なので
>>10 を参考にしてください。
もしかしてファイル名が同じ場合は連番で「ファイル名(2).xls」とかした方が良かったかな?
465 :
名無しさん@そうだ選挙にいこう :2005/08/10(水) 16:28:04
1 OSの種類 .】 MacOSX 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 少し(自動記述を修正する程度の初心者) 【4 VBAでの回答の可否】 可 入力用シートから、データがマッチする行を 入力されている列にかかわらず1ヶ月分拾い出して 他のシートに飛ばし、集計したいと思っています。 入力用のシートは 日付、コード1/貸方科目、コード2/借方科目、金額、内容、数量、担当者名 という感じなのですが 集計用のシートには、例えば「コード1001」という科目が コード1の欄か、コード2のどちらか一方にでも入っている行は全部抜き出して <コード1001 ○○科目△月の集計> <担当者A> 日付、内容、数量、貸し方金額、借り方金額 …(1ヶ月分続く) <担当者B> … という風に集計したいんです。 説明が下手で本当にすみません。どうかご教示ください。
word2002/2003を使用しています。 自分でコマンドバーを新しく作る方法は分かったのですが、 そこにオートシェイプの「直線」と「四角形」のボタンを追加する方法が分かりません。 どなたか教えてください。
VBAスレの767氏ね
>>466 「ユーザー設定」ダイアログを表示した状態で、分類「オートシェイプ」
を選ぶ。後はそこに表示される「直線」だの「四角形」などのボタンを、
自作のツールバーにドラッグ&ドロップ。
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2000,2002 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 AくんBくんCくんそれぞれの年齢など様々なデータがある名簿シートを作成し、 別シートにvlookup関数で、番号を入れると、Aくん何歳とか必要なデータ出るようにしました。 印刷の際にAくんからCくんまでとかBくんからDくんまでとか選択し、 さらに自動に印刷みたいなのはできますか?
>>406 ありがとうございます!亀レスながら・・・でも
ABCのロックを解除してシートの保護をかけても
TABキーでしか移動できないようです?
そこでVBAを調べたところ
Sub 指定セルのみ移動開始()
Application.OnKey "~", "移動設定" 'エンターキーを押した時移動設定のマクロを実行
Application.OnKey "{ENTER}", "移動設定" 'テンキーのエンターキーを押した時実行
End Sub
Sub 移動設定()
With ActiveCell
Select Case .Address(False, False)
Case "B2"
.Offset(1, 2).Select
Case "D3"
.Offset(2, -2).Select
Case "B5"
.Offset(-3, 0).Select
End Select
End With
End Sub
上のようにするとenterでB2→D3→B5そしてB2に戻るようになりました。
後もう少しなんです!
上のコードを「B5でenterを押すとアクティブシートが印刷され、B2に戻る」
のように書き換えるにはどうしたらよいのでしょうか?
そこの師匠!どうかおねがいします!
ありがとうございます! 師匠のおかげで自己解決しましたwww printoutかませるだけだった。。。
472 :
463 :2005/08/11(木) 15:26:51
>>464 hoge師匠
すげーっす。完璧です。これです、これです求めていた物は!
こんな短時間でレス頂けると思っていなかったので御礼が遅れて申し訳ありませんでした。
感謝致します。ありがとうございましたm(_ _)m
> もしかしてファイル名が同じ場合は連番で「ファイル名(2).xls」とかした方が良かったかな?
その日の日報が2つ以上存在する事はありえないのでこのままでOKです。
質問させてください。 シート1に複数の行(行数は固定ではないです)があって、 シート1のA列にシート2のセルB1の文字列があり、 且つシート1のC列に文字列「あ」がある条件を満たす行の数をシート2上でカウントしたいのですが どのような関数を使えばよろしいのでしょうか。 分かりにくいかもしれませんがよろしくお願いいたします。
>>473 IF関数、SUM関数
関数はこれだけ
あとは配列数式で
配列式って何ですか?www
476 :
473 :2005/08/11(木) 18:46:06
>>474 レスありがとうございます。
えっとSUM関数を使用するんですか?COUNTIFとかを使うのかなとも思ってたんですが、
どうもうまくいかなくてorz
もうちょっと具体的に教えていただけると凄い嬉しいのですが(TдT)
477 :
名無しさん@そうだ選挙にいこう :2005/08/11(木) 19:01:44
表計算ソフト総合スレはないようなのでこちらで聞かせてもらいます 表計算ソフトでマルチラインなテキストを扱いやすくする方法を探しています 具体的にはExcelとかCalc(OO)は あ\tい\tう <\tはタブ みたいなデータをペーストすると一発で1列に取り込めるけどマルチラインなテキストでも同じようなことをしたいです 何か改善する方法、可能にするソフト等ありましたらよろしくお願いします
知らない。
>>477 {=SUM(IF((シート1A列範囲=B1)*(シート1C列範囲="あ"),1,0))}
「文字列がある」ではなく「文字列を含む」ならもう一工夫必要だけど形は同じ
IF関数で条件を満たしてる場合に1を返し、それをSUM関数で合計するだけ
つーか、「どのような関数を使えば」と聞くからやる気のある質問者なのかと思い
使用関数のみ書いたが、数式そのものを組んでくれってなら組むよ
その場合「一致」なのか「含む」なのかはっきりしてくれ
>>477 > 一発で1列に取り込めるけど
1列にはならんが
「あ\tい\tう」なら1行3列になるよ
つーか、マルチラインって何?
「マルチライン」という言葉の指す物が多すぎて、
どの意味のことを言ってるのかわからん
具体的にどういう状態の物をペーストしたときにどういう状態にしたいのか
図などを使ってきちんと説明しよう
それ以前にここは表計算ソフトスレじゃないので
Excelで実現する方法が知りたいんじゃなくて
それを実現できるソフトを知りたいんならスレ違い
480 :
473 :2005/08/11(木) 19:43:01
>>479 レスありがとうございます。
条件は「一致」です。
試しにシート2の適当なセルに
=SUM(IF((シート1!A:A=B1)*(シート1!C:C="あ"),1,0))
とやってみたのですがエラーはないのですが0となってしまいカウント出来ていませんでした。
ヘタレで申し訳ないですorz
ちゃんと配列数式として確定した? Ctrl+Shift+Enterで
482 :
477 :2005/08/11(木) 19:48:55
>>479 あ、申し訳ない、間違えました。1列じゃないくて1行です
マルチラインですが「改行を含む」という意味でお願いします
具体的にだと…
ハンドルネーム:
ほげ
E-mailアドレス:
[email protected] 要望:
要望1
要望2
ってなデータを1発で
http://www.uploda.org/file/uporg167813.png.html みたいな形で取り込みたいです
>それ以前にここは表計算ソフトスレじゃないので
>Excelで実現する方法が知りたいんじゃなくて
>それを実現できるソフトを知りたいんならスレ違い
どこで聞けば良いんだ…il||li ○| ̄|_
ソフトウェア板で聞いたら「表計算ソフトの使い方はここじゃねぇ」って言われたし…表計算ソフトスレ見あたらないし
Excelで出来るんならベストだけど出来ない場合は他のソフトを使うことも考慮するって場合どこで聞けば…
>>482 良さそうな板に自分でスレ立てるか、よろずスレに書け
>>482 マクロ使えばExcelで出来ないこともないですけど、規則性がいまいちわかりません。
インデントがあれば、最初は改行、以降はセル内改行、インデントが無ければ改列ってことでいいのかな?
インデントの種類は全角スペース?それともTAB?
張り付け位置はA1基準?アクティブセル基準?
コードが欲しかったら詳しい情報をください。
それとビジネスsoft板の「スレたてるまでもない質問に答えるスレ」は5月末に落ちたままになってるようなので
必要なら勝手に次スレ立てちゃってもいいと思いますよ。特にテンプレも有りませんし。
>>482 普通そういうのはマルチラインなんて言わないぞ
格好付けて横文字使わないで素直に「複数行のテキスト」って言え
まあ、意味的には間違いではないけど普通は言わないわな。 漏れはマルチラインと聞いて、TextBoxコントロールのプロパティを思い浮かべた。
488 :
473 :2005/08/11(木) 20:48:19
>>481 確定したのですが、それだとエラーが返ってくるみたいです。
どうやらシート1!A:Aとシート1!C:Cが参照出来ていないようなんです。
なんでなんでしょうかorz
だから列範囲だろ書いただろ 誰が列そのものを参照しろと言った? A列C列の必要な範囲だけを参照しろ 範囲が変動するなら少し多めにすればいいだけだし
490 :
469 :2005/08/11(木) 20:58:12
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2000,2002 【3 VBAが使えるか .】 すこし 【4 VBAでの回答の可否】 可 前回質問したんですけれども、わかりにくいのか答えがつかなかったため自分である程度ボタンを作りました。 さらに、もう一つ新ボタンを作りました。このボタンに VBAで、セルP3がストップという文字なら、何もしない、プリントという文字があったら、 すでにある別ボタンを押すという機能はどういう風にするのでしょうか? ボタンをいくつも作って回りくどい作り方してるのは分かっていますが、 VBA初めてだし、とりあえず動かす必要がありますので。
>>490 > セルP3がストップという文字なら、何もしない
If Range("P3").Value = "ストップ" Then Exit Sub
を先頭に入れる。
> プリントという文字があったら、すでにある別ボタンを押す
If Range("P3").Value = "プリント" Then Call CommandButton1_Click
全体としては
Select Case Range("P3").Value 'P3セルの値で処理を振り分ける
Case "ストップ"
'"ストップ" なら処理はしない
Case "プリント"
Call CommandButton1_Click '別ボタンのクリックイベントをコールする
Case Else
'"ストップ" でも "プリント" でもない場合の処理
End Select
とした方がいいかな。
492 :
477 :2005/08/11(木) 21:57:30
>>484 解決しました
説明力の低い自分にil||li ○| ̄|_
かなりビジネスソフトじゃない内容含んじゃうけど一連の流れを列挙します
ブラウザからフォームに入力してもらったデータをCGIで処理後Excelでデータベースとしてまとめるのが最終的な目標です
1) ブラウザから入力されたデータをCGIで処理後メールで送信
2) メール受信
3) メールからExcelにデータを取り込み
1行を1フィールドとして列に「ハンドルネーム」「E-mailアドレス」みたいな
http://www.uploda.org/file/uporg167813.png.html こんな感じの表にしたいです。列の要素は実際にはもっと多いです
で、メールからExcelにスムースにデータを入力する方法を探していました
どうやら(↓\tはタブ)
ほげ\
[email protected] \t"要望1
要望2"
とやったのを貼り付けると望むとおりの動作をしてるようです
文字コードによってはExcelがクラッシュするらしいですがとりあえずこれでやってみようと思います
>スレたてるまでもない質問に答えるスレ
どっちみち需要はあると思うので立ててきました
493 :
490 :2005/08/11(木) 22:40:17
すいませんm(_ _)mもうちょっとだけいいですか? select Case Range("P3").Value 'P3セルの値で処理を振り分ける Case "ストップ" Exit Sub'”ストップなら処理はしない。” Case"プリント" Call CommandButton1_Click '別ボタンを押したことにする。 Call CommandButton2_Click 'さらに別ボタンを押したことにする。 「ここで、最初に(Case"ストップ"〜〜)戻りたいのですが・・・つまりストップになるまで続けたいのですが。」 Case Else '"ストップでもプリントでもないときは何もしない。" Exit Sub
>>493 先頭にラベル入れてGoToで戻るなり、再帰呼び出しするなりしてもいいけど
その条件なら
If Range("P3").Value = "プリント" Then
Do
Call CommandButton1_Click
Call CommandButton2_Click
Loop Until Range("P3").Value = "ストップ"
End If
の方がいいかな。内容的には
「P3セルの値が"プリント"のときだけ、P3セルの値が"ストップ"になるまで処理を繰り返す」
というものです。又は下記のようにするとP3セルの値が「"ストップ"になるまで」ではなく
「"プリント"以外になるまで」処理を繰り返すようになります。
Do While Range("P3").Value = "プリント"
Call CommandButton1_Click
Call CommandButton2_Click
Loop
「ここで、最初に(Case"ストップ"〜〜)戻りたい」だと下のコードと同じ動作になりますが
「つまりストップになるまで続けたい」だと上のコードの条件になります。
>>493 で書いてる条件自体が統一されてないので、あとはご自分でご判断ください。
条件が統一されていないって言うのが正直よくわからないんですが、 ある程度わかったと思います。 どうもありがとうございました。
すいません下らない質問なんですが エクセルの計算式にπを使う場合 どう記述したらいいですか?
499 :
:2005/08/12(金) 19:04:31
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2002 【3 VBAが使えるか .】 すこし 【4 VBAでの回答の可否】 可(というか、VBAでw) cell("a1")に x,xxx(xx/xx 14:00)みたいな形で数字が入っています。 この(より前にある数字(金額)だけを取り出したいんで すけど、どう書けばよろしい? ※金額の桁は不定です。
>>499 CLng(Split(Range("A1").Value, "(")(0))
CLng(Left(Range("A1").Value, InStr(1, Range("A1").Value, "(") - 1))
お好きな方をどうぞ。
501 :
499 :2005/08/12(金) 19:31:56
>>500 素早い!有難うございます。助かりましたm(__)m。
502 :
名無しさん@そうだ選挙にいこう :2005/08/13(土) 01:29:22
503 :
名無しさん@そうだ選挙にいこう :2005/08/13(土) 13:00:46
VBAで、カーソルキーを押したときのような動作をしてくれる関数はありませんか? たとえばB1とC1が結合されてる場合 ActiveWorkSheet.Range("A1").Select <現在A1を選択 ActiveWorkSheet.→() <B1:C1を選択 ActiveWorkSheet.→() <D1を選択 という動作をさせたいのですが・・・ ※ 「マクロの記録」でカーソルキーを使ってもRangeでセルを指定するだけなのでわかりませんでした。
Sendkeys
505 :
名無しさん@そうだ選挙にいこう :2005/08/13(土) 13:43:54
503です。 なぜかそこに気づきませんでした。ありがとうございます。
>>505 なぜ気付かなかったのかホントに分からないの?
507 :
名無しさん@そうだ選挙にいこう :2005/08/13(土) 15:09:02
【1 OSの種類 .】 Windows XP 【2 Excelのバージョン 】 Excel 2002 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 今日は泣く泣く土曜日出社中。。 で、コネクタについてトラブルにブチ当たってしまい、初めて ご質問させていただきました。 チャート図のようなものを作っておりまして、大量のオート シェイプ(長方形・テキスト入り)をコネクタでバシバシつない でいたのですが、突如、新たに作ったオートシェイプの オブジェクトにしか "青い点(コネクタが結合できるところ)" が表示されなくなってしまいました。 (最初の方で作っていた長方形のオブジェクトにコネクタを つなげなくなってしまった) これってexcelのバグ??と、悩んでおります。。 いつの間にか設定やプロパティをいじってしまったのでしょうか?? わかる方、いらっしゃいましたら、ご回答よろしくお願い致します<(_ _)>
バグ、不都合関係はMSへ 操作、技術的質問はここで
509 :
507 :2005/08/13(土) 17:09:46
>>508 さん
いえ、そもそもバグなのかどうかの切り分けができず書き込みを
させていただきました。
ちょっとした設定の問題や仕様ということであればそれをお教え
いただきたい次第です。
バグということであれば、MSへ伝えるようにしますです。
バグというか"不都合"だね。 サポートに問い合わせてみな。
すべてのセル内の、特定の文字列の書式をまとめて変更することは出来ますか? その場合どのような操作をすればよいですか?
>>511 編集>置換で「オプション」をクリック。
文字列に「書式」ボタンで変更前、変更後の書式をセットして実行。
ただしこの機能は、Excel2002以降にしかない。2000なら手作業で。
513 :
名無しさん@そうだ選挙にいこう :2005/08/13(土) 22:41:27
お世話になります。 【1 OSの種類 .】 Windows98SE 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 シートが50枚くらいあるファイルがあります。 シートには「0001」〜「0050」といった感じで名前のついています。 各シートの決まった部分(AD11:AD28)を抜き出して以下のような 感じの「集計」シートを作りたいと思っています。 0001 AD11 AD12 AD13・・・ AD27 AD29 ・ ・ 0049 AD11 AD12 AD13・・・ AD27 AD29 0050 AD11 AD12 AD13・・・ AD27 AD29 簡単に行う方法があれば教えてください。 よろしくお願いします。
>>513 空シートを作って末尾(一番右)に置き、以下のマクロを実行
Dim i As Long, j As Long
Application.ScreenUpdating = False
For i = 1 To Worksheets.Count - 1
For j = 1 To 18
Worksheets(Worksheets.Count).Cells(i, j).Value = Worksheets(i).Cells(j + 10, 30).Value
Next j
Next i
Application.ScreenUpdating = True
結果は、末尾に追加した空シートの内容が下図のようになるはず。
空シートを末尾に置かないと、末尾のシートのデータが書き換えられるので注意。
A | B | C 〜 Q | R | S
1 | 01-AD11 01-AD12 01-AD28
2 | 02-AD11 02-AD28
〜
49| 49-AD11 49-AD28
50| 50-AD11 50-AD27 50-AD28
51|
「AD11:AD28」を抜き出しってことで処理してますが、
その図のように27の次が29ならちょっと処理が変わります。
必要なら言ってくれれば修正しますよ。
515 :
513 :2005/08/14(日) 02:05:04
>>514 ありがとうございます。
AD29の件は自分の入力ミスです。
こんな短いコードで出来るのですね。
お願いついでに上記マクロを
以下のように改造していただけないでしょうか。
1.抜き出す範囲を「AD1:AD18」に変更
2.A列にシート名を表示
A | B | C 〜 Q | R | S
1 | 01 01-AD1 01-AD2 01-AD18
2 | 02 02-AD1 02-AD18
〜
49| 49 49-AD1 49-AD18
50| 50 50-AD1 50-AD17 50-AD18
51|
以上、可能であればよろしくお願いします。
>>515 Dim i As Long, j As Long
Application.ScreenUpdating = False
For i = 1 To Worksheets.Count - 1
Worksheets(Worksheets.Count).Cells(i, 1).Value = Worksheets(i).Name
For j = 1 To 18
Worksheets(Worksheets.Count).Cells(i, j + 1).Value = Worksheets(i).Cells(j, 30).Value
Next j
Next i
Application.ScreenUpdating = True
517 :
513 :2005/08/14(日) 02:30:22
>>516 凄い!!
あっというまにできてしまうのですね。
自分の思っていた通りの動作をしてくれました。
これを機に自分でもVBAが書けるように勉強してみます。
どうも、ありがとう御座いました。
>>512 ありがとうございます。2003なんでさっそくやってみます。
【1 OSの種類 .】 Windowsxp 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 あんまり 【4 VBAでの回答の可否】 お願いします ファイルの整理をしていて、その場所をエクセルに記録しているのですが A列にズラーとファイルの名称を書いてて、B列に場所を並べています。 場所はCD-01、CD-02、CD-03という風に羅列しているのですが、毎回CD-0Xとか打ち込むのが面倒くさいので マクロで処理したいのです。 例えばCD-03を選択してマクロボタンを押したらその下のセルにCD-04と記入するようにしたいのです。 自分で下のように作ってみたのですがCD-0Xの0が消えてCD-Xになってしまいます。 何かいい方法ないですか? range(e2)に=MID(E1,4,2) range(e3)に=MID(E1,1,3)の関数を使って ActiveCell.Copy Destination:=Range("e1") tuika1 = Range("e2").Value tuika2 = tuika1 + 1 tuika3 = Range("e3").Value & tuika2 ActiveCell.Offset(1, 0).Value = tuika3
>>519 連番ならドラッグアンドドロップでのフィルコピー
(アクティブセル枠右下の点をD&D)の方が手軽だと思いますが、
マクロでやるならこんな感じかな。
ActiveCell.Offset(1).Value = Left(ActiveCell.Value, 3) & Format(Mid(ActiveCell.Value, 4) + 1, "00")
どうせならこれをダブルクリックイベントに置いた方がいいかも。
計算したり、数値(整数・実数)型変数に代入すると「"01"」という文字列から
「1」という数値に変換されるので、0で桁を揃えたい場合、
Format(数値, "0 x 桁数")
例:"01" + 1 = 2
Format("01" + 1, "00") = 02
Right(String(桁数, "0") & 数値, 桁数)
例:"002" + 10 = 12
Right(String(3, "0") & "002" + 10, 3) = 012
などという方法を使います。(この二つは桁溢れ時の結果が違います。
521 :
名無しさん@そうだ選挙にいこう :2005/08/14(日) 15:15:21
>>520 おおー
一行で出来るんですね
さっそくやってみました。
すごい便利になりました。
ありがとうございます!
csvとリンクさせていたファイルがあったのですが、 そのcsv形式のファイルを別フォルダに入れたのでリンクが変更になり 編集のリンクのリンクの設定を変えようと思ったのですが形式にはxls形式、ロータス形式、 すべてのweb形式の3つのみでリンクを変更することができません。 直接リンクを変えようとしてもエラーがでてしまいます。csvのリンク変更はできないのでしょうか?
リンクは成功しました!!でも、csv形式は元のcsvが開いてないとリンクできないのでしょうか? 開くたびに「更新できないリンクは1つ以上あります」とエラーになりリンクの編集でリンク元を開かないと更新できません。 これが普通なのでしょうか?
525 :
名無しさん@そうだ選挙にいこう :2005/08/15(月) 11:59:18
訳語集みたいなものをテキストファイルからインポートしたものを 並べ替えたいというのが主眼です。 たとえば、certified public accountant 公認会計士 exempt organizations 非課税団体 paperwork reduction act 文書業務削減法 ... と、原文(スペース)、間にスペースを置いて訳語となってます。 これを新たに原文(A)、訳語(B)、コメント(C)としたいのですが、 どのようにすればいいのでしょうか。よろしくお願いします。 ちなみにOS、OFFICEとも2kです。
>>524 うん普通
>>525 1セルに[ certified public accountant 公認会計士 ]って入ってるのを
[ certified public accountant ][ 公認会計士 ]って分けたいってことか?
つーか原文単語間のスペースと、原文訳語間のスペースが同じ物なら
一括で処理するにはVBA必須
VBA使えないならメニューからデータ→区切り位置でスペース分割して
原文単語だけを繋げ直せ
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 初心者 【4 VBAでの回答の可否】 可 初めて質問します。 ユーザフォームで、スピンボタンの上下で対応するテキストボックスの 数字が増減させるのですが、それぞれ40個くらい必要です。 Private Sub SpinButton1_SpinDown() If TextBox1.Text = "" Then TextBox1.Text = "" ElseIf TextBox1.Text <= 1 Then TextBox1.Text = "" ElseIf TextBox1.Text > 1 Then TextBox1.Text = TextBox1.Text - 1 End If TextBox1.SetFocus End Sub ---------------------- Private Sub SpinButton1_SpinUp() If TextBox1 = "" Then TextBox1.Value = 1 ElseIf TextBox1 >= 1 Then TextBox1.Text = TextBox1.Text + 1 End If TextBox1.SetFocus End Sub ↑これの値を変えて40個作ろうと思うのですが、 もっと簡単な方法はありますでしょうか?
>>527 SpinButtonとTextBoxの番号をあわせておけば、
Dim CN As String
CN = Replace(ActiveControl.Name, "SpinButton", "TextBox")
With Controls(CN)
If .Text = "" Then
.Text = ""
ElseIf .Text <= 1 Then
.Text = ""
ElseIf .Text > 1 Then
.Text = .Text - 1
End If
End With
これで中身書き換えずにSpinButton1から40までのイベントプロシージャにコピペでいけるはず。
(spinupも同様)
クリックしたセルに1を表示させるには、どうすれば良いか教えて下さい 凄く初歩的な質問だと思いますがスイマセン
>>527 こんなのはどうでしょうか?
Private Sub SpinDown()
With Controls("TextBox" & Mid(ActiveControl.Name, 11))
.Text = IIf(Val(.Text) <= 1, "", Val(.Text) - 1)
End With
End Sub
Private Sub SpinUp()
With Controls("TextBox" & Mid(ActiveControl.Name, 11))
.Text = IIf(.Text = "", 1, Val(.Text) + 1)
End With
End Sub
>>528 と同じくオブジェクト名末尾の数値を合わせておき、
あとは各コントロールのイベントから上記サブルーチンをコールするだけ
Private Sub SpinButton1_SpinDown()
Call SpinDown
End Sub
Private Sub SpinButton1_SpinUp()
Call SpinUp
End Sub
さらにコードを減らしたい場合、クラスを使って擬似的なコントロール配列を作れば
「SpinButton1_SpinUp〜SpinButton40_SpinUp」までの40のイベントをひとつにまとめられます。
必要ならコード書きますよ。
>>529 イベント的には「クリックしたら」ではないけど、これでどうでしょうか?
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Target.Value = 1
End Sub
531 :
名無しさん@そうだ選挙にいこう :2005/08/15(月) 19:09:25
今時.xxxなんてやる奴のファイルは落とさない方が吉
533 :
531 :2005/08/15(月) 19:25:01
>>532 なんかしらんけど、エクセルのファイルをうpしたら、xxxになってしまったんだよヽ(`Д´)ノ
535 :
531 :2005/08/15(月) 19:45:52
ありがとうございます 解決しました
537 :
499 :2005/08/15(月) 20:17:55
【1 OSの種類 】WindowsXP 【2 Excelのバージョン】Excel2002 【3 VBAが使えるか 】なんとかかんとか 【4 VBAでの回答の可否】 可 シート上にボタンを貼り付けてマクロを起動させるのは出来るんですが ツールバー(って言うんでしたっけ)にボタンを作ってそこからマクロ を起動するとかって出来ます?やり方教えて欲しいんですけど。
538 :
531 :2005/08/15(月) 20:51:26
おれの解決してないよ〜('A`)
ありがとうございます 解決しました
540 :
名無しさん@そうだ選挙にいこう :2005/08/15(月) 22:04:47
質問です 上方向のセルに色を設定して、下段セルに文字を入力すると 上方セルの色書式が自動的に入力セルにコピーされるのですが、 この動作をさせないようにする方法を教えてください。 バージョン:2003SP1 再現方法: セルA3〜A5に緑色の背景色を設定 それぞれA,B,Cなどを入力 一つ飛ばしてA7にEを入力した場合など
541 :
540 :2005/08/15(月) 22:08:29
書き忘れです 【1 OSの種類 .】 WindowsXPHome_SP2 【2 Excelのバージョン 】 Excel2003_SP1 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否
542 :
名無しさん@そうだ選挙にいこう :2005/08/15(月) 22:24:49
【1 OSの種類 .】 Windows9x 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 否 手元に2000がないので教えていただきたいのですが、 2000で、ユーロ記号は標準で表示出来ましたでしょうか? また、標準で表示出来ないときは、アドインがあったと思うのですが、 現在でも公開されてますでしょうか? よろしくお願いいたします。
>>528 >>530 たいへん参考になります。
これから試してみます。
>さらにコードを減らしたい場合、クラスを使って擬似的なコントロール配列を作れば
>「SpinButton1_SpinUp〜SpinButton40_SpinUp」までの40のイベントをひとつにまとめられます。
>必要ならコード書きますよ。
後学のために出来ればお願いします。
>>537 表示→ツールバー→ユーザー設定→コマンド→マクロ→ユーザー設定ボタンをツールバーにドラッグ
で出来る
だれか↑で登録したものの消し方分かりませんか?
Altキーを押しながら、シート上にドラッグ
546 :
名無しさん@そうだ選挙にいこう :2005/08/16(火) 01:59:52
教えて下さい。 Excel2003にてフィルターを使いたいんですけど、英数大文字・小文字の区別が出来ません。 例) ABC とabc・・ 通常ならフィルターで2つ表示されますよね。何故なんでしょうか?
>>540 Ctrlキーを押しながら確定。
設定で無効にする方法は知りません。
>>542 書式 > 挿入 > 記号と特殊文字
でフォントに「Times New Roman」等を選び
種類で「通過記号」を選ぶ。
因みにこれはExcel2000より加わった標準機能です。
Wordには97から付いてましたけどね。
>>546 何故なのかと聞かれれば、そういう仕様だからとしか言えません。
MSのサイトにも
> データが評価されるとき、大文字と小文字は区別されません。
とだけ書いてあって、区別する方法などは載ってないので、
おそらくオプションなどで大小文字を区別する設定も無いと思われます。
回避法としては、VBAを使ってオートフィルタのような機能を自作するとか
小文字 → 半角、大文字 → 全角、と使い分けるとか。
後者の方が断然楽ですね。
>>543 'UserForm1
Private SBControls(1 To 40) As New Class1
Private Sub UserForm_Initialize()
Dim i As Long
For i = 1 To 40
SBControls(i).Item Me.Controls("SpinButton" & i), i
Next i
End Sub
プロジェクトエクスプローラで、右クリック > 挿入 > クラス モジュール
'Class1
Private WithEvents SpinButton As MSForms.SpinButton
Private Index As Long
Public Sub Item(SBControl As MSForms.SpinButton, SBIndex As Long)
Set SpinButton = SBControl
Index = SBIndex
End Sub
Private Sub SpinButton_SpinDown()
With UserForm1.Controls("TextBox" & Index)
.Text = IIf(Val(.Text) <= 1, "", Val(.Text) - 1)
End With
End Sub
Private Sub SpinButton_SpinUp()
With UserForm1.Controls("TextBox" & Index)
.Text = IIf(.Text = "", 1, Val(.Text) + 1)
End With
End Sub
これでSpinButton1〜40のどれを操作しても、クラスモジュールの
SpinButton_SpinDown、SpinButton_SpinUpイベントが動くはず。
>>540 >ヘルプ
>リストの書式および数式の自動適用機能をオンまたはオフにする
ただし解除方法に表記違いがあり、
○ データ範囲の形式および数式を拡張する
× リスト形式および数式を拡張する
俺の環境ではこうなってた。
ヘルプによると上の5セル中3つに同じ書式が指定されてるのが
フラグになってるようなんで、ctrl+でも手作業で解除すんのも
アリなんじゃないか?
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2002 SP3 【3 VBAが使えるか .】 触ったことがあるが使えるとまではいえない 【4 VBAでの回答の可否】 可 住所録の比較をしたいです。 そのファイルは筆王で出力したファイルで No. 名前 フリガナ 住所 電話番号 などの順序でセルに配置されています。 1 名無し ナナシ 2ch 774-774 2つのファイルは2年前に作ったものと今年になってからまた1から作りなおしたものです。 その2つのファイルから2年前にはいて今年にはいない人を抽出したいです。 昔のファイルを群として今のファイルを個として検索するような感じでしょうか? 昔のファイルをシート1に今年のファイルをシート2にコピーして1つのブックにまとめました。 シート3を作ってそこに抽出した結果をコピーする or 昔のファイルのNo.の色を変えるなど よろしくお願いします_/>○
ありがとうございます 解決しました
>>548 ありがとうございます。
今日は一日勉強に励みます。
>>550 シート1のB列のデータの中で、シート2のB列内に存在しないデータがあれば
その行のA列の背景色を赤にするって感じでいいのかな。
Dim LastRow As Long, i As Long, j As Long
With Worksheets("シート2")
LastRow = .Cells(65536, 2).End(xlUp).Row
For i = 1 To Worksheets("シート1").Cells(65536, 2).End(xlUp).Row
For j = 1 To LastRow
If .Cells(j, 2).Value = Worksheets("シート1").Cells(i, 2).Value Then Exit For
Next j
If j = LastRow + 1 Then Worksheets("シート1").Cells(i, 1).Interior.ColorIndex = 38
Next i
End With
住所や電話番号も精査して完全一致以外を列挙したいなら、もうちょっと処理増えますが。
>>530 >
>>527 > こんなのはどうでしょうか?
> Private Sub SpinDown()
> With Controls("TextBox" & Mid(ActiveControl.Name, 11))
> .Text = IIf(Val(.Text) <= 1, "", Val(.Text) - 1)
> End With
> End Sub
> Private Sub SpinUp()
> With Controls("TextBox" & Mid(ActiveControl.Name, 11))
> .Text = IIf(.Text = "", 1, Val(.Text) + 1)
> End With
> End Sub
試してみたのですがうまくいきません。
With Controls("TextBox" & Mid(ActiveControl.Name, 11))
を
With Controls("TextBox1)
にすると動きました。
お手数ですがお願いします。
自分で直せよw
>>555 >>528 や
>>548 も同じですが、この方法はSpinButtonのオブジェクト名がSpinButton1〜40、
TextBoxのオブジェクト名がTextBox1〜40の場合で、なおかつ
対応するSpinButtonとTextBoxのオブジェクト名末尾の番号を揃えた場合を想定してます。
それと.SetFocusを入れた場合は、ボタン押し下げ状態での増減操作で支障が出ます。
一回のクリックすら出来ないなら、オブジェクト名を確認してください。
.SetFocusを入れてるなら外すかそれなりの対策をしてください。
Debug.Print ActiveControl.Name
Debug.Print Mid(ActiveControl.Name, 11)
Debug.Print "TextBox" & Mid(ActiveControl.Name, 11)
などで、それぞれがどういう値を返しているのかを把握すれば、対策法も見えてくると思います。
>>557 解決しました。
テキストボックスとスピンボックスをフレームに入れていたため、
フレームの名前を拾ってきていたようです。
フレームに入れる場合は、この方法は使えないのでしょうか?
>>558 With Controls("TextBox" & Mid(Frame1.ActiveControl.Name, 11))
ActiveControl.Nameの前に、フレームのオブジェクト名を入れてください。
>>559 できました!!!
ありがとうございます。
【1 OSの種類 .】 WindowsXPHome 【2 Excelのバージョン 】 Excel2002 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 長軸半径52、短軸半径42の横長の楕円を、X軸を0.2ずつ区切って、Y座標を求めたいのですが、 Xの値を0.2ずつ入力していくと、非常に厄介になってしまうのですが、0.2ずつ減らしてセルに入力してくれるような方法はないでしょうか。 例としては以下のような感じです X Y 26 y1 25.8 y2 25.6 y3 . . . よろしくお願いいたします
>>561 A2に26、A3に25.8と入力。
A2からA3にドラッグして、A2とA3を選択状態にする。
選択セルの右下の黒い四角を目的個数分下にドラッグ。
563 :
550 :2005/08/16(火) 17:24:54
>>554 hogeさん!問題なく実行できました♪ 本当にありがとうございました_/>○
564 :
540 :2005/08/16(火) 17:37:32
565 :
名無しさん@そうだ選挙にいこう :2005/08/16(火) 22:14:37
【1 OSの種類 .】 WindowsXPHome 【2 Excelのバージョン 】 Excel2002 エクセルで製作した表や図を一太郎にコピーするときはどうすればいいですか? 普通に貼り付けてもうまくいきません(画面がズレる)。
567 :
542 :2005/08/16(火) 23:17:35
>>547 お礼が遅くなりました。
ありがとうございました!!
568 :
名無しさん@そうだ選挙にいこう :2005/08/16(火) 23:54:09
1 OSの種類 .】 Windows xp 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 入力規制について、教えて下さい 競馬の馬柱を自作したいのですが、入力規制でサクサク作業したいのです データ→入力規制→設定→【入力値の種類】ユーザー設定→ ここから数式のところに競馬場名を入れたいのですが 京都・阪神・東京・札幌・函館・・・・ と入力する時文字の間は半角のコンマなのでしょうか?
>>568 【入力値の種類】を、「ユーザー設定」ではなく「リスト」にすれば、
半角「,」区切りで並べた名前が入力候補になりますよ。
ここで半角「,」区切りで並べるよりは、同じシート内のどこかに
競馬場名を入力しておき(1セルに1場)、入力規制の設定画面では
そのセル番地のみを指定するほうをお勧めしますが。
「元の値」欄をクリックしといて、場名のあるセル範囲を選択するだけです。
570 :
565 :2005/08/17(水) 02:03:16
>>566 向こうでも同じように誘導されてしまいましたが…
>>570 それは誘導した奴が間違い。
データの挿入は、貼られる側の問題。
>>535 前に作った株価グラフのマクロの一部
日付・始値・高値・安値・終値という列になっているデータから
With ActiveChart
.SetSourceData Source:= _
Range(MyR.Columns(1), MyR.Columns(5)), _
PlotBy:=xlColumns
中略
With .SeriesCollection(4).Trendlines _
.Add(Type:=xlMovingAvg, Period:=13).Border
.ColorIndex = 10
.Weight = xlHairline
End With
With .SeriesCollection(4).Trendlines _
.Add(Type:=xlMovingAvg, Period:=25).Border
.ColorIndex = 3
.Weight = xlHairline
End With
End With
2つほど回答よろしくお願いします。 1つ目が、アクセスからVBAでエクセルを開く際に、shell関数で任意のブックは開くことが出来たのですが、任意のシートを開くことが出来できません。 ハイパーリンクだとサブで開くことができたのですが、shell関数を使用してのOPENなのでサブアドレスの入れ方が分かりませんでした。 2つ目は他のエクセルを開くことなく内容の変更(詳しい処理内容は他のエクセルのシートをソートしたいのです)はどのようにすればよいのでしょうか? ご教授よろしくお願いします。
1 Shell関数でできることは、コマンドラインからできることだけ それ以上はAccessVBAでExcelオブジェクトを使って処理しろ この方法に付いてはスレ違いなので説明は省く 2 「シートを開かずに」なら、普通に処理すればいいだけ VBAでのソートは別にアクティブシートにしか出来ない訳じゃないから ソート範囲にそのシートを参照するオブジェクトを付加してやれば、 シートを表示させずに普通にソートできる しかし「ブックを開かずに」なら不可能
【1 OSのバージョン】 Windows XP Pro SP2 【2 Excelのバージョン】 Excel 2002 SP3 【3 VBAが使えるか】 使えます 【4 VBAでの回答の可否】 出来れば否 セル結合した際に中央寄せになるのを何とかしたいのですが 何か方法はありませんか? 結合するほとんどの場合が中央寄せを必要としてないので 毎回直すのがとても面倒です。 宜しくお願いします。
>>575 セル結合〜左寄せ という一連の作業のマクロを作る、というのはダメでしょうか?
>>575 自分で「セルを結合して中央揃え」ボタン押してるんじゃないの?
─┴─
← a →
─┬─
って感じのボタン押してるなら、中央揃えになって当然
通常の結合ボタンや書式設定から結合すれば中央揃えにはならない
通常の結合ボタンはユーザー設定 →書式の真ん中あたり
579 :
575 :2005/08/17(水) 16:11:06
>>576 ,577
レスありがとうございます。
結合のみのボタンがあったんですね。
ああ、なんて自分は無知なんだろうorz
すごく助かりました。ありがとうございます!
>>577 ふーん、セル結合のボタンが二つあるって、漏れも知らなかったよ
為になるな、ホント
>>578 人を笑うより何か為になることを教えてくれよ
>>580 んじゃ笑わずに為になることを教えよう
> セル結合のボタンが二つあるって
3つだよ。
横方向に結合ってのもある。
そして結合解除ボタンもある。
こんなソフトを探していますスレからきました。
なんらかのソフトを使い、DVDやらビデオデッキやらパソコンなどの全てのインプットとアウトプットを一望できる
相関図を作ろうとしています。
配線の管理をしたいわけです。
上記のスレッドでコメントを下さった方によると、各デバイスを模した図をエクセル上で移動させると、
デバイス間の「配線を模した矢印」が移動先へ自動追従するようにできるそうですが、どのように操作すればよいのか、
検討がつきません。
アドバイスをいただけないでしょうか?
下のリンクは「手動で作った」イメージ図です(DS8という枠を移動させると、各矢印が自動追尾して角度と長さを変化)
ttp://49uper.com:8080/html/img-s/72126.jpg バージョンはExcel2000になります。
よろしくおねがいします。
Excel 2004 for Macを使っています。 セルを選択すると、そのセルだけ浮き上がったように周りに影が付きますが、 あの影を表示させない方法は有りませんか? windowsと同じように使えないので不便です。 VBAが使えるかどうかはわかりません。
エクセル2003でOSはXP 突然、セルの塗りつぶしが出来なくなってしまいました・・・orz 印刷プレビューには塗りつぶされたセルが見えるのですが 画面上のセルには何も変化がありません どうすれば直るんでしょうか?
HTMLのテーブルなどをコピーして、EXCELにペーストするとテーブルがそのままセルの形として表示されますが、 会社の端末によって、ペーストしてからセルの形になるまでの時間の差が見られます。 数秒程度で表示できるものもあれば、数分掛かる端末もあります。 現在家のEXCELでは数分掛かってしまいます。 単純なHTMLの記述ですと家のEXCELでも数秒で終わるものもあります。 「形式を選択して貼り付け」→「テキスト」 ではテーブルをセルとして表示できないのでこちらは使用は考えていません。 この現象は設定でどうにかなるものなのでしょうか? 【1 OSのバージョン】 Windows XP Home SP2 【2 Excelのバージョン】 Excel 2002 よろしくお願いします
588 :
名無しさん@そうだ選挙にいこう :2005/08/18(木) 00:49:38
【1 OSの種類 .】 Windows2000 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 A B C D E F 1 2 3 4 5 グラフの作り方についてなのですが X軸とY軸にはA〜Fのどれでも選べるように プルダウンメニューが配置してあって 題名の部分にはA〜Fを選びフィルタをかけるような機能が ついていたと思います。 よろしくお願いします。
Excel2000でグループ化設定して折りたたんだままセルのコメントを編集しようとすると コメントボックスがあさっての場所に出現するのは仕様ですか?
590 :
名無しさん@そうだ選挙にいこう :2005/08/18(木) 08:40:19
>>590 F5 SUMIF関数
F13 SUM関数 IF関数 (日付関数)
使う関数はこれだけ
日付関数は使わなくても出せるけど、使った方が便利
数式は自分で組みましょう
>>590 F5 に =SUMIF($C$2:$C$9,E5,$B$2:$B$9)
F13に =SUMIF($A$2:$A$9,E13,$B$2:$B$9)
SUMIF関数
=SUMIF(検索範囲,検索条件,合計範囲)
F5では
検索範囲にC列、検索条件に集計表の項目、合計範囲にB列
の書き方です。
F13では検索範囲をA列にするだけ。
※検索範囲、合計範囲は絶対参照にしておく事。
それか名前の定義を付ける。
593 :
592 :2005/08/18(木) 09:53:16
うゎ、かぶった orz
Excelの行と列がどちらも数字で表示されています。 列は英文字で表示したいのですが、 どうやったらいいのか分かりません。 ご存知の方、教えてください、よろしくお願いします。
初心者が陥りやすい罠
行列のどちらかで絶対参照が必要になると、
行列の両方を絶対参照にしてしまう
単に自分で使うだけならたいして問題ないが、
その式を使ったを他人が使ったり修正したりするときに
ある程度関数式わかってる奴は、絶対参照があれば
「何故絶対参照にしてるんだろう」と考える。
絶対参照が必須の場所で有れば、絶対参照を使う理由もすぐに解るが
必要もないところに絶対参照を使うと混乱を招く可能性がある。
なので「どちらでも良い場合」は相対参照を使うのが基本。
>>592 の場合、列は絶対参照にする必要なし。
いや、煽りじゃなくて真面目な話っす。
597 :
592 :2005/08/18(木) 10:17:48
>>595 >592の式だとF5以下にコピペした時にずれると思ったので
絶対参照にしたのです。
範囲をセルじゃなくC:Cとか列全体にすればよかったのかな?
598 :
592 :2005/08/18(木) 10:20:46
>>595 すいません。「列は」ですね。
やっと理解しました。
>>592 F5のほうはともかく、F13の集計はそのSUMIFではできないのでは?
元の590さんが日付データをどう入力・表示しているかにもよるけど。
(日付の表示形式でコントロールしてるのか、文字列でやっているのか)
少なくともF5と同じ方法では出せないと思いますが。
591さんの
>F13 SUM関数 IF関数 (日付関数)
か、作業列を作ってそこで条件判定させといてからSUMIFじゃないかな。
>>596 もうずっと人大杉
携帯 でのアクセスについて
■とりあえずスレッドを読むには■
人大杉についてもっと詳しく知りたい
お願い。
くれぐれもメールで問い合わせ無いようにして下さい。
> 作業列を作ってそこで条件判定させといてから D2に=MONTH(A2)ってことか? 確かにこれが一番簡単かもな。
602 :
592 :2005/08/18(木) 10:41:19
>>599 実際やってみたらF13も出来ましたよ。
もしかして592って、E12が「年/月」じゃなくて「月/日」だと勘違いしてないか?
>>602 できないと思います。できているなら何かがおかしい。
そのSUMIFで出せるなら、たとえばA2=E13が成立することになるでしょ。
セルの見かけはA2=05/07/31、E13=05/07
通常の日付データならE13が実際には2005/07/31で表示だけ05/07
のときのみ、シリアル値が同じになる可能性があるけど、それ以外はダメ。
双方が文字列だとしたら、余計に"05/07/31"と"05/07"が同じわけがない。
>>596 >>594 です、回答ありがとうございます。
でも
>>4 のスレが見れません。。。
よかったらここでもう一度教えてください。
お願いします。
2chブラウザ入れろと言いたいところだが会社からってこともあるので = FAQ: 列の表示について = Q:列名がA,B,C,D,Eではなく、1,2,3,4,5になってしまいました。 アルファベットに戻すにはどうしたらいいですか? A:ツールメニュー:「オプション」 -「全般」タグで 『R1C1 参照形式を使用する(C)』のチェックを外せば直ります。
>>606 わざわざコピペしてくれてありがとうございました。
609 :
606 :2005/08/18(木) 11:13:16
すいません。訂正します。 >2chブラウザ入れろと言いたいところだが 2chブラウザをご使用くださいとお願いしたいところですが
>>608 いや、
>>592 の式で、「実際やってみたらF13も出来ましたよ。」となるには
そういう勘違いの可能性もあるかなと思って。
普通は
>>604 も説明してるように出来ないはずなので
何か勘違いしてるなら、592の為にも質問者の為にも指摘・訂正してやらにゃあかんからな。
>>609 そういう他演は、お礼レスが付く前にやらなきゃ意味無いよ
タイミング的に恥ずかしすぎ
614 :
592 :2005/08/18(木) 11:30:38
>>603 .610
集計表の「年/月」を「月/日」と勘違いしておりましたです。
もうちっとじっくり見なきゃいけませんね。
失礼しました。
616 :
名無しさん@そうだ選挙にいこう :2005/08/18(木) 11:44:07
A1に商品1、B1に商品2、C1に商品3…商品100という項目があったとして A2に200円、B2に300円、C2に250円…150円とそれぞれの値段があります。 そして別シート(Sheet2)に適当な商品項目を手打ちします。A1に商品5、A2に商品50… そしてそれぞれの商品に対する値段をB列に表示させるというマクロを組みたいのですが どういった記述になりますでしょうか?Sheet2のA列の項目数は毎回変わるので 回数指定もできないので迷っております…ご教示ください…。 初歩的なものだとは思うのですが初めて自分で組むVBAなのでわからない事だらけです…。 なお、申し訳ないのですが2chブラウザを入れられない環境なのでそのまま表示されるように 説明頂けると助かります。
>>614 やっぱりか。ま、ミスは誰にでもあるさ。
んで回答としては、
1) E13にシリアル値で一日の日付で入力(05/07/01、05/08/01、05/09/01、…)
作業セルを使う方法
2) D2に=MONTH(A2)、オートフィルでコピー
3) F13に=SUMIF(D$2:D$9,MONTH(E19),B$2:B$9)
配列数式を使う方法
2) F13に=SUM(IF((A$2:A$9>=E13)*(A$2:A$9<DATE(YEAR(E13),MONTH(E13)+1,1)),B$2:B$9,0))
でCtrl Shiftを押しながらEnter
619 :
590 :2005/08/18(木) 11:48:41
うわっ更新したらこんなにレスが! 年/月はまだ未解決ですがとりあえず項目集計はうまくいきそうです。
(´-`).。oO( どうしてちゃんと回答してる奴に文句言ってるんだろう……。夏…かな? )
622 :
590 :2005/08/18(木) 12:15:48
>>618 書き込み1分差でまたも見落としてしまいました。
作業セルを使う方法を、来年も対応できるよう
作業セルにYEARを加えて使わせていただきます。
623 :
名無しさん@そうだ選挙にいこう :2005/08/18(木) 12:22:48
いや、YEAR入らないか?あれ?上手くいかないぞ。。。
>>622-623 作業セルを使う方法
2) D2に=DATE(YEAR(A2),MONTH(A2),1)、オートフィルでコピー
3) F13に=SUMIF(D$2:D$9,E13,B$2:B$9)
でどーよ?
いけました!ありがとうございます。 簡単な記述ミスでした_/ ̄|○
(´-`).。oO( お礼の直後だと説得力のかけらも無いな……。 )
確かに。 というか、質問者が満足してるのに 質問者でも無い奴が回答もせずにケチつけてるのって惨めだよな。 ヤバッ、これじゃ漏れも惨めな奴らの仲間入りしちゃうぜw
630の1行目、FALSEが返りました。
VBA使う必要あるの? HLOOKUPつかって必要なところまでオートフィルでコピーすればいいじゃん 使わないところは論理式で非表示にすればいいし
>>633 しょちゅう行う作業なので上司からマクロを組んでくれ、と…。
他にも作業が結構あって他の部分はなんとか組めたんですが
ここの部分だけまだ組めないんです…
しょちゅう行う作業なら関数の方がいいじゃん 一度論理式で組んで置けば、A列の項目数に合わせて コピーしたり消したりって作業が必要になるわけでもないし マクロより断然軽いし それでもマクロがいいなら For i = 1 To Cells(65536, 1).End(xlUp).Row が、A列の項目の数だけ処理を繰り返す処理になる 他の部分は自分でできるようだからあとはがんばれ
637 :
名無しさん@そうだ選挙にいこう :2005/08/18(木) 13:29:01
>>635 ありがとうございます!
エクセルファイルを開いたあと、ワンボタンで自動的に作業をして
自動的に保存するところまで作ってほしい、との事だったので…
A1に商品1、B1に商品2、C1に商品3…商品100という項目があったとして
A2に200円、B2に300円、C2に250円…150円とそれぞれの値段があります。
そして別シート(Sheet2)に適当な商品項目を手打ちします。A1に商品5、A2に商品50…
そしてそれぞれの商品に対する値段をB列に表示させるというマクロを組みたいのですが…
ももしよろしければ…
For i = 1 To Cells(65536, 1).End(xlUp).Row
の使い方もちょっとわからなかったので…
本気で何か質問しようとしている人間が >ももしよろしければ… ↑こんなおふざけする?
>>636 っ[辞書]
値を返すのが関数で処理を代行するのがマクロとでも思っておけば微妙にOK
>>636 Excelで関数と言うとVBA関数もあるが、基本的には組み込みのワークシート関数
セル内に記述し、引数や位置情報、システム情報を与えることで戻り値を返すもの
ExcelのマクロはVisual Basic for Application言語で書かれた処理のうち
引数を取らないSubプロシージャのこと
これ以上のことが知りたければググろう
>>637 Sub test()
Dim i As Long
Columns(2).ClearContents
For i = 1 To Cells(65536, 1).End(xlUp).Row
Cells(i, 2).Value = "データ範囲"
Next i
End Sub
空シートのA列の適当な行までなにか文字を入れて、上のマクロを実行してみな
あとは説明不要でしょ
644 :
637 :2005/08/18(木) 13:42:42
>>638 わからないので具体的な使い方を教えて頂けるとありがたいです。
言葉足らずですいません。
>>639 全然ふざけてないですよ。
上記の「マクロを組みたいのですが… も、もしよろしければ教えて頂たいな」
という意味です。
全体的に言葉足らずだったみたいですね。すいませんでした。
>>641 >セル内に記述し、引数や位置情報、システム情報を与えることで戻り値を返すもの
え?そんなことできるの?できれば超簡単なサンプルを1つ
お願いします。
>>644 >も、もしよろしければ教えて頂たいな
依然としてふざけているようですし、日本語にもなっていません。
あなたがふざけていないと言っても他人にふざけていると
思われては意味がありません。学生のうちに直しましょう。
>>642 どうやって実行すればよいのでしょうか。
648 :
637 :2005/08/18(木) 13:47:50
>>642 どうもありがとうございました!!
これを元に研究すればなんとかなりそうです!!
ほんと助かりましたー
649 :
637 :2005/08/18(木) 13:51:35
>>645 A1に10、B1に20、C1に=SUM(A1,B1)
引数がA1=10とB1=20、戻り値が30
C3に=ROW()
位置情報がC3(引数を省略した場合自動で与えられる)、戻り値が3
A1に=TODAY()
システム情報が今日の日付(自動で与えられる)、戻り値がシステムに設定されてるその日の日付シリアル値
なんか、知りたいわけでもないのに野次で聞き返してる子が居るような気がする
ここは夏休みの日記帳ですね
どこの板もガキがうざいよぅ… 夏休みのばかー。
>>654 バーカ。お前らが相手しなきゃすぐ終わるのによ。学習しろ。
相手になんかしてないよぅ。 ただどこの板見ても厨な書き込みが多いよぅ〜。ってこと。 9月までは来ないようにするよ。
とか書きつつリロード連打。これが夏休みの正しい過ごし方。
あれ?もう9月なの? まだ8月半ばだと思ったんだが それとも捨て台詞を吐かないと去ることも出来ないのかな? 夏休みですねぇ
660 :
名無しさん@そうだ選挙にいこう :2005/08/18(木) 16:53:31
マクロを勉強し始めて自動記録を元に色々いじっているのですが オートフィルタで絞込みの値をセルの値から参照したいと思っています。 例えばSheet1のA1を参照したい場合は下の「????」の部分はどういった記述になるのでしょうか? Selection.AutoFilter Selection.AutoFilter Field:=1, Criteria1:="????"
Range("A1").Value
>>660 これは正しい質問。何をしたくて何を教えてほしいのかが分かりやすい。
態度も悪くない。
663 :
660 :2005/08/18(木) 17:05:26
>>661 ありがとうございます。
シート1の選択も含める場合
Selection.AutoFilter Field:=1, Criteria1:="Worksheets("sheet1").Range("A1").value"
であってますか?
オートフィルタはかかったんですがシート1のA1の値が表示されずに
全て空白セルになってしまいました。
どこがいけないのでしょうか?
664 :
660 :2005/08/18(木) 17:07:17
あ。ダブルクォーテーションがいらなかったんですね。 自己解決しました。ありがとうございました。
メニューからファイルの挿入で画像を貼り込んでいるのですが、 そのコマンドに対応するショートカットなどはありませんでしょうか? 手数が減れば他の方法でも構いません。
666 :
名無しさん@そうだ選挙にいこう :2005/08/18(木) 19:39:34
>>665 表示→ツールバー→図
誰か挿入した図の削除の方法しりませんか?
>>666 図をクリックして選択状態にしといてキーボードの「Delete」
−ではあかんの?
>>665 666の言う「図」ツールバーでもええし、Excel2002以降なら、
「図形描画」ツールバーにも同じ「図をファイルから挿入」ボタンがある。
またはツール→ユーザー設定→コマンドで、分類「挿入」の中に
ある「ファイルから」ボタンを標準ツールバーにドラッグ&ドロップしとく。
669 :
名無しさん@そうだ選挙にいこう :2005/08/18(木) 20:28:30
>>667 選択状態に出来なくて・・・
よく調べたらシートが保護状態になってました。
アリガト!(´▽`)
670 :
665 :2005/08/18(木) 21:47:03
>>670 日本語がなっていないという意味ですが?
>>672 あんた誰?勝手に俺に向けてレスしないでくれ。面倒くさい。
674 :
名無しさん@そうだ選挙にいこう :2005/08/18(木) 22:33:17
レスは許可制です
ママ以外は相手しないように
>>676 あんた誰?勝手に俺に向けてレスしないでくれ。面倒くさい。
>>677 勝手にレスしてはいけない理由が書かれていないので無意味ですね。
ご苦労様です。
679 :
名無しさん@そうだ選挙にいこう :2005/08/19(金) 00:47:49
マザコンは、ママ以外の人が相手すると パニックを起こすそうな
680 :
名無しさん@そうだ選挙にいこう :2005/08/19(金) 01:22:16
すみません、エクセルで00とか01という値を入力したいときはどうすればいいんですか? なんか、勝手に0や1になってしまうんですが・・・・
・表示形式→文字列 ・'00 ・="00"
682 :
名無しさん@そうだ選挙にいこう :2005/08/19(金) 02:44:26
683 :
名無しさん@そうだ選挙にいこう :2005/08/19(金) 03:30:34
★★★ また韓国、意図的な、でっち上げ反日報道 ★★★ 韓国の大手テレビ局が8月15日夜のニュース番組で報道した“旧日本軍による生体実験”と称する映像が、実は中国映画の盗用でっち上げだった。 韓国のマスコミは反日キャンペーンで、この種のでっち上げ“歴史歪曲(わいきょく)”をよく行うが、今回の事件で 「日本糾弾ならウソも平気」 といった腐敗体質が改めて確認された。 番組では戦前、旧日本軍の細菌戦研究731部隊の生体実験の様子を「白黒の記録フィルム風」に紹介したが、視聴者から「映画の場面と同じだ」と抗議の声が上がり、悪質なでっち上げが露呈した。 この中国映画はカラー作品だが、テレビでは本物に見せかけるために「白黒」に変えられており、意図的なでっち上げであることは明白。 日本の民主党(岡田党首)は、日本国内に数十万人いる反日的な在日韓国・朝鮮人に日本の選挙権を与え、民主党に投票させようと画策している。 在日韓国・朝鮮人の大部分は、戦後のドサクサで密入国した不法滞在者とその子孫だが、強制連行されたとウソをついて被害者のフリをし、日本国内に居座って毎月二十数万円の生活保護をもらい、遊んで暮らしている。
>>685 ふぅ、具体的に書かないと分からないのか・・・
「ありませんでしょうか?」の部分と最後の一文が丸々ダメなんですよ。
>お前のカキコは主語と述語が対応してない。
どれが主語でどれが述語ですか?
おそらく間違っていると思いますが、あなたが精一杯の知恵を
絞って理解した結果を教えてくだされば結構です。
明らかに
>>685 が粘着しているせいで終わらない。
放置すればいいだけなのに。
689 :
名無しさん@そうだ選挙にいこう :2005/08/19(金) 10:09:23
すみません、教えてください。
690 :
名無しさん@そうだ選挙にいこう :2005/08/19(金) 10:12:10
↑途中で書き込んでしまいました、すみません。 質問なんですが、任意のセルを点滅させるって出来ますでしょうか? そもそもそんなことってできるんでしょうか。 vba使えばできるんでしょうか? よろしくご教示下さい。
691 :
名無しさん@そうだ選挙にいこう :2005/08/19(金) 10:17:50
自己解決しました。
ちなみに自己解決はしてません。 ループまわすわけにもいかないですし。 ブックを開いたときのイベントとってちょっとの間点滅させようかと思いますが、なにかよいお知恵がありましたらお教え下さい。 目的は相手の注意を惹くためです、いつまでたっても数字が未入力のままなので。
>>693 ものすごいグロテスクな色を付けるとか吹き出しを付けるとか
メッセージボックスで「〜のセルに入力してください」と書くとか。
>>694 メッセージボックスはいいですね!
それでいこうと思います。
思いつきませんでしたorz
ありがとうございました。
VBA で質問です。 ↑レスの点滅と似ていますが、 本来はタイマ割り込みイベントで処理をしたいのですが、 ループとウェイトで擬似的に実現するしか無いのでしょうか。 分解能は1秒以上を考えています。
>>696 なんで質問するのに無礼な態度を取るのかを
まず説明してくれ。
>>697 どこがどう無礼なのか教えていただきたい。
理解できれば、詫びるのにやぶさかでは有りません。
Application.OnTime
>>699 ありがとうございました。今Helpで確認しました。
どうも VB 系慣れてないもので助かりました。
>詫びるのにやぶさかでは有りません。 テラワロス
>>698 マジですか・・・
>>697 に変わって説明してみます。
「実現するしか無いのでしょうか」にはVBAに対する不満が感じ取れます。
実際不満をお持ちですよね。
それをなぜここにぶつけるのですか?ここはマイクロソフトのサポートセンターでは
ないのですよ。
ここで書くなら、「私はこう考えています。他にいい方法があれば教えてください」
というスタンスで書くべきです。
704 :
702 :2005/08/19(金) 12:08:46
すいません。訂正します。 「書くべきです」→「書くべきだと私は思います」
705 :
697 :2005/08/19(金) 12:09:56
概ねそんな感じ。別に理解できない奴に無理に分からせようとも思わんけどね。 ただ、本人にそのつもりがなくても相手にそう思われたらビジネスの世界では ダメ、とだけは捨て台詞として書いておく。
すごく・・・慇懃無礼なり・・・
2chで言葉遣いが悪いとか面白いなこのスレ
話の流れをまとめると 自分で問題解決できないウジ虫はモニタの前で全裸になって土下座しつつ書き込めよwwwwwwwwwwwwww って感じか。
>590 F13の件 遅ればせながら、私案を思案しました。 作業セルD2以下に、 =TEXT(A2,"yy/mm") F13以下に ’05/07 シリアル値を文字化しておいて、あとはSUMIF。
>>713 >>618 ,
>>624 の「作業セルを使う方法」と内容的には変わらないじゃん
しかもF13以下じゃなくてE13以下だし、
>>618 のやり方だとオートフィルで05/12→06/01になるけど、
>>713 のやり方だと05/12→05/13になっちゃうし。
範囲指定したセルの高さを一気に変えるにはどうしたらいいですか? 出先で携帯のネットしか使えないし、ヘルプがインストールされてないパソコンで分かんないんです。
>>716 セルっつーか、行だろ?
書式→行→高さ じゃダメなんか?
>>715 まあまあ、それが彼が長時間思案した私案なんだから
いじめてやるなよ。
719 :
名無しさん@そうだ選挙にいこう :2005/08/19(金) 17:10:21
質問です。 【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2000 Excelからファイルを開くときのダイアログで、 ファイル一覧をだして、名前順に並べ替えても正しい順番になりません。 調べてみると、MS-DOSファイル名の順番にソートされてるようなのですが これを短縮されたファイル名ではなく、長いファイル名?順に 並べ変わるようにするにはどうしたらいいのでしょうか? aaaaaaaaaaaaaa.xls(ms-dosファイル名:aaaa_002.xls) bbbbbbbbbbbbbb.xls(ms-dosファイル名:aaaa_001.xls) cccccccccccccc.xls(ms-dosファイル名:aaaa_003.xls) ↑だと、 bbbbbbbbbbbbbb.xls(ms-dosファイル名:aaaa_001.xls) aaaaaaaaaaaaaa.xls(ms-dosファイル名:aaaa_002.xls) cccccccccccccc.xls(ms-dosファイル名:aaaa_003.xls) のようになってしまう。
>>719 Excel独自のコモンダイアログを使う以上、どうにもならない
どうしてもどうにかしたいなら自分でコモンダイアログを呼べ
やり方はググって調べよう
>>720 レスありがとうございます。
そこまではできないです・・・('A`)
同じような環境でもPCによってはちゃんと並ぶんですけど、
何に依存してるんだろ・・・Updateすれば治るのかなぁ
723 :
719 :2005/08/19(金) 18:08:27
無いよ
725 :
719 :2005/08/19(金) 18:18:47
ツール>オプション>全般>Webオプション>ファイル>長いファイル名を使用する にチェックいれたらできますた ・・・と書く用意までしたのにだめですた。 既にチェックがついてた・・・。
すいません、ここでよろしいかどうかわからなかったのですが、 質問させていただきます。 DBソフトに外部CSVデータを入力する場合など、 これまではxls形式ファイルをEXCELでデータ加工後、 『名前を付けて保存→CSV形式で保存』というような 手順で作業しておりました。 今日も同じような作業をしていたところ、 DBソフトでインプットエラーが発生し、 原因を探ってみたところ、 プライマリキー(16桁)が何故かCSVで保存しファイルを閉じた後の時点で、 7桁目から後が0の羅列になっていたのです。 (例:1234567890123456→123456700000000) 非常に困っております。 解決策はありますでしょうか? よろしくお願いいたします。
>>728 >CSVで保存しファイルを閉じた後の時点で
>>727 単に表示形式を「数値」とかにすればよいだけなのでは?
732 :
名無しさん@そうだ選挙にいこう :2005/08/19(金) 22:32:18
【1 OSの種類】 Windows xp pro 【2 Excelのバージョン】 Excel 2003 【3 VBAが使えるか】 はい 【4 VBAでの回答の可否】 可 Q. 設定した範囲のセルから、条件に一致したセル内容を VBAを使ってまとめて指定場所へコピーする方法を教えて下さい。 (Excel2003環境です) A B 1 * 新宿 2 代々木 3 4 * 渋谷 5 * 恵比寿 とある場合に、A列に“*”がある場合だけ指定場所へコピーしたいのです。 そして、指定場所へコピーする時に、下記の様に上から順に詰めてコピーさせたいのです。 A B 1 新宿 2 渋谷 3 恵比寿 4 5 行数が多いので処理を軽くする為に、行ごとに判定して実行するのでは無く、 例えば1〜500行の範囲をまとめて実行する事は出来ますか?
>>732 WinXP、Excel2003が動くPCなら、
500行を1行ずつ条件判断しても0.1も掛からないと思うが
まとめてやるならソート兼用するしか無いが、
処理後元に戻すなら逆に遅くなると思う。
「A列に“*”がある場合だけ」は
For NextとIf使えば出来る。
>>642 を参考にするといいかも。
ただしそのまま動かすとB列消えるので注意。
あとはループカウンタの他に、条件一致の場合のみ増やすカウンタを入れて
そのカウンタの位置に結果を入れていけば上詰めでデータ抽出できる。
734 :
732 :2005/08/19(金) 23:00:58
>>733 そんなに処理が早いものだったんですか。
ここでPC環境を久しぶりに入れ替えたんで、以前の状況で考えていました。
レスありがとうございました。マクロ組んでみます。
【1 OSの種類 .】 Windows2000SP4 【2 Excelのバージョン 】 Excel2000/2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 50%くらいの表示にて常用したいシートがあります。 複数の人間で共用なので、誤入力防止のためドロップダウンによる選択にしたいのですが、 ドロップダウンメニューのサイズがやたらと小さくなってしまい、可読性に難ありです。 ドロップダウンメニューの(フォント)サイズを任意に変えるにはどうしたらいいのでしょうか?
【1 OSの種類 .】 Windows xp 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 すみません教えて下さい 表現が難しいのですが 右上の【最小化】【最大化】【閉じる】ボタンが無くなりました エクセル自体のそのボタンは有るのですが、そのワークシート(って言うんですよね?)だけが表示されないのです。 他のワークシートを開くと【最小化】【最大化】【閉じる】はエクセル全体のものと、 ワークシートのものが二段で表示されているのですが・・・ よろしくお願いします
>>735 入力規則、及びフォームのドロップダウンメニュー(コンボボックス)は、
基本的にフォントサイズを任意に変更できません。
レジストリを書き換えることで一応変更は出来ますが、他のメニューなどの文字も
大きくなってしまうので、ちょっと大きくしたい程度ならいいですが、
50%の状態で100%の時と同じ程度の大きさにすると、他の部分のフォントサイズが
大きくなりすぎますし、複数のPCで使うようなのでこの方法は実用性に欠けると思います。
なのでフォントサイズを変更したければ、コントロールのコンボボックスを使いましょう。
こちらはFontプロパティで任意のフォントサイズを選択できます。
但し、VBAを使わずにコントロールのコンボボックスを使うには、
表示するリストをシートに書き出しておく必要があります。
リストに表示する内容は、ListFillRangeプロパティにセルの参照で入力します。
更にVBAを使わずにコンボボックスの値を得るにはLinkedCellプロパティを使います。
こちらもセルの参照を入力してください。
>>736 ブックの保護で、「ウィンドウ」が保護対象になってるブックは、
ブックウィンドウのコントロールボタンが表示されません。
ブックが保護されてないか確認してみてください。
738 :
名無しさん@そうだ選挙にいこう :2005/08/20(土) 13:49:09
【1 OSの種類 .】 Windows xp 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 初学者です 【4 VBAでの回答の可否】 可 すみません、教えてください。 ボタン1を押したらプロシージャAのdo loop untilが終わるようにしたいのですが、よく分かりません。詳細を以下に書きます。 ブックを開いたらボタンが1個あるフォーム(モーダル)が開きます。 フォーム1に do loop until があるプロシージャA(module1に書きました)を呼んでいます。 で、ボタン1を押したらAが終了して、プロシージャB(セルA1をアクティブにします。フォームに記述予定)が実行されフォームも消えてセルに文字を書き込める状態にしたいのですが、ここで躓いています。 Aのloopの条件を「ボタン1が押されるまで」にしたいのですがよく分かっていないので、恥ずかしいのですが、ボタン1のコードに宣言部でPublic strState As Stringとして Sub CommandButton1_Click() strState = "clicked" Unload UserForm1 End Sub としてAの条件をuntil strState = "clicked"としています。 で実行すると、ブックとともに開くフォームのボタンを押すと 「コンパイル エラー:変数が定義されていません。」とでて、VBEが開き、A()の部分が黄色くなり、strStateが青く反転しています。イミディエイトで? strStateとすると一行改行されるだけで何も出てきません。 本当はもっとスマートにボタンが押されたらAが終わるように出来るのでしょうが、皆目わかりません。until条件が○○=true等となる気が漠然としているのですが。又は記述場所が違うのでしょうか。 あとBはフォームが閉じる寸前にやる処理として書く予定です。 ご教示ください。よろしくお願いします。
> ▼━質問時の注意━━━━━━━━━━━━━━━━━━━━ > ・ VBAコードを貼る場合は、部分的に伏せたり省略したりせずに全て貼りましょう。
【1 OSの種類 .】 WindowsXPSP2 【2 Excelのバージョン 】 Excel2003 ある範囲を”data” のように名前をつけて 関数内で範囲指定するときに”data”を打ち込めばその範囲を 参照してくれるようにする方法ってどうすればいんんでしたっけ?
事故解決しますた 挿入→名前→定義でしたね
【1 OSの種類 .】 WindowsXPSP2 【2 Excelのバージョン 】 Excel2003 お世話になりますm(- -)m セルから動画ファイルにハイパーリンクを貼っているのですが、 クリックするたびにウィルス云々の警告がでます 拡張子をWMVやAVIではなく、WVMFILEというものに変えている ため(わけあってWMVやAVIは使えない)と思うのですが 特定の拡張子で警告を出さなくする方法はありませんでしょうか? 知恵をお貸しくださいませ、よろしくお願いいたします
747 :
GiantLeaves ◆6fN.Sojv5w :2005/08/20(土) 21:18:38
(VBAの話題可。この質問でVBAは無いだろうけれど。) WindowsXPでどうしてMSExcelが入っていないのか、誰か教えてください。 再インストールCDのどこかに入っているのでしょうか?
すみません、質問です。 プリンターが装着されてない状態でプレビュー機能を 使う方法ってないでしょうか。 お願いします。
>>747 WindowsXPにExcelを含めてしまったら、マイクロソフトは
痛い目にあうでしょう。
750 :
GiantLeaves ◆6fN.Sojv5w :2005/08/20(土) 21:31:48
talk:
>>748 印刷コマンドを押せばいいのではないか?ドライバがインストールされていれば問題ないと思っているが。
751 :
GiantLeaves ◆6fN.Sojv5w :2005/08/20(土) 21:33:25
(WindowsXP使用, VBAの話題可。)
talk:
>>749 別のノートパソコンには確かにExcelがインストールされているのを見たのですが。
縦100×横100のセルに記入された値の重複チェックってできないでしょうか。 条件付き書式を使ったものはググったら見つけることが出来たのですが、 行単位でしかチェックすることができず、複数にまたがるものはできませんでした。 よろしくお願いします。 【1 OSの種類 .】 Windows2000 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 できれば否
755 :
735 :2005/08/20(土) 23:15:01
>>737 なるほど。コンボボックスから編集しないといけないんですね。
面倒ではありますが、一度テンプレさえ作ってしまえれば参照先のセル内容の編集くらいしか
しなくて済むので、通常のドロップダウンメニューよりも(他の人間は)楽なのかも知れません。
明日にでも早速試してみます。
ご回答ありがとうございました。
> talk:>>*** > torque:>>*** (´-`).。oO( この使い方が間違いであることに、この子は気付いてるのだろうか…? )
757 :
名無しさん@そうだ選挙にいこう :2005/08/21(日) 05:07:27
Windows2000、Excel2002、VBA否 質問です。 A列に数値が入っています。 A列から50<100の数値を抜き出して、最大値を求めるには どのような式になるでしょうか?
>>757 作業列を作って、そこにIF関数、AND関数で>50、<100の値を抜き出し
その範囲からMAX関数で最大値を求める。
配列数式使えるなら、作業セル使わずに配列数式でやってもいいけど。
759 :
736 :2005/08/21(日) 06:34:04
>>737 遅くなりました
ありがとうございました
オートコンプリート機能を同列ではなく同行にも使うことは出来ますか?
できません
>>763 データ範囲と隣接する同列のセルでしか動作しない仕様だから
裏付けのある明確な仕様説明が欲しい奴はMSに聞け ここはそういうのを説明するスレじゃない
(´-`).。oO( この子、どうしたんだろう…? )
知ったかってどれのこと?
>>762 や
>>764 は知ったかじゃなくて正しい回答してるもんね。
関係ないので題名は伏せるが、うちの本にも表現は違うけど
>>764 と同じようなことが書いてある。
間違った事をさも正しいかのように言ってるならまだしも
正しい事を言ってる奴は知ったかとは言わないよね。
775 :
名無しさん@そうだ選挙にいこう :2005/08/21(日) 16:17:20
質問です OS XP バージョン 2002 VBAを使って解決したい セルに人の名前が入っていて姓と名のあいだに空白が あります。 この空白を境にして姓だけ、または名だけを残して 残りを削除するにはどのようにしたらいいか教えて ください。 例) 「きむら たくや」 を 「きむら」または「たくや」とする お願いします。
>>773 正しさの根拠を聞かれて分からないから逆ギレしているようにしか見えませんが?
>>775 MsgBox Split("きむら たくや", " ")(0)
MsgBox Split("きむら たくや", " ")(1)
結果は実行してみれば分かると思います。
また、A1に「きむら たくや」と入力し
Range("B1:C1").Value = Split(Range("A1").Value, " ")
を実行するとB1が「きむら」、C1が「たくや」になります。
A1に「きむら」だけ残したい場合は
Range("A1").Value = Split(Range("A1").Value, " ")(0)
Left、MID、InStrなどの文字列操作関数を使っても出せますが
分割はSplit関数使った方が楽なので。
>>762 の「できません」は、
>>762 の知識では「できません」なのか、仕様上「できません」
なのか区別ができない。そこで
>>763 が根拠を教えて欲しいと思って聞いたのに
勝手に挑発されたと思って
>>762 が暴走したってとこだな。
>>764 の「動作しない」も同じ。
>>764 の知識範囲で「動作しない」のか、仕様上「動作しない」のか
区別ができないのでソースを聞いたところ、挑発されたと思って
勝手にキレて
>>764 が暴走したってとこだな。
>>773 「仕様」という言葉を安易に使いすぎなのでは?
自分の同僚とかもそうなんですが。
「やってみたらこうなりました」っていうのは仕様とは違いますよね。
暑苦しい会話をいつまで続ける気ですか?
783 :
757 :2005/08/21(日) 17:04:57
>>758 配列数式は使えないので作業列を作りました。
すばやい解答ありがとうございました!
「できない」の根拠なんて、正確にはExcelの開発陣しか言えませんが。 解説サイトや本で「できない」とされてるものも、その記事を書いた人が知らないだけかも知れないし 通説的に「できない」とされてることも、レジストリや構成ファイルを直接弄ることで出来るようになるかもしれない。 開発陣なら「実装してないから出来ない」と根拠を提示出来るが、 開発陣だって全員が全てを把握してるとは思えないし、ましてやそれ以外の人は どんなにExcelに精通していてもMSが見解を出しているもの以外に関しては根拠の提示なんて無理。 悪魔の証明のように「ない」の証明が困難なことは知られてるし、そんなこと考えるまでもなく解りそうなもんだが。
>>763 ヘルプで検索してみた。
トラブルシューティング:データの入力
オートコンプリートが行われない
オートコンプリートの対象値
アクティブ セルを含む列に入力されている値が、オートコンプリートの対象になります。
列ではなく行に入力されている値が一致していても、オートコンプリートは行われません。
だそうな。
事の発端は、………763
>>785 >「できない」の根拠なんて、正確にはExcelの開発陣しか言えませんが。
なんだ。自分で分かってるんじゃん。つまり君には答えられない
質問だったんだよね。じゃあなんで答えたの?
それを「知ったかぶり」っていうんだよ。
ま、分かってるみたいだからいいけど。
793 :
名無しさん@そうだ選挙にいこう :2005/08/21(日) 17:18:30
質問です OS 2000 バージョン XP VBAを使って解決したい A列に大量の数値があるんですが、それを印刷したいと思っています。 ですが、そのままだと紙の無駄なので、ある行で切り取り、B列に貼り付け、切り取り、C列に貼り付け・・・・ としたいのですが、VBAの本を読んでもだめでした・・・ お願いします。
794 :
775 :2005/08/21(日) 17:48:01
>777 ありがとうございました。 できました! 追加になりますがまた質問させてください。 777氏が書いて下さったやり方だと連続処理ができません。 名前が何行分もある場合はセルの指定をどのように したらよいでしょうか。 私がやってみたのは range(activecell)=split(range(activecell.offset(0,-1)))… のようなやり方です。 できれば777氏のようにアクティブセルの姓名を その右隣りとさらにその右隣りに分割できれば最高 です。 何度も申し訳ないですが、お願いします。
>>793 Const BottomRow As Long = 10 '折り返しの行数
Dim Temp As Variant, i As Long
Temp = Range(Cells(1, 1).Address, Cells(Cells(65536, 1).End(xlUp).Row, 1).Address)
For i = BottomRow + 1 To UBound(Temp)
Cells((i - 1) Mod BottomRow + 1, (i - 1) \ BottomRow + 1).Value = Temp(i, 1)
Next i
Range(Cells(BottomRow + 1, 1).Address, Cells(Cells(65536, 1).End(xlUp).Row, 1).Address).ClearContents
折り返しの行数で 3 を指定すれば
1 1 4 7 10
2 2 5 8
3 → 3 6 9
4
:
10
となるはず。
>>794 行に対して処理したいなら
Dim i As Long
For i = 1 To Cells(65536, 1).End(xlUp).Row
Range(Cells(i, 2).Address, Cells(i, 3).Address).Value = Split(Cells(i, 1).Value, " ")
Next i
A列が元データ、B列が分割した左(氏)、C列が分割した右(名)
アクティブセルに対して処理したいなら
Range(ActiveCell.Offset(0, 1).Address, ActiveCell.Offset(0, 2).Address).Value = Split(ActiveCell.Value, " ")
元データのセルをアクティブにして実行すると、ひとつ右に分割した左(氏)、ふたつ右に分割した右(名)
>>795 ウォォ・・・ こうやってやるのか
VBAの本を読みながら勉強させてもらってます。
ありがとうございました。
797 :
775 :2005/08/21(日) 18:25:29
795 すご…。 見たことのない命令がたくさん出てきて勉強になります。 本当に助かりました。ありがとうございます!
798 :
GiantLeaves ◆6fN.Sojv5w :2005/08/21(日) 18:26:25
>>798 これ意味分からないんだけど、なんなの?talkとかtorqueとか
>>799 返信内容を位置付けるものなんだが、根本的に使い方を間違えちゃってる。
801 :
名無しさん@そうだ選挙にいこう :2005/08/21(日) 19:21:05
【1 OSの種類 .】 Windows2000 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 A1からA100 までに数値が入力されていたり、なにも入力されて いなかったりします。 数値が入力されているセルの1番目から6番目までを合算する 数式をA101に。 数値が入力されているセルの7番目から12番目までを合算する 数式をA102に・・・以下同様 という風にするにはどうしたらよいでしょうか
803 :
名無しさん@そうだ選挙にいこう :2005/08/21(日) 19:56:00
>>801 自分で計算してA101に打ち込む
繰り返す。
>>801 B1=IF(ISBLANK(A1),"",ROW())
C1=SMALL(B$1:B$100,ROW())
D1=IF(ISNUMBER(C1),INDEX(A$1:A$100,C1,1),"")
B1:D1を選択して、100行目までフィルコピー
B:D列を非表示
A101=SUM(D1:D6)
A102=SUM(D7:D12)
合計式もフィルコピーしたければ
A101=SUM(OFFSET(D$1,(ROW()-101)*6,0,6,1))
805 :
GiantLeaves ◆6fN.Sojv5w :2005/08/21(日) 20:23:38
talk:
>>799 "talk:"は会話形式であることの明示。
ってことは、
>>756 の指摘はどういう意味なんだろう。
807 :
名無しさん@そうだ選挙にいこう :2005/08/21(日) 20:34:38
【1 OSの種類 .】 WindowsXPHome 【2 Excelのバージョン 】 Excel2002 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 ” ↑この文字が含まれるフォルダの中の xlsファイルを開くとシートが見えなくなってるのですが みなさんはどうですか?
"talk:"が会話形式を指すというのは有ってるが "talk:>>***"という使い方が間違っている スレ違いなのであえて使い方は書かないが、 初心者が落ちやすい間違いだな。
809 :
801 :2005/08/21(日) 21:08:01
>>810 激しくスレ違い。
Excelに関する話題を扱ってるサイトとは言え、
そこの事情は直接Excelとは何の関係もない。
知りたければ直接自分で聞け。
812 :
GiantLeaves ◆6fN.Sojv5w :2005/08/21(日) 22:16:14
あ〜もう、ここは"talk"じゃないでしょw
814 :
748 :2005/08/22(月) 00:12:43
>>750 カキコ規制されて返事遅れましたが、レスありがとうございました。
プレビュー機能の方は結局出来ませんでしたのであきらめます。
>>814 もう見てないかもしれないけど。
750さんの言っている通りで、プリンタドライバーがインストールされていれば
実際のプリンターはなくても印刷プレビューは使えます。
どこのメーカーのどのプリンターでもかまいませんし、最新のものでなくても
かまいません。Windowsに標準でついてるから適当に選べばいいです。
(もちろん、そのプリンターの仕様にそったプレビューになりますが)
現在VBAで目的のシートの最終行を求めるために gyou = worksheet(1).Cells(1).CurrentRegion.Rows.Count によってgyouと言う変数に値を入れています。 しかしセル1意外にも値が入力された場合(セル2に値が有る場合など)に正しい最終行が代入されません。 そこでセル1〜セル10までの各列の最終行を出し、その中で一番大きい数値を最終行にする方法にしようと思いましたが、 VBAでMax関数は使用することができなく(正確には使用できるみたいですが)最終行を求めることができません。 この方法で最大値を求める方法、またはその該当のシートの最終行を求める方法がありましたらご教授よろしくお願いします。
Sheet1のセルA1とSheet2のセルA1の和をSheet3のセルA1に表示させるにはどうすればいいのでしょうか? =Sheets("Sheet1").Range("A1")+... やCellsなどを使ってやってみたのですができませんでした。
sheets(3).cells(1,1)=sheets(1).cells(1,1)+sheets(2).cells(1,1) で出来ない??
>>816 gyou = Worksheets(1).UsedRange.Row + Worksheets(1).UsedRange.Rows.Count - 1
で、大抵はいけると思いますが、UsedRangeはデータ範囲ではなく使用範囲なので
場合によっては想定外の結果が出る場合もあります。
例えばA1.A3,A7に文字を入力し、A10に文字入力無しで背景を赤にした場合、
データが入力されてる最終行の 7 ではなく、10 を返します。
Endプロパティを使ってループ処理すれば、このような不都合は無いと思います。
Dim i As Long, j As Long, gyou As Long
For i = 1 To 10
j = Worksheets(1).Cells(65536, i).End(xlUp).Row
If j > gyou Then gyou = j
Next i
VBAでMAXを出すには
MsgBox WorksheetFunction.Max(1, 2, 3)
というようにMAX関数を呼び出すか、配列や範囲内でのMaxなら
上記のようにループ内でIfステートメントを使って出したり出来ます。
また、二つの値のうち大きい方を返すのなら、
Const num1 As Byte= 10, num2 As Byte= 20
MsgBox IIf(num1 > num2, num1, num2)
なんて方法もあります。
>>817 VBAなら
Worksheets("Sheet3").Range("A1").Value = Worksheets("Sheet1").Range("A1").Value + Worksheets("Sheet2").Range("A1").Value
標準プロパティも省かずに、SheetsはワークシートのみならWorksheetsと書いた方がいいです。CellsならCells(1, 1).Value
数式なら
=Sheet1!A1+Sheet2!A1
820 :
816 :2005/08/22(月) 14:57:45
>>819 さんありがとうございますm(_ _)m
ループを使っての、特に
[ If j > gyou Then gyou = j ]のコードが思いつきませんでした。
これならうまく最終行を求めることができそうです^^
大変参考になりました。また困ったことがあった時にはよろしお願いいたします
>>818-819 レスありがとうございます。
Sheet1のA1に
=Sheet2!A2
と書いてみたのですが、値の更新Sheet2と言うダイアログが開いてファイルを指定するように促されます。
キャンセルを押すと#REF!のエラーがセルに表示されてしまいます。
これはどうすれば回避できるのでしょうか?
それは「Sheet2」という名前のシートがブック内に存在しない場合に起きる スペル間違い、全角半角違い等で1字でも違うとダメなのでよく確認してみろ というか、「=」だけ入れてから参照先セルをクリックすればいいじゃん
>>795 今日職場で使わせて頂きました。カメレスですがありがとうございました。
hogeさんはすごいなー
質問です。 検索をするときに例えば「あり」 という単語を検索したいときに 「ありがとう」とかがひっかからずに、「あり」、で区切られている物だけを検索する方法はありますでしょうか? 一つのセルに「ありがとう。こんにちは」や、「あり、くも、かぶと」等の様に 複数の単語が入っていたりするので完全に一致するセルのみ〜の検索方法が 使えません。
826 :
名無しさん@そうだ選挙にいこう :2005/08/22(月) 19:38:21
常に「、」で区切られてるの?
>>826 はい。
区切られている場合はかならず間に 「、」が入っています
828 :
名無しさん@そうだ選挙にいこう :2005/08/22(月) 20:38:05
じゃあ「あり、」で検索すればいいじゃん
829 :
名無しさん@そうだ選挙にいこう :2005/08/22(月) 20:44:35
『1−1』って打つと『1月1日』になるのですが、 『1−1』にするにはどうすればいいの?
・表示形式→文字列 ・'1−1 ・="1−1"
832 :
名無しさん@そうだ選挙にいこう :2005/08/22(月) 20:54:24
<<830 ありがとうごさいます
>>828 ただ「あり」が最後に来ている場合や、「あり」としか書いていない事もあるんです
部分一致 「、あり」 と 「あり、」 完全一致 「あり」 でどう?
、ありがとう がヒットするからだめか (´・ω・`)
836 :
名無しさん@そうだ選挙にいこう :2005/08/22(月) 21:14:19
ありがとうを検索して有難うに置換すればおk
あ・・・すみません ありがとう、とかそれは例えで、本当は全部ローマ字です。 でもそれ参考になりました。文字列を一度他とかぶらないように変換してやってみます。 ありがとうございました。
838 :
名無しさん@そうだ選挙にいこう :2005/08/22(月) 22:39:46
>>837 がエクセルをどういう使いかたしてるのかがきになる
VBA使えばどうにでもなるだろうけどな
840 :
名無しさん@そうだ選挙にいこう :2005/08/23(火) 23:10:59
【1 OSの種類 .】 Windows XP 【2 Excelのバージョン 】 Excel 2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 お願いします。 日付を曜日にかえすことは出来たのですが、 SundayやMondayのように表示されます。 日本語の表記にすることは可能でしょうか?
>>840 A1に日付のシリアル値があるとして
=TEXT(A1,"aaa") → 日、月、火、…
=TEXT(A1,"aaaa") → 日曜日、月曜日、火曜日、…
842 :
名無しさん@そうだ選挙にいこう :2005/08/23(火) 23:24:23
>>841 おぉ!できました!!
素早い返答ありがとうございました。
ペコm(_ _;m)三(m;_ _)mペコ
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel 2000 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 あるセルが外部のブックを参照しているとき、そのセルを Range 型として引数にとり、 ユーザ定義関数内でそのセルの参照先ブックの絶対パスを取得するにはどのように すればよいかわからなくて悩んでおります。 具体的には、 C:\Book1.xls の A1 セルが、「'C:\[hoge.xls]Sheet1'!$A$1」を参照しているとき、 Function func(a As Range) As String func = "a が参照するブックの絶対パス" End Function のような関数を作りたいと思っています。 一応、ThisWorkbook.LinkSources の中から、 a.Address(True, True, xlA1, True, False) のブック名と合致するものを 検索する、という方法を考えたのですが、これだと ThisWorkbook.LinkSources 内に ディレクトリの異なる同名のブックが複数存在した場合はうまくいきません。 よろしくお願いいたします。
>>843 単純に文字列操作でパスを切り出したんじゃダメですか?
func = Replace(Split(Mid(a.Formula, 3), "]")(0), "[", "")
845 :
843 :2005/08/24(水) 01:13:30
>>844 hoge さん、どうもありがとうございます。
hoge さんの方法でやってみたのですが、参照先のブック (C:\hoge.xls) を閉じているときは、
"C:\hoge.xls" が返ってくるのですが、開いているときは、"hoge.xls" が返ってきてしまいます。
参照先ブックを開いていても、参照先の絶対パスを取得するにはどうすればいいでしょうか?
うーん。。。
>>845 ブックを開いてる時はWorkbooks().FullNameでパスを取得できるので
Dim buf As String
buf = Replace(Split(Mid(ActiveCell.Formula, 3), "]")(0), "[", "")
If Mid(buf, 2, 2) = ":\" Then func = buf Else func = Workbooks(buf).FullName
でどうでしょうか?
847 :
843 :2005/08/24(水) 01:55:53
>>846 なるほど、ブックを開いていて絶対パスが返ってこなかったら、
Workbooks の中から探して FullName でパスを取得するわけですね。
わかりました、どうもありがとうございます!
わからなくて困っていたので、大変助かりました。
848 :
843 :2005/08/24(水) 03:55:17
>>846 すみません、さきほど hoge さんに教えていただいたのですが、
私がちょっと混乱していて質問を間違えていました。
ご迷惑をおかけします。
以下のようなユーザ定義関数をつくりたいと思ってます。
※引数 a は外部参照とします。
Function func(a As Range) As String
…
a = "a の外部参照先のブックの絶対パス"
End Function
これを、C:\Book1.xls の適当なセルで次のように使います。
=func('C:\[hoge.xls]Sheet1'!$A$1)
これを実行したセルには "C:\hoge.xls" が返ってくることを期待しています。
わかりづらくて申し訳ないのですが、よろしくお願いします。
# 元々、func('C:\[hoge.xls]Sheet1'!$A$1) のような外部参照を引数に取ったときに、
# 参照先のブックをオープンしたかったのですが、絶対パスが取得できなくて
# 困っていて、上記のような関数を作ろうとした次第です。
>>848 >>846 で間違ってActiveCellと書いてしまいましたが
「ActiveCell → a」と書き換えても、ダメですか?
こちらでは
'・標準モジュール
Function func(a As Range) As String
Dim buf As String
buf = Replace(Split(Mid(a.Formula, 3), "]")(0), "[", "")
If Mid(buf, 2, 2) = ":\" Then func = buf Else func = Workbooks(buf).FullName
End Function
・ワークシート
A1='C:\[hoge.xls]Sheet1'!$A$1
A2=func(A1)
で、A2に"C:\hoge.xls"が返りますが。
というか、参照先ブックパスを返すのに、引数にRange型で'C:\[hoge.xls]Sheet1'!$A$1を渡す必要は無いです。
外部参照が書かれているセルのオブジェクトを渡し、関数内で数式(参照)を取得すれば良いだけですから。
"'C:\[hoge.xls]Sheet1'!$A$1"を渡したいなら文字列型で渡して処理した方が簡単ですね。
850 :
843 :2005/08/24(水) 05:21:46
度々すみません。
>>849 の方法で、こちらも A2 に "C:\hoge.xls" が返ります。
しかし、期待の動作は次のように、
・ワークシート
A1=func('C:\[hoge.xls]Sheet1'!$A$1)
としたときに、A1 に "C:\hoge.xls" が返ることです。
元々やりたかった事が、上記のように外部参照している Range 型オブジェクトを
引数にとって func 関数を呼んだとき、func 内で hoge.xls を開くことです。
そのために、Range 型のオブジェクトから hoge.xls の絶対パスを取得したかったのですが。。。
私の質問の仕方が悪かったようです、すみませんでした。
やはり、Range 型のオブジェクトを引数にとる方法では hoge.xls の絶対パスは取得できないのでしょうか?
# hoge さんの言うように文字列型で外部参照式を渡すべきなのかなぁ。
>>850 そもそも'C:\[hoge.xls]Sheet1'!$A$1では、
ブックを開いてない以上、親オブジェクトが無いので
Rangeオブジェクトとして通らないのでは?
Function func(a) As String
と、引数の型を指定せずに
Debug.Print TypeName(a)
で型を調べてみると、ブックを開いてる時はRangeになりますが、
ブックを開いてない時はString型を返しました。
Function func(a As Range) As String
だと、ブックを開いてない時は、エラーになるどことか関数を通ってさえいません。
なのでRangeオブジェクトからブックパスを返す方法以前に、
Variant型かString型で渡さないと、関数として動作しませんね。
852 :
843 :2005/08/24(水) 08:21:38
>>851 そうですね、ブックを閉じているときはやはり Range 型で受けるのは
だめなようです。a は型を Variant にしました。先ほど、
Function func(a As Variant) As String
func = TypeName(a)
End Function
のように、引数として代入されるデータ型を調べるために、TypeName(a) をそのまま
返すようにして、参照先のブックを閉じたとき、開いたときについて動作を調べました。
C:\hoge.xls は
A1=123
B1=456
として、
・ブックを開いている時
A1=func([hoge.xls]Sheet1!$A$1) => "Range"
A1=func([hoge.xls]Sheet1!$A$1:$B$1) => "Range"
・ブックを閉じている時
A1=func('C:\[hoge.xls]Sheet1'!$A$1) => "Double"
A1=func('C:\[hoge.xls]Sheet1'!$A$1:$B$1) => "Variant()"
となりました。(続きます)
853 :
843 :2005/08/24(水) 08:22:23
(つづき) ブックを開いているときは改めてブックを開く必要はないため、hoge.xls の絶対パスは取得しません。 一方、ブックを閉じている時、hoge.xls を開いて外部参照式で指定された 範囲のデータを処理したいので、hoge.xls の絶対パスが必要になります。 ブックを閉じている時は、引数に単一セルのみの外部参照式('C:\[hoge.xls]Sheet1'!$A$1)を代入すると、 そのセルの値 123 の型 "Double" が返ってきます。また、引数に複数のセルにまたがる外部参照式 ('C:\[hoge.xls]Sheet1'!$A$1:$B$1)を代入したところ、"Variant()" となりました。 うーん、このような挙動をするので、どうすればいいかわかりません。。。 func(a As Veriant) のように引数を Variant にして、外部参照式('C:\[hoge.xls]Sheet1'!$A$1 や 'C:\[hoge.xls]Sheet1'!$A$1:$B$1)を引数に代入したとき、func 内で参照先のブックのパスを 取得できますでしょうか?
>>852-853 具体的に全体で何がしたいのか書いてくれないのでよくわかりませんが、
単にパスを取得したいだけならString型で渡して文字列操作が一番手っ取り早いと思います。
どうしてもString型で渡したくないなら、
Application.Caller.Formula
で、引数を含めた数式ごと文字列として取得して、そこから文字列操作すればパスは返せますね。
Dim buf As String
buf = Application.Caller.Formula
buf = Replace(Split(Mid(buf, InStr(1, buf, "(") + 2), "]")(0), "[", "")
If Mid(buf, 2, 2) = ":\" Then func = buf Else func = Workbooks(buf).FullName
1.OS Me 2.ver 分かりません2000かな?どこに載っているのでしょうか… 3.VBA使用 可 4.VBA回答 できれば無しで… 質問です。 A1〜A10まで様々な数値が与えられています。 この中から上位3つの合計を出したいのですがどうすればいいでしょうか。 自分の分かる範囲ではその列を降順に並び替えて=SUM(A1:A3)しかないのですが 他に方法ありましたらお願いします。
>>855 {=SUM(LARGE(A1:A10,ROW(A1:A3)))}
=SUM(LARGE(A1:A10,1),LARGE(A1:A10,2),LARGE(A1:A10,3))
どちらでもお好きな方をどうぞ。
上は配列数式なのでCtrl + Shift + Enterで確定してください。
857 :
名無しさん@そうだ選挙にいこう :2005/08/24(水) 10:58:49
【1 OSの種類 .】 WindowsXP Pro 【2 Excelのバージョン 】 Excel2002 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 同じフォルダに入っている複数のブック8ファイルを、1つのシートにまとめたい。 なお、入っているブックは、全て同じ構成で、中身が違う。 ※各ブックに重複するデータはありません。 例:bookA A校の生徒氏名、科目1の成績、科目2の(ry … bookB B校の生徒氏名、科目1の(ry : bookH H校の(ry これを bookZ Sheet1に bookA A校の生徒氏名、科目1の成績、科目2の(ry … bookB B校の生徒氏名、科目1(ry… : bookH H校の… としたいのです。どうしたらよいか教えてエロい人
>>857 条件が曖昧すぎてよくわかりませんが、
VBA使えるとの事なのでヒントになりそうな事だけ書きます。
まず複数のブックに処理を掛けるには、Dir関数でフォルダ内の.xlsを取得するか、
処理するブックのみを全て開いて、Workbooksコレクションに対して処理を行います。(まとめ用ブックだけ除く
ひとつのブックにシートが複数有る場合も同じくWorksheetsコレクションに対して処理します。
データ範囲はCells(65536, 1).End(xlUp).RowやActiveSheet.UsedRangeで取得出来ます。
まとめるのが文字列データのみでいいなら.Value=.Valueで、書式も含めたいならCopyを使います。
>>857 の説明だけではこれ以上の事は言えません。
VBA使えるなら、丸投げせずに一度自分で書いてみて、解らなかったところを聞いてください。
丸投げするのも悪くは有りませんが、丸投げするなら条件はきちんと指定してください。
>>858 テンプレ理解してから質問してくれ。
最低半年はスレ読んでから またきてくれ
>>856 まさか、こんなに早く答えが返ってくるとは。
ありがとうございます!
ワークシートA1に2005/05/01と書いてあるときに、B1に今日からA1の日付までの 日数を表示させる方法は無いでしょうか? =day(A1)-day(now()) などとやってみたのですが、表示できませんでした。
>>861 =DATEDIF(A1,TODAY(),"D")
=TODAY()-A1
どちらでもお好きな方をどうぞ。
TODAYを使って解決しました。
>>862 ありがとうございました。
関連した質問なのですが、
A1に日付を入れて、A2に200、A3に10.6851と入れます。A4に
=A3+(DAY(TODAY())-DAY(A1))*A2/1000000)
と入力すると2005/08/01まではスムーズに0.0002づつ増えているのですが、
7/31になると、いきなり数値が逆方向に変化してしまいます。
これは何か回避方法があるのでしょうか?
それともExcel2003の特有のバグでしょうか?
どなたか教えてください。
>>863 DAY関数で日付しか見てないんだから、
月が変わればそのような結果になるのは当然だと思いますが。
その式では7/1も8/1も9/1も同じ値になるはずです。
計算結果が思い通りにならないときは、数式をバラしてみましょう。
=DAY(TODAY())、=DAY(A1)
そうすれば、何故思い通りにならないのか、
何処が間違ってるのかが解ると思います。
>>863 です。おもいっきり馬鹿なことをしていました。
脳内アボーンしてください。
たびたびありがとうございました。
>>864
散々ガイシュツだとは思うが、教えて下され。 Wordで表を作って、12桁の数字が含まれてる部分をEXCELに 貼り付けようとしたところ、EXCEL中のセルををすべて「文字列」に設定しても 指数表示になってしまいます。 12桁以上の数字をEXCELにペーストした場合、すべて指数表示になっちまうんでしょうか? そのまま12桁の数字をペーストする方法があれば教えて下され。 クレクレ厨でスマソ。 ※もし不可能な場合、12桁の数字を100個以上のセルに打ち込むことになるでつ。OTL
>>866 ペースト後、セル書式 数値の書式 数値とか通貨(¥ナシ)とかを選択
>>866 ん?
あらかじめセルの書式を文字列にしとけば、普通に貼り付けられるが…
当方 Excel2000。
【1 OSの種類 .】 Windows2000 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 まぁなんとか 【4 VBAでの回答の可否】 今回はNGの方向でお願い D列に出社時間 E列に退社時間 F列に休憩時間 G列に実勤務 時間を出したいと思っています。 で、D列とE列に時間が入った時にE列に1時間を入れ、 G列で(これもD列とE列に時間が入った時に) E-D-Fにより実勤務時間を出したいんですが、 F列に =if (and (d3 <> "",e3 <>""),1:00:00,"") と入れたところ、 入力された数式は正しくありませんと出ます。 で、1:00を1にするとF列に0:00なんて答えがでてしまうんで 何方か、正しい式を教えて下され。 (あ、一応言って置くと退社時間が翌日になってしまう事は ないです)
870 :
843 :2005/08/24(水) 20:47:09
>>854 >Application.Caller.Formula
>で、引数を含めた数式ごと文字列として取得して、そこから文字列操作
どうもありがとうございます!この方法でうまくいきますた!
Caller が関数呼び出しをした時の式を取得できるとは知りませんでした...。
全体の説明をしなかったので、いろいろご迷惑をおかけしてしまったようで、すみませんでした。
全体としては、LOOKUP 関数の自作版が作りたいというのがありまして、検索テーブルを示す範囲を
外部参照した際にブックをオープンする処理で困っていました。(外部参照式からブックのパスを取得
しなければならないと思いまして)
で、LOOKUP 関数と自作版とで、関数の引数のインタフェースを合わせたかったので、
LOOKUP の検索範囲を示す引数の型は String にしたくなかったというのがあります。
>>869 1:00:00
↓
TIMEVALUE("1:00:00")
>>871 有難うございます!出来ました。
それから今更ですが(^^;
×で、D列とE列に時間が入った時にE列に1時間を入れ、
○で、D列とE列に時間が入った時にF列に1時間を入れ、
でした。
873 :
866 :2005/08/24(水) 22:51:10
>867・868氏 ありがとうございました。 おかげさまでなんとかできました。 ご協力ありがとうございました。_(._.)_ 落ち着いて「書式設定」をきちんとやれば、ちゃんとできるじゃねーか<自分 ってことで、お騒がせしました。
874 :
名無しさん@そうだ選挙にいこう :2005/08/24(水) 23:03:12
【1 OSの種類 .】 WindowsXP SP2 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 10列60行程度のデータがありまして、行、列の広さは一定ではありません(結合はなし)。 これをオートフィルで抜きだしたn行を選択し、コピーして別のシートに貼り付けすると セルの大きさをコピーしてくれないのですが、コピーしてくれる方法はあるでしょうか。 ぐぐってもと本の目次しかひっかからなくて。勿論形式選択→すべても試してみました。 よろしくお願いします。
会社パソコンの .xlsファイルをダブルクリックしてもエクセルは起動しますが ブックが開きません。どこか設定でしょうか?どなたかよろしく。
関連付けのコマンド
877 :
名無しさん@そうだ選挙にいこう :2005/08/25(木) 04:05:44
突然申し訳ありません。 ユーザーの関数設定で、 打ち込む数値にはXXヶ月といれて 表示形式は X年Xヶ月とするユーザー関数を作成する事は可能でしょうか? もしよろしければやり方を教えて頂きたいです。色々検索しましたが、知識不足で申し訳ありません。
>>877 A1が「XXヶ月」だとして
=INT(A1/12)&"年"&MOD(A1,12)&"ヶ月"
で「X年Xヶ月」の形になりますが。
もしかしてユーザー関数ってVBAを使ったユーザー定義関数を作りたいってことですか?
それとも表示形式のユーザー定義での定義式が欲しいってことですか?
まあユーザー定義の表示形式ではおそらく無理ですけど。
879 :
名無しさん@そうだ選挙にいこう :2005/08/25(木) 13:53:26
【1 OSの種類 .】 Windows xp 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 セルに存在する文字列を、文字列ごとに、存在する数を数え集計するには どうすればよいでしょうか。 例えば、 みかん みかん りんご バナナ りんご バナナ .... というような表で、 みかん10 りんご5 バナナ20 といったように集計したいわけです。 COUNTIFで文字列の数を数えるのはやってみましたが、 それだと、たとえばりんごの個数を数えることはできますが、 各文字列をいっぺんに数えるのは面倒ですし、 あと、表に存在する文字列を全部把握しているわけではないので (自分は知らないがイチゴやキウイがあるかもしれない) 自動で全文字列の数を集計したいのです。 よろしくおねがいします。
>>879 次のような形のリストに手直しする。
「果物」「個数」は便宜上の項目名。個数は全部1でよい。
果物 個数
みかん 1
みかん 1
りんご 1
バナナ 1
りんご 1
バナナ 1
できたら「果物」をキーに並べ替え、その後で「データ」→「集計」を実行
ほかにもやり方はあるが一例として。
>>879 B1=IF(COUNTIF(OFFSET(A$1,0,0,ROW(),1),A1)=1,ROW(),"")
C1=SMALL(B$1:B$100,ROW())
D1=IF(ISNUMBER(C1),INDEX(A$1:B$100,MATCH(C1,B$1:B$100,0),1),"")
E1=IF(D1="","",COUNTIF(A$1:A$100,D1))
全て入力したら、B1:E1を選択してデータの末行までフィルコピー、B:C列を非表示に。
範囲は1〜100行目までになってるので、適当に書き換えて使ってください。
今後もデータが増えるなら多めに範囲指定してください。
ワークシート関数は不定な結果を返すことは出来ないから
この手の事を関数でやるのは面倒なんですけどね。
882 :
879 :2005/08/25(木) 15:52:31
すばやい回答ありがとうございます。
>>880 これはわかりやすくていいですね
こういう集計の使い方は思いつきませんでした。
>>881 すごい!
けど、この理屈が理解できない程度の
知識なので解析して勉強させていただきます。
884 :
名無しさん@そうだ選挙にいこう :2005/08/25(木) 21:54:12
【1 OSの種類 .】 Windows xp 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 グラフについてですが、学生のテストの点数の散布図のようなものを作って その上に偏差値やIQテストに見られるようなベル方の線グラフも表示するにはどうしたいいでしょうか? こんな感じで表をまとめてます No. 点数 1 50 2 30 3 80 4 85 5 90 6 15
885 :
名無しさん@そうだ選挙にいこう :2005/08/25(木) 23:28:13
楽セルの登録パスワード知っている人いますか?
> ベル方の線グラフ って何ぞや?
>>884 つ
【グラフの種類】
【X軸 】
【Y軸 】
ベル方=ベル型
888 :
座敷荒氏 :2005/08/26(金) 00:23:20
【1 OSの種類 .】 Windows2000 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 こんばんは。よろしくおねがいします。 プログラム経験無しでVBAでツールを作成することになりました。 いま1日目ですが、考え方というかそういうものがわからなくて 困っているのでご教授くださいませm(__)m 1列目に日付、2列目に曜日が入力されています。 3列目にその日の予定をいれることになっています。 条件として、10日以降の最初の月曜日の日の 3列目に予定"○"を入力するように処理するVBAを 作るにはどのように処理したらよろしいでしょうか? よろしくおねがいします。
>>888 処理の流れだけ教えればいいのかな?
それともコード書いた方がいいですか?
どちらにしても以下の情報が欲しいところです。
@開始日(最初の行の"日")は固定なのか、不定なのか、固定なら何日から始まるのか。
Aデータは1ヶ月分なのか、それ以上なのか。
曜日の書式や開始行などは解らなくても後から簡単に修正できますが、
上記2点は条件によって処理が大きく変わります。
「@不定、A1ヶ月以上」を想定すればどんな条件にも対応出来ますが、
逆に「@1日から、A1ヶ月」だった場合、無駄な処理をすることになるので。
890 :
座敷荒氏 :2005/08/26(金) 07:44:54
>>889 お返事ありがとうございます。
毎月作成するものです。
@開始日は1日です。
1行目には1日〜月末までの日付があらかじめ入力されています。
A月ごとに作成するので一ヶ月分になります。
2行目は1行目の日付に対応した曜日を入力しています。
コードも教えていただけると助かります。
自分で理解して使いたいと思います。
よろしくお願い致します。
>>890 Dim i As Long
'# 開始行
i = 1
'# 開始行から、A列(1列目)の日付が「10日」になるまで、Do〜Loop間の処理を繰り返す
Do Until (Day(Cells(i, 1).value) = 10)
'# 変数iの値を1増やす (チェックする行をひとつ下に)
i = i + 1
Loop
'# A列が10日の位置から、B列(2列目)が「月」になるまで、Do〜Loop間の処理を繰り返す
Do Until (Cells(i, 2).value = "月")
'# 変数iの値を1増やす (チェックする行をひとつ下に)
i = i + 1
Loop
'# A列の日付が「10日」の行以降で、B列が「月」になった行(i行)のC列(3列目)に"○"を入力
Cells(i, 3).value = "○"
'===ここまで===
日付はシリアル値で入力されていることを前提にしてます。
Do Until (Cells(i, 2).value = "月")
の "月" は曜日の書式に合わせて書き換えてください。この行を
Do Until (Weekday(Cells(i, 1).value) = vbMonday)
に書き換えると、B列の曜日ではなくA列の日付から曜日を割り出し、それで判断します。
892 :
名無しさん@そうだ選挙にいこう :2005/08/26(金) 10:12:01
【1 OSの種類 .】 Windows XP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 特定のセルに日付を入力した時に休日(土曜、日曜、祝日)かどうかを判断することは出来るでしょうか 日付が休日だった場合にだけ文字かセルに色を付けることは出来るでしょうか よろしくおねがいします。
>>892 条件付書式で
=WEEKDAY(日付のセル参照,2)>5
祝日の判別方法は解らないです。
>>892 土日の自動判断は出来るが、
祝日は、何月何日が祝日なのかのデータを作らないとExcelは判断出来ない。
条件付き書式では祝日をどこかに書き出し、
数式が
=OR(WEEKDAY(【特定のセル】,2)>=6,COUNTIF(【祝日を書き出した範囲】,【特定のセル】)=1)
で書式を設定すればOK
VBAだとこんな感じかな。
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address(0, 0) = "A1" Then '対象セル
Dim Holiday() As String
Holiday = Split("{1/1} {2/2} {3/3} {4/4} {5/5}") '祝日を列挙
If Weekday(Target.Value, vbMonday) >= 6 Then '土日の場合
Target.Interior.ColorIndex = 38 '背景色をピンクに
ElseIf UBound(Filter(Holiday, _
Format(Target.Value, "{m/d}"))) = 0 Then '設定した祝日と一致した場合
Target.Font.ColorIndex = 3 '文字色を赤に
Else '土日でも祝日でもなかった場合
Target.Interior.ColorIndex = -4142 '背景色を無しに
Target.Font.ColorIndex = -4105 '文字色を自動に
End If
End If
End Sub
質問は「色を付けたい」であって 「祝日の内容を表示したい」ではないぞ VBAわかる奴ならそれを元に書き換えもできるが 用途に対して無駄すぎるし、テンプレ3は「いいえ」だ。
しかしテンプレ4が…
3=いいえ
4=可
の場合は、そのまま使えるコードじゃないと意味無いな
>>1 ※4は、VBAはわからないけどコード書いてくれるならVBAでもいいって場合は「可」
900 :
名無しさん@そうだ選挙にいこう :2005/08/26(金) 14:41:15
エクセルの完成度がけっこう低い件について プレビューとか、いらね。
>>900 おまい、Excelの実務経験無いな。
あれほど画面と印刷結果の異なるソフトも珍しいというのに、
プレビューがいらんとは…
プレビューは、Excelだけの機能で動いてんじゃねーよ。
>900がExcelを使えてない件について
>>900 なんて恐ろしい事を言うんだ…((゚Д゚;)))ガクブル
あれが無いと……
>900 ばかやろう! excelで一番重要な機能じゃねえか!!
905 :
名無しさん@そうだ選挙にいこう :2005/08/26(金) 16:18:52
過去ログ見ないですいません。質問です。 【1 OSの種類 .】 Windows2000 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 不可 一つのセルの中に文字と式を同居させる・・・・というのは出来ますか? 例 セル(Xとする) [7/1]←ここをいじるだけで セル(yとする) [H.17.7.1〜]←波線の所だけ変更できる。〜は文字 出来ますか? ~~~~~~~~
907 :
905 :2005/08/26(金) 16:27:10
>906 すいません。自身書き込み内容を見てチンプンカンプンでした・・・。 あるセルの数値を変更すると、違うセルの数値が連動しますよね? その違うセルの中に、連動する数値と普通の文字列を同居させたいのです。 [7/1〜]って書いて、[7/1]の部分だけ連動させたいんです。分かります?
よpくわからんがこういうことか? =TEXT(セルX,"ge.m.d")&"文字" つーか「波線の所だけ変更できる。」じゃなくて 「波線以外の所だけ変更できる。」じゃないhのか?
よpくわからんがこういうことか? =TEXT(セルX,"ge.m.d")&"文字" つーか「波線の所だけ変更できる。」じゃなくて 「波線以外の所だけ変更できる。」じゃないhのか?
>>905 ="H.17.7.1"&X
Xは任意で変更
ただ、例の通りだと結果は "H.17.7.17/1" になるけどいいのか?
911 :
905 :2005/08/26(金) 16:31:42
"で数値を挟んで&〜っすか? とりあえず試してみます。
912 :
905 :2005/08/26(金) 16:46:01
ごめんなさい。わかりません・・・・ とりあえず、あきらめます・・・・ 説明が下手で苦労します・・・ g6のセル 7/1 h3のセル 7/1〜 g6のセル 7/10 h3のセル 7/10〜 って変更させたい!「〜」ってのを全角で書きたい!でも、エラーが出るって事です。
=G6&"〜"
>>912 H3 に =G6
表示形式を m/d"〜"
915 :
905 :2005/08/26(金) 16:58:16
どうにかエラーは出なくなりましたが、 m/dに表示形式を変えても38537〜になっちゃいます いろいろ試してます。
=TEXT(G6,"m/d")&"〜"
918 :
905 :2005/08/26(金) 17:25:21
できました!! えっとですね〜917さんが正解だったようです。 エクセル、難しいっす。これからも度々すいませんですます・・・ 勉強します。 ホントみなさんに感謝です♪
920 :
名無しさん@そうだ選挙にいこう :2005/08/26(金) 20:40:13
Excel2002です。 ツールのオプションで、新しいブックのシート数を1枚にしています。 私はExcelで何かをつくるときは、デスクトップの何も無いところで、 右クリック→新規作成→MicrosoftExcelシートで作成するのですが、 そのほうほうだと、上記の手順で設定したように、 新しいブックのシート数は1ではありません。 どうしてでしょうか?
>>920 新規作成の場合は、xlsテンプレートに準ずるから
922 :
名無しさん@そうだ選挙にいこう :2005/08/26(金) 21:08:10
>>921 レスありがとうございます。
その辺りの概念がよくわからないのですが、よかったら説明願えないでしょうか?
923 :
名無しさん@そうだ選挙にいこう :2005/08/26(金) 21:22:57
困っってます・・・ 【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2002 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 症状は、例えばセルに文字を入力して日本語に変換し確定(Enterキーを押す)と、 そのたびに再計算されます。 Excelのウインドゥ枠の左下に、”再計算●●%”と表示され0から100になるまで待たされます。 入力項目が多いので、セルに入力した文字を日本語変換する度に再計算で待たされると効率が悪くなってしまいます・・・ また、セルの内容をDELキーで消したときも、同様にいちいち再計算してて100%になるまで、待たされます。 知らないうちにどこか設定をいじったのかもしれませんが、どうすれば元に戻るんでしょうか?
>>922 右クリックメニューからの新規作成では、
テンプレートが有る場合はテンプレートのコピーを作成し、
無い場合は空(0バイト)ファイルが作成される。
Excelの場合何も入力してない状態でもブックは空ではないのでテンプレートが必要になる。
このテンプレートはExcelインストール時に、自動的にシート3枚のものが用意されるので
通常、新規作成ではExcelの設定に関係なく、このシート3枚のテンプレートのコピーが作成される。
テンプレートは
C:\WINDOWS\ShellNew
C:\Documents and Settings\ユーザー名\Templates
のどちらかにあるので、ここにあるブックを開いて、シートを一枚にして上書き保存すれば
以後の新規作成ではシート1枚のテンプレートのコピーが作成される。
>>923 ツール>オプション>計算方法>手動
925 :
920,922 :2005/08/26(金) 21:40:15
>>924 Excelってそんな複雑?な仕様になっているんですね。
全然知りませんでした。
テンプレートを変更しないで、
どうもありがとうございました。
詳しい説明親切にありがとうございました。
>>925 >テンプレートを変更しないで
は誤入力です。無視してください。
Excelの仕様というか、Windowsの仕様なんだけどね。
928 :
923 :2005/08/26(金) 22:15:26
>>924 さん
それだけは避けたいのです。シートの中に関数とか入れてあり、自動計算の方がいいので。
元々、”ツール>オプション>計算方法>手動”は自動にしてあり、つい2〜3日前は普通に動いてたんです。
今日になって、突然こんな症状になってしまったので。
自動にしてるなら、100%まで待たされるのが正常。 でも簡単な数式なら数百セルを再計算しても、 「再計算●●%」の文字が一瞬見えるか見えないか程度の時間で計算が終わる。 計算が遅くなってるならハードやシステムに不都合がある可能性もある。
【1 OSの種類 】 Windows XP 【2 Excelのバージョン 】 Excel2002 【3 VBAが使えるか 】 勉強中 【4 VBAでの回答の可否】 可 L2〜アクティブセルをマクロで選択したい 新しいマクロの記録で、L2からL12までを選択したマクロを いろいろ改造して試したのですがうまくいきません。 どの様に記述したらいいかご教示下さい。
931 :
923 :2005/08/26(金) 23:38:31
そ、そうなんですか・・・ わかりました。 ・・・気分転換に来月選挙にでも行きます。
932 :
初心者 :2005/08/27(土) 00:02:18
仕事で急用です。皆様教えてください。当方エクセル完全素人です。 このような入力シートの作り方を教えてください。 新潟コシヒカリ10kg 精米月日 月 日 納品月日 月 日 (株)○こめ で、これを24面上下余白付のインクジェッタラベルで印刷したいのですが、 まるでやり方がわかりません。一応、できるWORD&EXCELを読んだのですが わかりません。 皆様、教えてください。 よろしくお願いいたします。
>>932 一太郎でタック用紙設定するのがいいよ。
>>932 普通はWordでやるんじゃないの?
あくまでもMS-Officeがインストールされている環境ならばだけど。
キーワードはWordの差込印刷じゃなかろうか。たぶん。
>>930 Range(Range("L2").Address, ActiveCell.Address).Select
936 :
名無しさん@そうだ選挙にいこう :2005/08/27(土) 08:15:54
【1 OSの種類 】 Windows XP 【2 Excelのバージョン 】 Excel2003 時々ファイルを読み込んでも作業中のワークシートが表示されないことがある。 しかし「挿入」「ワークシートの追加」をすると、やっと新ワークシートといっしょに 作業中ワークシートが表示される。 これを回避する方法ありますか?
【1 OSの種類 】 Windows XP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか 】 はじめたばかり 【4 VBAでの回答の可否】 可 質問です。よろしくお願いします。 任意の列を非表示にしたいのですがどのようなコードになるのでしょうか? ご教示ください。 ↓こんなことしてみましたが 「実行時エラー '13':型が一致しません。」 と出てしまいます。。。 Sub 非表示に(myStartCoiumn As String, myEndColumn As String) Columns("myStartCoiumn:myEndColumn").Hidden = True End Sub Sub 任意の列を非表示() Dim x0 As String Dim x1 As String x0 = "A" x1 = "B" 非表示に x0, x1 End Sub
勉強のために答えこコードはあえて書かずにヒントだけ myStartCoiumn = "A" myEndColumn = "B" の場合、 "myStartCoiumn:myEndColumn" → "myStartCoiumn:myEndColumn" "myStartCoiumn" → "myStartCoiumn" myStartCoiumn → "A"
940 :
名無しさん@そうだ選挙にいこう :2005/08/27(土) 14:35:46
セルの塗りつぶしについてなんですが、灰色に設定してから 「条件付き書式」で1以上なら黄色、−1以下なら青、0なら灰色と設定しました。 空白の場合は灰色のままだと思ったのですが、なぜか黄色になってしまいます。 ちなみにそのセルには、=if(isblank(H5),"",F5*I5-M5)という式が入ってます。 "空白または0の時は灰色"にしたいのですが、どうすれば良いのでしょうか、お願いします。 わかりにくくてスミマセン。
941 :
940 :2005/08/27(土) 14:44:23
急いでたので忘れました。 【1 OSの種類 】 Windows XP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか 】 使えません 【4 VBAでの回答の可否】 否 です。
>>940 比較演算の結果では""は1より大きいので、結果通りに「1以上」の場合の書式が適用されます。
というか文字と数値を比較すると、内容に関わらず文字の方が大きいという結果を返します。
""は一応文字として扱われるので。
回避策はいくつかあるけど
条件1 数式が =OR(A1=0,A1="") 灰
条件2 セルの値が 次の値以上 1 黄
条件3 セルの値が 次の値以下 -1 青
とか
条件1 数式が =VALUE(A1)>=1 黄
条件2 数式が =VALUE(A1)<=-1 青
あたりかな。
前者は「1以上の場合は黄色」の条件の前に、「0か""だったら灰色」という条件を入れたもの、
後者は数値に直せない文字を比較対照から外したものです。参照先はそちらで書き換えてください。
因みに、VALUE関数は何も入力してないセルでは0を返し、""のセルではエラーを返します。
ついでにN関数は何も入力してないセルでも""のセルでも0を返します。
なので前者条件1の条件式は「=N(A1)=0」とする事も出来ます。
943 :
940 :2005/08/27(土) 15:41:43
>>942 Excel初心者なので四苦八苦してました。
丁寧なレスありがとうございます。
とても参考になりました。
944 :
938 :2005/08/27(土) 15:55:47
>>939 レスありがとうございます。
先ずはCo"i"umnをCo"l"umnに直しました。
でデバッグモードで
Columns("myStartColumn:myEndColumn").Hidden = True
の「myStartColumn」をポイントしたら「"A"」となっていました。
つまり、
Columns(""A":"B"").Hidden = True
となっていたんですね。しかし、x0 = A、x1 = Bとかにすると変数が宣言されてないといわれました。どうやれば
Columns("A:B").Hidden = True
のように代入できるのでしょうか?
なにとぞご教示をお願いします。
あと、若干別件なのですが、中断モードでリセットボタンをマウス操作でなくAlt+「何かのキー」のようなショートカット操作って出来ないでしょうか?お教え願得ませんでしょうか。お願いいたします。
945 :
930 :2005/08/27(土) 15:59:56
先程は、お世話になりました。 先程ご教示いただいた範囲を昇順で並べ替えたいのですが うまく動いてくれません。 ヘルプで Sort メソッドを見ると key1 以降は省略可能と書かれていたので 下記の様に書いてみたのですがうまくいきません。 ほかにもいろいろ試したのですがうまくいきません。 Sub sort01() ' Range(Range("L2").Address, ActiveCell.Address).Select Selection.sort End Sub 構文の expression の部分は Selectionではダメなのでしょうか? それとも根本的に間違っているのでしょうか? 何度もお手数をおかけして申し訳ありませんが、ご教示下さい。
>>944 さらにヒント。
Sub 非表示に(myStartColumn As String, myEndColumn As String)
Dim myColumn As String
myColumn = "myStartColumn:myEndColumn"
Columns(myColumn).Hidden = True
End Sub
948 :
930 :2005/08/27(土) 17:45:05
>>947 有難う御座います。
key1 を記述したらうまくいきました。
それにしても、省略可能と書かれたヘルプは間違っているのでしょうか?
後学のため、詳細をご存知の方ご教示下さい。
949 :
名無しさん@そうだ選挙にいこう :2005/08/27(土) 17:48:09
【1 OSの種類 】 Windows 2000 【2 Excelのバージョン 】 Excel2002 【3 VBAが使えるか 】 初心者です 【4 VBAでの回答の可否】 可 エクセルでフローチャートを作成していますが、テキストボックス内に 関数を入力して、別シートに入力された文字列などを表示する事は出来 ないのでしょうか? セルに直接罫線で図形を描いて線を繋ぐ感じで書いていくと後でステップ が追加になった時に追加するのが困難になるので基本全てテキストボックス 等のオブジェクトに文章を入力しています。 ただ、内容を変更する際にテキストボックスを選択して入力と言う動作が結構 大変なのと、関数が使えると結構楽な場面(同じ文章を入力したい場合など) が有ります。 どうにかならないでしょうか??
950 :
938 :2005/08/27(土) 21:18:35
>>946 ヒントありがとうございます。
>myColumn = "myStartColumn:myEndColumn"(…(1)とします)
なるほどこういう置き換えがあるんですね。
と思いましたが、デバッガ時にカーソルを合わせると(引数の時点で)
myStartColumn は"A"
myEndColumn は"B"
でしたが
myColumn は myColumn = "myStartColumn:myEndColumn"
になってます。(1)のステップはすぎてます。
myColumn = "myStartColumn:myEndColumn" の全体を選択してポイントすると
myColumn = "myStartColumn:myEndColumn"= True
となってます。
なんか分からなくなってきました。難しいですね、適性がないと。
不可視にしたい列範囲が何箇所もあって、それが動く可能性があるのでスマートに変数で対処しようと野望を抱きましたが、私にはまだ早いですね。すらすらっと書き連ねることにしますorz
ありがとうございました。
'中断モードをリセットするキーボードショートカットご存知の方教えていただけませんか。
'小さい四角のリセットボタンを押すの、ほとほと疲れました。。。
>>950 これでいい
Sub 非表示に(myStartColumn As String, myEndColumn As String)
Dim myColumn As String
' ↓
myColumn = myStartColumn & ":" & myEndColumn
ActiveSheet.Columns(myColumn).Hidden = True
End Sub
以下のような引数で実行すると消えるよ
Sub hoge()
非表示に "A", "AA"
End Sub
>>949 こういうことしたいんでしょうか?
1)表示したいテキストボックスを洗濯する。
2)式を入れる所(左に=かfxがある)に参照したいセル番地を入力する。
=A1と入力
--------------
fx|=A1
--------------
A1に表示したい文字を入力すると、テキストボックスに表示される。
A1にあああと入ってるとテキストボックスに入る。
--------------
|あああ |
--------------
【1 OSの種類 】 Windows XP 【2 Excelのバージョン 】 Excel2002 【3 VBAが使えるか 】 少々 【4 VBAでの回答の可否】 可 エクセルでカレンダー形式の月間(年間)予定用を作っています。(1シートで1年分) A1セルに、今日の日付を表示させており、条件付き書式で今日の日付のセルに色を付けています。 一発で今日の日付のセルに移動出来る方法はありますか? あれば、「今日に移動」のボタンを作ってマクロ処理したいと思います。
954 :
938 :2005/08/27(土) 23:24:55
>>951 ありがとうございます!
ずーっと考えてもダメでしたので嬉しいです。
早くこういう↓
& ":" &
考え方が出来るようになりたいと思いました。
分からないながらも考えまくってためになりました。
955 :
949 :2005/08/28(日) 04:29:29
>>952 まさにその通りです。
ありがとうございました出来ました!!!
956 :
名無しさん@そうだ選挙にいこう :2005/08/28(日) 14:41:30
>>936 私もよくありますが、恐らく単にパソコンが
busy状態なだけだと思います。
Excelはそれぞれのファイルで関連性を持つので、
他のファイルが処理中の場合、
新規ファイルがbusy状態になる場合があります。
作業中の既存ファイルは定期的に上書き保存し、
新しくファイルを開く際に他のファイルが
上書き保存された状態にしておけば、
悩みは解決されると思われます。
957 :
名無しさん@そうだ選挙にいこう :2005/08/28(日) 18:16:59
936 です。 956さん有難う。 PCがbusyだというのも頷けるんですよ。 というのは再現性が無いので、何らかのPCの状態によるのだろうと 思っていたんです。 回避の仕方は私が書いたように、追加ワークシートするか、 PCを立ち上げたりするといいようですね。 では! 謝謝
958 :
名無しさん@そうだ選挙にいこう :2005/08/28(日) 19:24:59
>>957 馬鹿な回答に返答頂き申し訳ないです。
取り合えず逝ってきます。
959 :
座敷荒氏 :2005/08/28(日) 20:46:59
hoge ◆hoge//WRxY さん、お返事が大変遅くなりましたが ご教授くださいましてありがとうございます。 まだちょっと疑問が残っているのですが 自分でも勉強しています。ありがとうございました。 これを機に勉強して、僕も教えられるようになりたいです。
【1 OSの種類 】 Windows XP SP2 【2 Excelのバージョン 】 Excel2002 SP3 【3 VBAが使えるか 】 少々 【4 VBAでの回答の可否】 お願い致します。 UserForm1上に TextBox1、TextBox2、CommandButton1を配置しております。 CommandButton1をクリックすると、 TextBox2にカーソルが入るようにしたいのです。 よろしくお願い致します。
>>960 Private Sub CommandButton1_Click()
TextBox2.SetFocus
End Sub
962 :
960 :2005/08/30(火) 00:16:29
>>961 ありがとうございます!!
仕事の効率が上がります!!
963 :
とんま :2005/08/30(火) 15:13:50
エクセル2000ってどの程度まで計算できますか?? 論理積や排他的論理和とかできるんですか? 擬似乱数形成はできますよね?? 詳しい方お願いしますm(。。)m
>>966-967 そうでしたか。不親切な方もいらっしゃるようなので、
質問は厳密に記述しないといけないのですね。
さすが2ちゃんねるです。
>>968 厳密に記述などしなくていいから、もう来るな。
> ▼━ 質問のしかた ━━━━━━━━━━━━━━━━━━━━ > ★要望は具体例や図を使って明確かつ具体的に。 具体的にどういう論理条件を組みたいかを書けば 「出来ますか」と聞いても、論理式で回答してくれる人もいるだろうが 条件を全く書かずに出来るか出来ないかを聞かれれば 出来るか出来ないかを答えるのが普通だろう まぁこれだけ生意気な事言っちゃったら 今更きちんと質問しても誰も答えてくれないだろうけどね でも検索すれば一瞬でわかる内容だったのが幸いだったな
MTもDLL落としてくれば使えるね。
>>968 お前みたいな自分勝手なやつは初めて見た
ハッキング依頼しておきます
俺モ友達のスーパーハッカーに頼んどく。
ガンガレ
>>970 元々分かっていましたけど?
スレを埋めるために適当な質問を投稿しただけですよ。
まったく思う壺ですね。
単純w
後付けでは簡単になんとでも言えるが、 そういうのを世間では「○け○しみ」と呼ぶ。
>975 自分の負けたこと失敗したことをすなおに認めず、普通なら負けるはずはない、 実力では自分が上だなどと言い張ること。 Shin Meikai Kokugo Dictionary, 5th edition (C) Sanseido Co., Ltd. 1972,1974,1981,1989,1997
すっぱいぶどう は違うかw
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2002 【3 VBAが使えるか .】 少しだけ 【4 VBAでの回答の可否】 可 質問です。 貼付先を選択してマクロを実行すると コピー、貼付け、シートの保護、上書き保存。というモノを作りました。 これに貼付先の選択ミスの表示を追加したいと思っています。 1ページ16行で構成されているものが縦に並んでいる表なのですが アクティブセルがA21,A37,A53...でないとマクロを実行しない としたいのです。 If MOD(ActiveCell.Row-5,16)>0 Then と書きたい所、MOD関数が機能しないようだし、 加えて「マクロを中止する」という記述が何処を見ても判りません。
981 :
980 :2005/08/31(水) 15:20:32
以下は現在のマクロです。 どのように書き加えたら要望どおりの動作が返されるのでしょうか。 ご教示お願い致します。 Sub copy() 複写確認 = MsgBox("正しい貼付け先が選択されていますか?", ybdefaultbutton1 + vbYesNo, "複写確認") If 複写確認 = vbYes Then 複写数 = InputBox("増やしたいページ数を入力して下さい。", "ページの複写", 1) If 複写数 > 0 Then 貼付行 = ActiveCell.Row Range("A5:L20").copy Range("A" & 貼付行 & ":L" & (貼付行 - 1) + (複写数 * 16)).Select ActiveSheet.Paste Range("B" & 貼付行 + 1).Select ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True ActiveSheet.EnableSelection = xlUnlockedCells ActiveWorkbook.save End If End If End Sub
>>980 VBAではMODは関数ではなく演算子ですので使い方が間違ってます。
If ActiveCell.Row Mod 16 = 5 Then
加えてA列も条件に入れるなら、
If ActiveCell.Column = 1 And ActiveCell.Row Mod 16 = 5 Then
マクロ(Subプロシージャ)を強制終了するのはExit Subです。
ただ、上記条件式の場合はExit Subは必要無いですけど。
これらを使ってとりあえず自分で書いてみましょう。
それでもどうしてもうまくいかなかったらまた質問に来てください。
983 :
980 :2005/08/31(水) 16:50:17
>982 こんなに早く、、、hoge氏、ありがとうございます! お陰さまで希望通りのものに仕上がりました。 涙が出るほど嬉しいです。奥が深いですね。。。 持ってるマクロ本は入門編なので、お手上げでした。 重ねて、有難うございます!
【1 OSの種類 .】 Windows2000SP4 【2 Excelのバージョン 】 Excel2000/2003 VLOOKUP関数で検索値をセルに返そうとしたのですが、セルに数式だけが表示されてしまいます。 関数の貼り付けダイアログで各項目に同じ内容を入力すると、一番下にある 数式の結果 = の部分には正しい計算結果が出力されます。ですがセルには反映されません。 どのような原因が考えられますでしょうか?
そんなに、困っているわけではないんですけど 梅もかねて、お時間のある方お付き合い下さい。 Exel 2002 を使用しています。 編集メニュー→フィル→文字の割付 ↑この機能を知らなかったのでヘルプで調べていたんですけど、 関連するヘルプを見つけられませんでした。 Web 上では見つけました。 そこで、質問なんですけど 1 文字の割付に関するヘルプって Exel のヘルプに載ってますか? 2 もし載っていないとしたら、他にもヘルプに載ってない機能ってあるんでしょうか?
>>986 1 VBAヘルプにJustifyメソッドは載ってる
2 ある
具体的に何が載ってないかを挙げたらキリがないので
興味があるなら自分で調べましょう。
988 :
986 :2005/09/01(木) 20:34:00
>>987 レス有難うございいます。
VBA の方に載ってましたか。
おかげで、ヘルプをめい一杯呼んでしまいました。
M$ のヘルプってある程度覚えてからでないと
役に立たないと思うのは私だけでしょうか?
989 :
名無しさん@そうだ選挙にいこう :2005/09/01(木) 22:46:37
質問です A1からF1に入力項目があって、A1からF1まで全て入力済みなら灰色で塗りつぶして A1からF1のどこか一つでも未入力箇所があると塗りつぶしなしをする このようなマクロを作成したいのですが初心者なもので・・・教えていただけないでしょうか。
>>989 条件付書式で出来るけど、マクロがいいんですか?
条件付書式でできるならそれでも教えて欲しいです。 文字はなんでもいいので入っていれば入力済みとなるようしたいです
819 名前:デフォルトの名無しさん[sage] 投稿日:2005/09/01(木) 22:57:15
>>818 何を持って入力されたと看做すのか。とにかく何か文字が入っていればそれで良いのか
自分で条件をまとめなされ。
821 名前:デフォルトの名無しさん[sage] 投稿日:2005/09/01(木) 23:16:19
818はマルチ
822 名前:デフォルトの名無しさん[] 投稿日:2005/09/01(木) 23:19:11
>>821 どっちに書いたらいいのかわからんかったから両方書いただけ
993 :
名無しさん@そうだ選挙にいこう :2005/09/01(木) 23:33:54
>>989 Sub tes()
Range("a1:f1").Interior.ColorIndex = 15
For i = 1 To 6
If Cells(1, i).Value = "" Then
Range("a1:f1").Interior.ColorIndex = xlNone
End If
Next
End Sub
作ってみた。
俺も初心者だからちゃんと動かないかも試練
マルチのも答えちゃう教えたがり君って 質問者だけにとってはありがたい存在だろうけど、 スレとしては統制を乱す邪魔な存在だな まぁ埋めの一環&無駄のあるコードってことで、今回はいいか
>>993 仕様を満たすならこうだね。
Sub tes()
Range("a1:f1").Interior.ColorIndex = 15
For i = 1 To 6
If Cells(1, i).Value = "" Then
'修正-s
'Range("a1:f1").Interior.ColorIndex = xlNone
Exit sub
'修正-e
End If
Next
'追加-s
Range("a1:f1").Interior.ColorIndex = xlNone
'追加-e
End Sub
996 :
名無しさん@そうだ選挙にいこう :2005/09/01(木) 23:46:29
Sub unko() i = MsgBox("入力した?", vbYesNo) If i = yes Then Range("a1:f1").Interior.ColorIndex = 15 End If End Sub 無駄の無いコード
997 :
名無しさん@そうだ選挙にいこう :2005/09/01(木) 23:55:37
993と995の差がよく分からん
998 :
989 :2005/09/01(木) 23:57:09
協力してくれた皆ありがとう 995のコードでうまくいきました サンクス
999 :
999 :2005/09/02(金) 00:04:20
999は幸せの番号
ついでに1000!
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。