• ベストアンサー

ペースト入力で時計算式の入っているセルを保護したい

imogasiの回答

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.2

VBAぐらいしか思いつかない。VBAは質問者にとって想定外かもしれないが (式があれば貼り付けを飛ばす、エクセルの用意された仕組みは無いのでは)。 例データ テキストデータ メモ帳で作成・保存。 1 23 - 32 2 21 - 45 3 45 - 12 4 31 - 45 1+tab+23+tab+tab+32+ENTERのようなデータが各行に入っている。 Sheet1のA1:D4 1 2 3 11 2 3 5 23 3 5 8 41 4 5 9 25 C列には=A1+B1のような式が入っていて、C列各行は現状データで計算されている。 A,B,D列は空白でもかまわない。 ーー 標準モジュールに Sub test01() i = 1 'シートとの1行目をポイント Open "tabtest.txt" For Input As #1 'タブ入りテキストファイルを開く While Not EOF(1) Line Input #1, a '1行読み込み MsgBox a x = Split(a, Chr(9)) 'タブで分割 For j = 0 To UBound(x) If x(j) = "" Then '空白ならシートの隣列へ If Cells(i, j + 1).HasFormula Then 'MsgBox j Else MsgBox "式が無いがデータは飛んでいる 注意" End If Else 'MsgBox x(j) Cells(i, j + 1) = x(j) 'i行J列セルへデータをセット End If Next j i = i + 1 Wend Close #1 End Sub これを実行すると Sheet1 A1:D4 1 23 24 32 2 21 23 45 3 45 48 12 4 31 35 45 シートのC列の式は壊れず、もと入っていた式として働いている。 ーー 本来はシートにデータをセットしてから、別途式を設定すれば、仕舞い(簡単)かと思うが。

chinchilla
質問者

お礼

短時間に詳細な回答を誠にありがとうございます。ペコ VBAやマクロを組めばほとんどのことは可能かと思います、1つの解ではありますね。 >本来はシートにデータをセットしてから、別途式を設定すれば、仕舞い(簡単)かと思うが。 確かに今まではこのやり方です。 ペーストすると式が消えるので他の計算式の消えていないセルからコピーしなおす。 ただこれだと事故の元なので。 計算式がC,E,G列に設定されているとメンテを考えてどうしてもEFG列というレイアウトにして計測結果がわかりづらくなるという循環になりますし・・・。 ただ提出まで考えると大がかりにVBAで組むより現実的なのかも知れません。 >(式があれば貼り付けを飛ばす、エクセルの用意された仕組みは無いのでは)。 ・タブの替わりに別の入力値でセルそのものを上書きではなくスキップさせる ・Excelのオプションでタブで上書きしないように設定する ・入力規制やセルの保護でエラーのでなかったセルは有効にする設定が出来る などがあれば良かったのですが。 短時間にVBAまのソースまで提供していただいてありがとうございました。

関連するQ&A

  • セルの保護について

    エクセル2003でデータ表を作りました。 10項目程度の表ですが、半分の項目(列)には計算式が入力されています。 この計算式を保護したいのですが、セルの保護を行うと、行ごとにデータをコピーして挿入したり削除したりする作業ができなくなるので困っています。 なにかいい方法で計算式を保護できないでしょうか? 宜しくお願いいたします。

  • wordの表にテキストをペーストする方法

    タブ区切りのテキストをexcelにペーストするとその区切りごとにセルに格納されるのと同じことをwordの表でやろうとしてもうまくできずに困っています. いったんexcelにペーストしてそれをwordの表にペーストすれば一応できるのですがexcelを介さずにやる方法を教えてください.

  • エクセルで空白セル以外を保護したい

    エクセル2000を使用しています。 ある表を作成して、セルの種類としては 文字が入力済、数値が入力済、空白、空白だが計算式が入力済、 の四種類があります。 数人が共有して入力するもので、空白のセル以外は一切書き込みが 出来ないよう保護したいのですが可能でしょうか? 文字入、数値入、空白(式入り)・・・保護(ロック) 空白・・・入力可能 上記のようにしたいのです。

  • エクセル 日本語入力及び貼り付け規制

    エクセルのセルに入力規制をかけて日本語入力は無効にしてあるので、セルに直接入力をすることはできないのですが、日本語が入力をされているセルをコピー&ペーストすると張り付いてしまいます。 この日本語の貼り付けも規制することはできないでしょうか? VBAでも関数でも構いません。 よろしくお願いいたします。

  • エクセルでセルの保護方法はありますか?

    エクセルで計算式等を入れているセルのみを保護する方法は ありますか?(個人で使用している場合は、問題ないが、共有していると、計算式のセルへ入力してたりして、式が消えてしまう為、各セルごとに保護する方法がありませんか?)

  • エクセルのセル計算式の保護のしかた

    エクセルで計算式が入っているセルに過って入力して式を消さないように保護する仕方を教えて下さい。(計算式が入っていないセルもあり)

  • 変えられたくないセルを保護するには?

    Excelで見出し行や関数を入れたセルなどに間違って入力されると困ります。 この様な行やセルを保護するにはどうすれば良いでしょうか? Excel2003

  • Excell VBA 指定セルにコピー&ペースト

    VBAについて質問です。 Excellで家計簿のようなものを作成してつくっているのですが、 A1~A31までのセルに日付の1日~31日を記入し、 B1~B31までのセルに各日の支出金額の合計を記入するような表を作成しています。 ただ、一日の支出が多い場合(金額的に多いというわけではなく、レシートの枚数が多く合算しなければ一日の支出合計が出ない状態のこと)は別セルで合計を計算し、その結果を記入するようにしています。 ただ、その結果を毎回コピペするのがとても面倒なので、 コマンドボタンを計算結果の横に設置し、 そのコマンドボタンをクリックしたら、どこのセルにペーストするかをメッセージボックスで問われ(C言語でいうScanf的なもの)、記入してOKをクリックするとその指定したセルに計算結果が自動的にペーストされるようにしたいと考えています。 ただ、そのコマンドがわからなくて足止め状態です。 どなたか教えてください!! 内容としましては、 セルE1に計算結果が表示されてるとして、 そのE1の内容を上記のようなコマンドボタンを使用して指定したセルにペーストするようなマクロをくみたいです。 上記の「どこのセルにペーストするかをメッセージボックスで問われ」という部分については、セル番を入力することで指定できるだけでもよいのですが、欲を言えばA1~A31に記入されている日付を入力することでペースト先のセルを指定できればベストだなと考えています。 こんなこと可能でしょうか?? 説明がわかりにくいとは思いますが、どなたかお願いします

  • Excel2010 セルの保護に関して・・・

    お世話になります。 Excel2010にて入力表を作成しシート内の入力に関係ない場所=セルを指定して セル枠保護をしたのですが複数のシートに同じ内容で一部のみ変更して 複製を作成していますがシートを変更すると先程作成したセルの保護が他の シートでは保護できませんが同じようなシートを沢山作る場合、セル保護はどの様に すればいいのでしょうか??? 説明が上手くないのですが伝わりますでしょうか・・・ 何か良い方法などありましたらお願い致します。

  • エクセルのシート保護で、セルの書式(計算式)だけを保護(ロック)する方法はありませんか?

    オフイス2003のエクセルを使用しております、仲間で表を使うので計算式が入ったセルを誤ってデリートキーをたたいても書式だけは消えないようにしておきたい。書式のシート保護をするように習いましたが、セルだけを保護(ロック)する方法はないでしょうか?